[v4,0/4] enable use of the MSVC compiler

Message ID 1691778287-15746-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
Headers
Series enable use of the MSVC compiler |

Message

Tyler Retzlaff Aug. 11, 2023, 6:24 p.m. UTC
  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 <dir>/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(-)