* [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows
@ 2021-09-24 18:08 William Tu
2021-09-25 16:22 ` Dmitry Kozlyuk
0 siblings, 1 reply; 5+ messages in thread
From: William Tu @ 2021-09-24 18:08 UTC (permalink / raw)
To: dev; +Cc: bruce.richardson, dmitry.kozliuk
Windows does not support linker option '/-no-whole-archive'
or '/whole-archive'. The patch removes them under Windows build.
Signed-off-by: William Tu <u9012063@gmail.com>
---
buildtools/pkg-config/meson.build | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/buildtools/pkg-config/meson.build b/buildtools/pkg-config/meson.build
index 0412883c8f..989033db89 100644
--- a/buildtools/pkg-config/meson.build
+++ b/buildtools/pkg-config/meson.build
@@ -40,7 +40,13 @@ Use libdpdk.pc instead of this file to query DPDK compile/link arguments''',
platform_flags = []
if not is_windows
platform_flags += ['-Wl,--export-dynamic'] # ELF only
+ libraries_args = ['-Wl,--whole-archive'] +
+ dpdk_drivers + dpdk_static_libraries +
+ ['-Wl,--no-whole-archive'] + platform_flags
+else
+ libraries_args = dpdk_drivers + dpdk_static_libraries
endif
+
pkg.generate(name: 'DPDK', # main DPDK pkgconfig file
filebase: 'libdpdk',
version: meson.project_version(),
@@ -49,9 +55,7 @@ Note that CFLAGS might contain an -march flag higher than typical baseline.
This is required for a number of static inline functions in the public headers.''',
requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs
# if libbsd is not enabled, then this is blank
- libraries_private: ['-Wl,--whole-archive'] +
- dpdk_drivers + dpdk_static_libraries +
- ['-Wl,--no-whole-archive'] + platform_flags
+ libraries_private: libraries_args
)
# For static linking with dependencies as shared libraries,
--
2.33.0.windows.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows
2021-09-24 18:08 [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows William Tu
@ 2021-09-25 16:22 ` Dmitry Kozlyuk
2021-09-26 3:22 ` William Tu
0 siblings, 1 reply; 5+ messages in thread
From: Dmitry Kozlyuk @ 2021-09-25 16:22 UTC (permalink / raw)
To: William Tu; +Cc: dev, bruce.richardson
2021-09-24 18:08 (UTC+0000), William Tu:
> Windows does not support linker option '/-no-whole-archive'
> or '/whole-archive'. The patch removes them under Windows build.
>
> Signed-off-by: William Tu <u9012063@gmail.com>
> ---
> buildtools/pkg-config/meson.build | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
Hi William,
We need to tell the linker to use whole archive somehow;
you write [1] that /WHOLEARCHIVE was required in the end.
There's no "Windows linker", there are clang and GCC linkers,
the latter supports --whole-archive, but the former needs it translated.
Argument translation between compilers is handled by meson.
I've filed a bug: https://github.com/mesonbuild/meson/issues/9296
[1]:
http://inbox.dpdk.org/dev/CALDO+SZ-FLPYNQbUJ-Ctwtph+M4_X_=zYAOKgkp5_un4QFq_eg@mail.gmail.com/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows
2021-09-25 16:22 ` Dmitry Kozlyuk
@ 2021-09-26 3:22 ` William Tu
2021-10-07 11:58 ` Thomas Monjalon
0 siblings, 1 reply; 5+ messages in thread
From: William Tu @ 2021-09-26 3:22 UTC (permalink / raw)
To: Dmitry Kozlyuk; +Cc: dpdk-dev, Richardson, Bruce
On Sat, Sep 25, 2021 at 9:22 AM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
>
> 2021-09-24 18:08 (UTC+0000), William Tu:
> > Windows does not support linker option '/-no-whole-archive'
> > or '/whole-archive'. The patch removes them under Windows build.
> >
> > Signed-off-by: William Tu <u9012063@gmail.com>
> > ---
> > buildtools/pkg-config/meson.build | 10 +++++++---
> > 1 file changed, 7 insertions(+), 3 deletions(-)
>
> Hi William,
>
> We need to tell the linker to use whole archive somehow;
> you write [1] that /WHOLEARCHIVE was required in the end.
> There's no "Windows linker", there are clang and GCC linkers,
> the latter supports --whole-archive, but the former needs it translated.
> Argument translation between compilers is handled by meson.
> I've filed a bug: https://github.com/mesonbuild/meson/issues/9296
>
> [1]:
> http://inbox.dpdk.org/dev/CALDO+SZ-FLPYNQbUJ-Ctwtph+M4_X_=zYAOKgkp5_un4QFq_eg@mail.gmail.com/
Hi Dmitry,
Thank you!
One more thing, when I added /WHOLEARCHIVE, I hit some errors due to
macro definitions.
ex:
ws2_32.lib(WS2_32.dll) : error LNK2005: WS2_32_NULL_THUNK_DATA already
defined in mincore.lib(WS2_32.dll)
Shlwapi.lib(SHLWAPI.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR
already defined in mincore.lib(api-ms-win-core
-com-l1-1-0.dll)
Iphlpapi.lib(IPHLPAPI.DLL) : error LNK2005:
__IMPORT_DESCRIPTOR_IPHLPAPI already defined in mincore.lib(IPHLPAPI.
see:
https://github.com/smadaminov/ovs-dpdk-meson-issues/issues/65
In the end, I have to add also:
-Wl,/FORCE:MULTIPLE
Thanks
William
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows
2021-09-26 3:22 ` William Tu
@ 2021-10-07 11:58 ` Thomas Monjalon
2021-10-07 12:04 ` William Tu
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Monjalon @ 2021-10-07 11:58 UTC (permalink / raw)
To: Dmitry Kozlyuk, William Tu; +Cc: dev, Richardson, Bruce
Hi,
What is the conclusion for this patch?
26/09/2021 05:22, William Tu:
> On Sat, Sep 25, 2021 at 9:22 AM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> >
> > 2021-09-24 18:08 (UTC+0000), William Tu:
> > > Windows does not support linker option '/-no-whole-archive'
> > > or '/whole-archive'. The patch removes them under Windows build.
> > >
> > > Signed-off-by: William Tu <u9012063@gmail.com>
> > > ---
> > > buildtools/pkg-config/meson.build | 10 +++++++---
> > > 1 file changed, 7 insertions(+), 3 deletions(-)
> >
> > Hi William,
> >
> > We need to tell the linker to use whole archive somehow;
> > you write [1] that /WHOLEARCHIVE was required in the end.
> > There's no "Windows linker", there are clang and GCC linkers,
> > the latter supports --whole-archive, but the former needs it translated.
> > Argument translation between compilers is handled by meson.
> > I've filed a bug: https://github.com/mesonbuild/meson/issues/9296
> >
> > [1]:
> > http://inbox.dpdk.org/dev/CALDO+SZ-FLPYNQbUJ-Ctwtph+M4_X_=zYAOKgkp5_un4QFq_eg@mail.gmail.com/
>
> Hi Dmitry,
>
> Thank you!
> One more thing, when I added /WHOLEARCHIVE, I hit some errors due to
> macro definitions.
> ex:
> ws2_32.lib(WS2_32.dll) : error LNK2005: WS2_32_NULL_THUNK_DATA already
> defined in mincore.lib(WS2_32.dll)
> Shlwapi.lib(SHLWAPI.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR
> already defined in mincore.lib(api-ms-win-core
> -com-l1-1-0.dll)
> Iphlpapi.lib(IPHLPAPI.DLL) : error LNK2005:
> __IMPORT_DESCRIPTOR_IPHLPAPI already defined in mincore.lib(IPHLPAPI.
> see:
> https://github.com/smadaminov/ovs-dpdk-meson-issues/issues/65
>
> In the end, I have to add also:
> -Wl,/FORCE:MULTIPLE
>
> Thanks
> William
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows
2021-10-07 11:58 ` Thomas Monjalon
@ 2021-10-07 12:04 ` William Tu
0 siblings, 0 replies; 5+ messages in thread
From: William Tu @ 2021-10-07 12:04 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: Dmitry Kozlyuk, dpdk-dev, Richardson, Bruce
Please don't apply this patch.
I think we're waiting for meson to fix it.
https://github.com/mesonbuild/meson/issues/9296
In the meantime, at OVS's meson build script,
I'm adding /WHOLEARCHIVE and /FORCE:MULTIPLE
when linking dpdk. So no need to fix it here.
Thanks
William
On Thu, Oct 7, 2021 at 4:58 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> Hi,
>
> What is the conclusion for this patch?
>
> 26/09/2021 05:22, William Tu:
> > On Sat, Sep 25, 2021 at 9:22 AM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> > >
> > > 2021-09-24 18:08 (UTC+0000), William Tu:
> > > > Windows does not support linker option '/-no-whole-archive'
> > > > or '/whole-archive'. The patch removes them under Windows build.
> > > >
> > > > Signed-off-by: William Tu <u9012063@gmail.com>
> > > > ---
> > > > buildtools/pkg-config/meson.build | 10 +++++++---
> > > > 1 file changed, 7 insertions(+), 3 deletions(-)
> > >
> > > Hi William,
> > >
> > > We need to tell the linker to use whole archive somehow;
> > > you write [1] that /WHOLEARCHIVE was required in the end.
> > > There's no "Windows linker", there are clang and GCC linkers,
> > > the latter supports --whole-archive, but the former needs it translated.
> > > Argument translation between compilers is handled by meson.
> > > I've filed a bug: https://github.com/mesonbuild/meson/issues/9296
> > >
> > > [1]:
> > > http://inbox.dpdk.org/dev/CALDO+SZ-FLPYNQbUJ-Ctwtph+M4_X_=zYAOKgkp5_un4QFq_eg@mail.gmail.com/
> >
> > Hi Dmitry,
> >
> > Thank you!
> > One more thing, when I added /WHOLEARCHIVE, I hit some errors due to
> > macro definitions.
> > ex:
> > ws2_32.lib(WS2_32.dll) : error LNK2005: WS2_32_NULL_THUNK_DATA already
> > defined in mincore.lib(WS2_32.dll)
> > Shlwapi.lib(SHLWAPI.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR
> > already defined in mincore.lib(api-ms-win-core
> > -com-l1-1-0.dll)
> > Iphlpapi.lib(IPHLPAPI.DLL) : error LNK2005:
> > __IMPORT_DESCRIPTOR_IPHLPAPI already defined in mincore.lib(IPHLPAPI.
> > see:
> > https://github.com/smadaminov/ovs-dpdk-meson-issues/issues/65
> >
> > In the end, I have to add also:
> > -Wl,/FORCE:MULTIPLE
> >
> > Thanks
> > William
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-10-07 12:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-24 18:08 [dpdk-dev] [PATCH v1] build/pkg-config: Fix warning for Windows William Tu
2021-09-25 16:22 ` Dmitry Kozlyuk
2021-09-26 3:22 ` William Tu
2021-10-07 11:58 ` Thomas Monjalon
2021-10-07 12:04 ` William Tu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).