build: fix linker flags on Windows
authorDmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Tue, 12 Jan 2021 00:36:02 +0000 (03:36 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 13 Jan 2021 21:13:37 +0000 (22:13 +0100)
The --export-dynamic linker option is only applicable to ELF.
On Windows, where COFF is used, it causes warnings:

    x86_64-w64-mingw32-ld: warning: --export-dynamic is not supported
    for PE+ targets, did you mean --export-all-symbols? (MinGW)

    LINK : warning LNK4044: unrecognized option '/-export-dynamic';
    ignored (clang)

Don't add --export-dynamic on Windows anywhere.

Fixes: b031e13d7f0d ("build: fix plugin load on static build")
Cc: stable@dpdk.org
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Ranjit Menon <ranjit.menon@intel.com>
app/meson.build
buildtools/pkg-config/meson.build
examples/meson.build

index fd72d7d..903117b 100644 (file)
@@ -26,7 +26,7 @@ lib_execinfo = cc.find_library('execinfo', required: false)
 
 default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
 default_ldflags = []
-if get_option('default_library') == 'static'
+if get_option('default_library') == 'static' and not is_windows
        default_ldflags += ['-Wl,--export-dynamic']
 endif
 
index 168ee08..39a8fd1 100644 (file)
@@ -37,6 +37,10 @@ Use libdpdk.pc instead of this file to query DPDK compile/link arguments''',
        libraries: ['-Wl,--as-needed'] + dpdk_libraries,
        libraries_private: dpdk_extra_ldflags)
 
+platform_flags = []
+if not is_windows
+       platform_flags += ['-Wl,--export-dynamic'] # ELF only
+endif
 pkg.generate(name: 'DPDK', # main DPDK pkgconfig file
        filebase: 'libdpdk',
        version: meson.project_version(),
@@ -47,7 +51,7 @@ This is required for a number of static inline functions in the public headers.'
                          # if libbsd is not enabled, then this is blank
        libraries_private: ['-Wl,--whole-archive'] +
                        dpdk_drivers + dpdk_static_libraries +
-                       ['-Wl,--no-whole-archive', '-Wl,--export-dynamic']
+                       ['-Wl,--no-whole-archive'] + platform_flags
 )
 
 # For static linking with dependencies as shared libraries,
index f643ec1..b9ab242 100644 (file)
@@ -64,7 +64,7 @@ if cc.has_argument('-Wno-format-truncation')
        default_cflags += '-Wno-format-truncation'
 endif
 default_ldflags = dpdk_extra_ldflags
-if get_option('default_library') == 'static'
+if get_option('default_library') == 'static' and not is_windows
        default_ldflags += ['-Wl,--export-dynamic']
 endif