From: David Marchand <david.marchand@redhat.com>
To: Tyler Retzlaff <roretzla@linux.microsoft.com>
Cc: dev@dpdk.org, Bruce Richardson <bruce.richardson@intel.com>,
Harman Kalra <hkalra@marvell.com>
Subject: Re: [PATCH v5 0/2] build and install only one library type on Windows
Date: Fri, 14 Jun 2024 17:15:54 +0200 [thread overview]
Message-ID: <CAJFAV8xLebRo92CKYO=KuCYPmuRVjbfT2_vKNaQSPsuW21Ng0g@mail.gmail.com> (raw)
In-Reply-To: <CAJFAV8y7N_VrCrkH8RiN4jcsGi_Q0jGTS1G9YAnex4_AsJUGVw@mail.gmail.com>
On Fri, Jun 14, 2024 at 5:00 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Mon, Apr 15, 2024 at 7:13 PM Tyler Retzlaff
> <roretzla@linux.microsoft.com> wrote:
> >
> > MSVC is the only compiler that can produce usable shared libraries for
> > DPDK on Windows because of the use of exported TLS variables.
> >
> > Disable building of shared libraries with LLVM and MinGW so that
> > remaining __declspec macros needed for the functional libraries built by
> > MSVC can be used without triggering errors in LLVM and MinGW builds.
> > For Windows only install the default_library type to avoid confusion.
> > Windows builds cannot build both shared and static in a single pass so
> > install only the functional variant
> >
> > MSVC does not guarantee any kind of compatibility for static libraries so
> > they should not be packaged and instead they should be rebuilt along with
> > the application using the same version of the compiler & linker. Because
> > of this we have chosen to build only one library type at a time instead of
> > compiling twice to produce both types in a single pass.
> >
> > thanks Bruce for all the discussion/feedback!
> >
> > Tyler Retzlaff (2):
> > build: build only one library type on Windows
> > buildtools: when building static library use static deps
> >
> > buildtools/chkincs/meson.build | 5 ++--
> > config/meson.build | 24 +++++++++++++++
> > drivers/meson.build | 59 ++++++++++++++++---------------------
> > lib/meson.build | 67 ++++++++++++++++--------------------------
> > 4 files changed, 78 insertions(+), 77 deletions(-)
>
> Series applied, thanks.
Hum, actually no, I dropped this series.
It breaks mingw builds.
dmarchan@dmarchan:~/git/pub/dpdk.org/main$ DPDK_ABI_REF_VERSION=v24.03
DPDK_BUILD_TEST_EXAMPLES=all DPDK_BUILD_TEST_DIR=$HOME/builds/main
./devtools/test-meson-builds.sh
ninja: Entering directory `/home/dmarchan/builds/main/build-gcc-shared'
ninja: no work to do.
ninja: Entering directory `/home/dmarchan/builds/main/build-clang-shared'
ninja: no work to do.
ninja: Entering directory `/home/dmarchan/builds/main/build-x86-generic'
ninja: no work to do.
ninja: Entering directory `/home/dmarchan/builds/main/build-32b'
ninja: no work to do.
DEPRECATION: "pkgconfig" entry is deprecated and should be replaced by
"pkg-config"
The Meson build system
Version: 1.3.2
Source dir: /home/dmarchan/git/pub/dpdk.org/main
Build dir: /home/dmarchan/builds/main/build-x86-mingw
Build type: cross build
Program cat found: YES (/usr/bin/cat)
Project name: DPDK
Project version: 24.07.0-rc0
C compiler for the host machine: ccache x86_64-w64-mingw32-gcc (gcc
13.2.1 "x86_64-w64-mingw32-gcc (GCC) 13.2.1 20230728 (Fedora MinGW
13.2.1-5.fc39)")
C linker for the host machine: x86_64-w64-mingw32-gcc ld.bfd 2.40-4
C compiler for the build machine: ccache cc (gcc 13.3.1 "cc (GCC)
13.3.1 20240522 (Red Hat 13.3.1-1)")
C linker for the build machine: cc ld.bfd 2.40-14
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: native
Target machine cpu family: x86_64
Target machine cpu: native
Message: ## Building in Developer Mode ##
Program x86_64-w64-mingw32-pkg-config found: YES
Program check-symbols.sh found: YES
(/home/dmarchan/git/pub/dpdk.org/main/buildtools/check-symbols.sh)
Program options-ibverbs-static.sh found: YES
(/home/dmarchan/git/pub/dpdk.org/main/buildtools/options-ibverbs-static.sh)
Program python3 found: YES (/usr/bin/python3)
Program cat found: YES (/usr/bin/cat)
Compiler for C supports arguments -march=native: YES
Checking for size of "void *" : 8
Checking for size of "void *" : 8
Library m found: YES
Library numa found: NO
Library fdt found: NO
Library execinfo found: NO
Has header "execinfo.h" : NO
Found pkg-config: YES (/usr/bin/x86_64-w64-mingw32-pkg-config) 1.9.5
Run-time dependency libarchive found: NO (tried pkgconfig)
Run-time dependency libbsd found: NO (tried pkgconfig)
Run-time dependency jansson found: NO (tried pkgconfig)
Run-time dependency openssl found: NO (tried pkgconfig)
Run-time dependency libpcap found: NO (tried pkgconfig)
Library wpcap found: NO
Compiler for C supports arguments -Wcast-qual: YES
Compiler for C supports arguments -Wdeprecated: YES
Compiler for C supports arguments -Wformat: YES
Compiler for C supports arguments -Wformat-nonliteral: YES
Compiler for C supports arguments -Wformat-security: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wsign-compare: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -Wno-address-of-packed-member: YES
Compiler for C supports arguments -Wno-packed-not-aligned: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-zero-length-bounds: YES
Program x86_64-w64-mingw32-objdump found: YES
Compiler for C supports arguments -mavx512f: YES
Checking if "AVX512 checking" compiles: YES
Fetching value of define "__SSE4_2__" : 1
Fetching value of define "__AES__" : 1
Fetching value of define "__AVX__" : 1
Fetching value of define "__AVX2__" : 1
Fetching value of define "__AVX512BW__" : 1
Fetching value of define "__AVX512CD__" : 1
Fetching value of define "__AVX512DQ__" : 1
Fetching value of define "__AVX512F__" : 1
Fetching value of define "__AVX512VL__" : 1
Fetching value of define "__PCLMUL__" : 1
Fetching value of define "__RDRND__" : 1
Fetching value of define "__RDSEED__" : 1
Fetching value of define "__VPCLMULQDQ__" : 1
Compiler for C supports arguments -Wno-format-truncation: YES
Message: lib/log: Defining dependency "log"
Message: lib/kvargs: Defining dependency "kvargs"
Message: lib/argparse: Defining dependency "argparse"
Message: lib/telemetry: Defining dependency "telemetry"
Library dbghelp found: YES
Library setupapi found: YES
Library ws2_32 found: YES
Checking for function "getentropy" : NO
Message: lib/eal: Defining dependency "eal"
lib/meson.build:218:21: ERROR: declare_dependency keyword argument
'dependencies' was of type array[dict] but should have been
array[Dependency | InternalDependency]
A full log can be found at
/home/dmarchan/builds/main/build-x86-mingw/meson-logs/meson-log.txt
--
David Marchand
prev parent reply other threads:[~2024-06-14 15:16 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-14 19:44 [PATCH] " Tyler Retzlaff
2024-03-14 19:44 ` [PATCH] build: build " Tyler Retzlaff
2024-03-15 6:30 ` [PATCH v2 0/2] build and install " Tyler Retzlaff
2024-03-15 6:30 ` [PATCH v2 1/2] build: build " Tyler Retzlaff
2024-04-12 13:00 ` Bruce Richardson
2024-04-12 23:04 ` Tyler Retzlaff
2024-04-15 9:42 ` Bruce Richardson
2024-03-15 6:30 ` [PATCH v2 2/2] buildtools: when building static library use static deps Tyler Retzlaff
2024-03-15 8:28 ` Bruce Richardson
2024-04-04 18:47 ` Tyler Retzlaff
2024-04-05 9:11 ` Bruce Richardson
2024-04-12 14:09 ` Bruce Richardson
2024-04-12 22:52 ` Tyler Retzlaff
2024-04-12 22:52 ` [PATCH v3 0/2] build and install only one library type on Windows Tyler Retzlaff
2024-04-12 22:52 ` [PATCH v3 1/2] build: build " Tyler Retzlaff
2024-04-15 9:55 ` Bruce Richardson
2024-04-12 22:52 ` [PATCH v3 2/2] buildtools: when building static library use static deps Tyler Retzlaff
2024-04-15 9:56 ` Bruce Richardson
2024-04-15 16:45 ` [PATCH v4 0/2] build and install only one library type on Windows Tyler Retzlaff
2024-04-15 16:45 ` [PATCH v4 1/2] build: build " Tyler Retzlaff
2024-04-15 16:45 ` [PATCH v4 2/2] buildtools: when building static library use static deps Tyler Retzlaff
2024-04-15 17:12 ` [PATCH v5 0/2] build and install only one library type on Windows Tyler Retzlaff
2024-04-15 17:12 ` [PATCH v5 1/2] build: build " Tyler Retzlaff
2024-04-15 17:24 ` Bruce Richardson
2024-04-15 17:12 ` [PATCH v5 2/2] buildtools: when building static library use static deps Tyler Retzlaff
2024-06-14 15:00 ` [PATCH v5 0/2] build and install only one library type on Windows David Marchand
2024-06-14 15:15 ` David Marchand [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAJFAV8xLebRo92CKYO=KuCYPmuRVjbfT2_vKNaQSPsuW21Ng0g@mail.gmail.com' \
--to=david.marchand@redhat.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=hkalra@marvell.com \
--cc=roretzla@linux.microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).