From patchwork Wed Aug 16 21:56:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 66 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 2CCBC43086; Wed, 16 Aug 2023 23:56:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D357540DDA; Wed, 16 Aug 2023 23:56:24 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 264D84003C for ; Wed, 16 Aug 2023 23:56:23 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id 7E29B211F617; Wed, 16 Aug 2023 14:56:22 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 7E29B211F617 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1692222982; bh=Wk3QQwq6hhD9ChVDfYxHpT7O3isj4llI2j7XEmUBzBU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TFCdtnwuEG9UtdY3skgG2JNFL3xmEePW1aLCXod+gu9wL0ARtlNr7czEAX4Al5iyr snUsI5gRUsXmBhbSsKvj3Rx9/U8ZV/7IuxuZeSTqQTLIQXon2dqWNv7u4dqtvbUj7i 0r6JS2ltnP6XfnOtSbNmLjK18vflYJ1eaJ/UxSz8= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Konstantin Ananyev , david.marchand@redhat.com, thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH v5 0/4] enable use of the MSVC compiler Date: Wed, 16 Aug 2023 14:56:12 -0700 Message-Id: <1692222976-2908-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. v5: * Clean up comments in config/meson.build for project arguments and dpdk_conf defines when is_ms_compiler * Restore incorrectly removed enabled_apps = [] in v4 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 | 4 ++++ config/meson.build | 47 +++++++++++++++++++++++++++++++++++++++-------- 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, 75 insertions(+), 23 deletions(-)