From patchwork Fri Mar 15 06:30:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 782 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4D17E43CA6; Fri, 15 Mar 2024 07:30:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 38B2842EBB; Fri, 15 Mar 2024 07:30:27 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7959C42E8B for ; Fri, 15 Mar 2024 07:30:24 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 9046120B74C0; Thu, 14 Mar 2024 23:30:23 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9046120B74C0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1710484223; bh=udDGvcwUy8FSxTk6oMXE++ohryhzYVXlDGv5Gsz8Dc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mAvTTx/m3DFGwlHNtAHzKdJD3YYwyiiDT+gEAveZSwTT8HF4bkZz9DWew5ljsyX3O dwhxc/AnCGsZEXEvbWcKM8lY2aVQVFZaPKCiKyAv7JjoU65j6ia4R+Jsx0j2UDpeeI Vi9rqQJK5Bdl7FPUC05FO6CJeY2o9deY26ccuvH0= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Harman Kalra , Tyler Retzlaff Subject: [PATCH v2 0/2] build and install only one library type on Windows Date: Thu, 14 Mar 2024 23:30:20 -0700 Message-Id: <1710484222-17310-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1710445477-23848-1-git-send-email-roretzla@linux.microsoft.com> References: <1710445477-23848-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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. v2: * add patch to chkings to use static dependencies when building static cross build for windows target with mingw. * add missing msvc specific ldflags needed for shared builds. * define RTE_BUILD_SHARED_LIB for shared msvc builds. * fix is_shared_enabled conditional to check default_library=shared when building with msvc. * simplify linker flags when building for windows, we only need to provide flags for shared builds when building with msvc. * stop generating .def file for llvm and mingw builds, since no shared builds are performed the .def files would be unused. Tyler Retzlaff (2): build: build only one library type on Windows buildtools: when building static library use static deps app/meson.build | 6 +++ buildtools/chkincs/meson.build | 18 +++++--- config/meson.build | 27 ++++++++++++ drivers/meson.build | 72 +++++++++++++++---------------- drivers/net/octeontx/base/meson.build | 2 +- examples/meson.build | 6 +++ lib/meson.build | 79 +++++++++++++++-------------------- 7 files changed, 121 insertions(+), 89 deletions(-)