buildtools: remove invalid option for Microsoft linker
Checks
Commit Message
When compiling "drivers" directory with MSVC the errors below popped up:
drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
missing ')' before '('
drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
missing ')' before 'const'
drivers/rte_mempool_stack.pmd.c(1): error C2091: function returns function
The fix is to use common macros compatible with MSVC.
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
---
buildtools/pmdinfogen.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
On Tue, Mar 11, 2025 at 06:53:08PM -0700, Andre Muezerie wrote:
> When compiling "drivers" directory with MSVC the errors below popped up:
>
> drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
> missing ')' before '('
> drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
> drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
> drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
> missing ')' before 'const'
> drivers/rte_mempool_stack.pmd.c(1): error C2091: function returns function
>
> The fix is to use common macros compatible with MSVC.
>
> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
On Wed, Mar 12, 2025 at 2:53 AM Andre Muezerie
<andremue@linux.microsoft.com> wrote:
>
> When compiling "drivers" directory with MSVC the errors below popped up:
>
> drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
> missing ')' before '('
> drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
> drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
> drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
> missing ')' before 'const'
> drivers/rte_mempool_stack.pmd.c(1): error C2091: function returns function
>
> The fix is to use common macros compatible with MSVC.
>
> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Out of curiosity, did you try dpdk-pmdinfo.py on generated binaries?
On Wed, Mar 12, 2025 at 12:53:55PM +0100, David Marchand wrote:
> On Wed, Mar 12, 2025 at 2:53 AM Andre Muezerie
> <andremue@linux.microsoft.com> wrote:
> >
> > When compiling "drivers" directory with MSVC the errors below popped up:
> >
> > drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
> > missing ')' before '('
> > drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
> > drivers/rte_mempool_stack.pmd.c(1): error C2059: syntax error: ')'
> > drivers/rte_mempool_stack.pmd.c(1): error C2143: syntax error:
> > missing ')' before 'const'
> > drivers/rte_mempool_stack.pmd.c(1): error C2091: function returns function
> >
> > The fix is to use common macros compatible with MSVC.
> >
> > Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
>
> Out of curiosity, did you try dpdk-pmdinfo.py on generated binaries?
That script does not work on Windows. It depends on ldd and ELF binary
format to extract info from the binary. I'll see what can be done there.
>
>
> --
> David Marchand
@@ -192,7 +192,7 @@ def dump(self, file):
dumped = json.dumps(self.__dict__)
escaped = dumped.replace('"', '\\"')
print(
- 'const char %s_pmd_info[] __attribute__((used)) = "PMD_INFO_STRING= %s";'
+ 'const char %s_pmd_info[] __rte_used = "PMD_INFO_STRING= %s";'
% (self.name, escaped),
file=file,
)
@@ -252,7 +252,8 @@ def open_output(path):
def write_header(output):
output.write(
- "static __attribute__((unused)) const char *generator = \"%s\";\n" % sys.argv[0]
+ "#include <rte_common.h>\n"
+ "static __rte_unused const char *generator = \"%s\";\n" % sys.argv[0]
)