mbox series

[0/7] eal/windows: do not expose POSIX symbols

Message ID 20210220232910.772-1-dmitry.kozliuk@gmail.com (mailing list archive)
Headers show
Series eal/windows: do not expose POSIX symbols | expand

Message

Dmitry Kozlyuk Feb. 20, 2021, 11:29 p.m. UTC
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(-)

Comments

Ranjit Menon March 17, 2021, 7:19 p.m. UTC | #1
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.menon@intel.com>