On 2/20/2021 3:29 PM, Dmitry Kozlyuk wrote:
On Windows, rte_os.h contains a small POSIX compatibility set of
functions and macros. Exposing it from EAL can break consumer own POSIX
compatibility layer and is against standards in general.

First define required wrappers, then fix POSIX dependencies in
Windows-enabled libraries and drivers, then eliminate POSIX symbols from
Windows EAL API. Commits are arranged so that they all compile and are
limited in scope; patches 5, 6, 7 can be squashed if needed.

No "Fixes" tags, because it's really an enhancement,
preventing issues rather then solving direct ones.

Dmitry Kozlyuk (7):
   eal: add wrappers for POSIX string functions
   eal: add macro for maximum path length
   eal: add sleep API
   eal: add asprintf() internal wrapper
   lib: remove POSIX dependencies
   drivers: remove POSIX dependencies
   eal/windows: do not expose POSIX symbols

  doc/guides/rel_notes/release_21_05.rst        |  9 ++
  drivers/bus/pci/private.h                     |  2 +-
  drivers/bus/vdev/vdev.c                       |  4 +-
  drivers/bus/vdev/vdev_params.c                |  3 +-
  drivers/common/mlx5/mlx5_common_pci.c         |  4 +-
  drivers/net/i40e/i40e_ethdev.c                | 56 +++++------
  lib/librte_cmdline/cmdline.c                  |  1 +
  lib/librte_eal/common/eal_common_config.c     |  2 +-
  lib/librte_eal/common/eal_common_dev.c        |  6 +-
  lib/librte_eal/common/eal_common_devargs.c    |  7 +-
  lib/librte_eal/common/eal_common_errno.c      |  4 +
  lib/librte_eal/common/eal_common_fbarray.c    |  8 +-
  lib/librte_eal/common/eal_common_lcore.c      |  2 +-
  lib/librte_eal/common/eal_common_log.c        |  5 +-
  lib/librte_eal/common/eal_common_options.c    | 42 ++++----
  lib/librte_eal/common/eal_common_timer.c      |  5 +-
  lib/librte_eal/common/eal_common_trace.c      |  2 +-
  lib/librte_eal/common/eal_common_trace_ctf.c  |  4 +-
  .../common/eal_common_trace_utils.c           | 13 +--
  lib/librte_eal/common/eal_filesystem.h        |  8 +-
  lib/librte_eal/common/eal_hugepages.h         |  2 +-
  lib/librte_eal/common/eal_internal_cfg.h      |  2 +-
  lib/librte_eal/common/eal_private.h           | 23 +++++
  lib/librte_eal/common/eal_trace.h             |  2 +-
  lib/librte_eal/freebsd/include/rte_os.h       |  6 +-
  lib/librte_eal/include/rte_string_fns.h       | 42 ++++++++
  lib/librte_eal/include/rte_thread.h           | 11 +++
  lib/librte_eal/linux/include/rte_os.h         |  6 +-
  lib/librte_eal/rte_eal_exports.def            |  2 +
  lib/librte_eal/unix/rte_thread.c              |  6 ++
  lib/librte_eal/version.map                    |  3 +
  lib/librte_eal/windows/eal.c                  | 30 ++++++
  lib/librte_eal/windows/eal_thread.c           |  9 +-
  lib/librte_eal/windows/include/dirent.h       | 21 ++--
  lib/librte_eal/windows/include/rte_os.h       | 99 ++-----------------
  lib/librte_ethdev/rte_class_eth.c             |  2 +-
  lib/librte_ethdev/rte_ethdev.c                |  2 +-
  lib/librte_kvargs/rte_kvargs.c                | 17 ++--
  38 files changed, 266 insertions(+), 206 deletions(-)

Acked-by: Ranjit Menon <ranjit.me...@intel.com>


Reply via email to