DPDK patches and discussions
 help / color / mirror / Atom feed
* [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).