diff --git a/app/meson.build b/app/meson.build index fd72d7da68..903117b866 100644 --- a/app/meson.build +++ b/app/meson.build @@ -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 diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build index 168ee08e58..39a8fd1c8e 100644 --- a/buildtools/pkg-config/meson.build +++ b/buildtools/pkg-config/meson.build @@ -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, diff --git a/examples/meson.build b/examples/meson.build index f643ec1bad..b9ab24223f 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -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