On Fri, Jun 14, 2024 at 5:00 PM David Marchand <david.march...@redhat.com> wrote: > > On Mon, Apr 15, 2024 at 7:13 PM Tyler Retzlaff > <roret...@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