From patchwork Fri Aug 11 18:24:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 45 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 53E6F43037; Fri, 11 Aug 2023 20:24:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C111B43258; Fri, 11 Aug 2023 20:24:51 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7A32C40E03 for ; Fri, 11 Aug 2023 20:24:49 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id 9F9F820FCD5D; Fri, 11 Aug 2023 11:24:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9F9F820FCD5D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1691778288; bh=ArCIIb4GJVFEA7EG9W1BQ0iytfuyzDj3PvEtwoB3D4o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sZGXPX1vNhxX5WPKTiU/nGPl2Hpnn4GkrXUdWOOXN75X4lbXSwbN6oKQNVj/t8aIY DZdGCEWF0L9JR+u6wCZ8o5fyQDA9NNy7LDJX2yT5G9QBbX8F2Dekp3o5L/PSJq49jB SzLWr01RrdHP1Xx312AxY1nIZbdjlqXnYyxxy+rA= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Konstantin Ananyev , david.marchand@redhat.com, thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH v4 0/4] enable use of the MSVC compiler Date: Fri, 11 Aug 2023 11:24:43 -0700 Message-Id: <1691778287-15746-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674674707-3094-1-git-send-email-roretzla@linux.microsoft.com> References: <1674674707-3094-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 Introduce minimum changes to the build system to allow use of the MSVC compiler. This change is intended to enable a phased approach to allowing DPDK to built with MSVC. Building with MSVC removes barriers to enterprise customers use of DPDK who have constraints around security policy, compliance and functional requirements. v4: * Remove conditional if cc.get_id() != 'msvc' for assignment of objdump and binutils_avx512_check in anticipation of merge of patch from David Marchand https://patchwork.dpdk.org/project/dpdk/patch/20230811131024.2285366-1-david.marchand@redhat.com Note: I'm aware that none of the shell scripts here are usable on the windows build, it's a gap we hope to fill in the future for now we hap hazardly rely on the linux builds. * Remove enabled_apps = [] apps when skipping apps/meson.build for is_ms_compiler in anticipation of merge of patch from David Marchand https://patchwork.dpdk.org/project/dpdk/patch/20230811132805.2434448-1-david.marchand@redhat.com * Rebase series and include 'log' library as it is now required by kvargs and telemetry libs * Move 2 comments into block scope ehre they apply Note: There are no requirements specifically for msvc compiler beyond those that would cause build to fail when the currently experimental options are used. when i know the final version of the compiler needed it will be documented in the windows quick start guide. v3: * enable compilation with C11 optional atomics * enable compilation with C23 typeof operator * disable microsoft secure crt checks (dpdk code fails) * force use of intrinsics v2: * moved checks to skip drivers, apps, usertools directories in to /meson.build file and removed conditional check from root meson.build (patch 3/3) Tyler Retzlaff (4): build: unblock the use of the MSVC compiler build: determine execution environment at config time build: limit what is built when using MSVC compiler build: enable MSVC specific compiler options app/meson.build | 6 ++++-- config/meson.build | 39 +++++++++++++++++++++++++++++++-------- config/x86/meson.build | 10 ++++++---- drivers/meson.build | 4 ++++ lib/eal/meson.build | 8 -------- lib/meson.build | 21 ++++++++++++++++++--- usertools/meson.build | 4 ++++ 7 files changed, 67 insertions(+), 25 deletions(-)