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


      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).