[dpdk-dev] [PATCH v6 0/5] eal/windows: do not expose POSIX symbols

Dmitry Kozlyuk dmitry.kozliuk at gmail.com
Sat Mar 20 14:05:20 CET 2021


On Windows, EAL contains two sets of functions and macros for POSIX
compatibility: <rte_os.h> and a networking shim (socket headers).
The latter conflicts with system headers and should not exist.
Exposing the former from EAL can break consumer own POSIX compatibility
layer and is against standards in general. Hide these symbols from
external consumers, while keeping them available for DPDK code.

v6:
    * Rebase on ToT to resolve conflicts.

v5:
    * Unify series with removing Windows networking shim
      to eliminate dependency between series and CI failures.
    * RTE_BUILD_INTERNAL -> rte_os_internal.h (Thomas Monjalon).
    * Remove release notes: hidden symbols were never part of API.

Dmitry Kozlyuk (5):
  eal: add sleep API
  eal/windows: hide asprintf() shim
  eal: make OS shims internal
  net: provide IP-related API on any OS
  net: replace Windows networking shim

 drivers/bus/pci/private.h                     |  4 +-
 drivers/bus/vdev/vdev_private.h               |  2 +
 drivers/common/mlx5/mlx5_common.h             |  1 +
 drivers/net/i40e/i40e_ethdev.c                |  1 +
 drivers/net/i40e/i40e_fdir.c                  |  1 +
 drivers/net/mlx5/mlx5.h                       |  2 +-
 drivers/net/mlx5/mlx5_flow.c                  |  4 +-
 drivers/net/mlx5/mlx5_flow.h                  |  4 +-
 drivers/net/mlx5/mlx5_mac.c                   |  1 -
 examples/cmdline/commands.c                   |  5 -
 examples/cmdline/parse_obj_list.c             |  2 -
 lib/librte_cmdline/cmdline.c                  |  5 -
 lib/librte_cmdline/cmdline_os_windows.c       |  2 -
 lib/librte_cmdline/cmdline_parse.c            |  2 -
 lib/librte_cmdline/cmdline_parse_etheraddr.c  |  6 --
 lib/librte_cmdline/cmdline_parse_ipaddr.c     |  6 --
 lib/librte_cmdline/cmdline_parse_ipaddr.h     |  2 +-
 lib/librte_cmdline/cmdline_private.h          |  1 +
 lib/librte_cmdline/cmdline_socket.c           |  4 -
 lib/librte_eal/common/eal_common_config.c     |  1 -
 lib/librte_eal/common/eal_common_errno.c      |  4 +
 lib/librte_eal/common/eal_common_options.c    |  2 +-
 lib/librte_eal/common/eal_common_timer.c      |  5 +-
 lib/librte_eal/common/eal_internal_cfg.h      |  1 +
 lib/librte_eal/common/eal_private.h           | 11 +++
 .../freebsd/include/rte_os_internal.h         | 14 +++
 lib/librte_eal/include/rte_thread.h           | 11 +++
 .../linux/include/rte_os_internal.h           | 14 +++
 lib/librte_eal/rte_eal_exports.def            |  2 +
 lib/librte_eal/unix/rte_thread.c              | 10 +-
 lib/librte_eal/version.map                    |  1 +
 lib/librte_eal/windows/eal.c                  | 30 ++++++
 lib/librte_eal/windows/eal_hugepages.c        |  1 -
 lib/librte_eal/windows/eal_lcore.c            |  1 -
 lib/librte_eal/windows/eal_memalloc.c         |  1 -
 lib/librte_eal/windows/eal_thread.c           |  9 +-
 lib/librte_eal/windows/include/arpa/inet.h    | 30 ------
 lib/librte_eal/windows/include/netinet/in.h   | 38 --------
 lib/librte_eal/windows/include/netinet/ip.h   | 10 --
 lib/librte_eal/windows/include/rte_os.h       | 92 +------------------
 .../windows/include/rte_os_internal.h         | 36 ++++++++
 lib/librte_eal/windows/include/sys/socket.h   | 24 -----
 lib/librte_ethdev/ethdev_private.h            |  2 +
 lib/librte_ethdev/rte_ethdev.c                | 13 +--
 lib/librte_ethdev/rte_ethdev_core.h           |  1 -
 lib/librte_kvargs/rte_kvargs.c                |  1 +
 lib/librte_net/rte_ether.h                    | 26 ++++--
 lib/librte_net/rte_ip.h                       |  7 ++
 lib/librte_net/rte_net.c                      |  1 +
 49 files changed, 200 insertions(+), 254 deletions(-)
 create mode 100644 lib/librte_eal/freebsd/include/rte_os_internal.h
 create mode 100644 lib/librte_eal/linux/include/rte_os_internal.h
 delete mode 100644 lib/librte_eal/windows/include/arpa/inet.h
 delete mode 100644 lib/librte_eal/windows/include/netinet/in.h
 delete mode 100644 lib/librte_eal/windows/include/netinet/ip.h
 create mode 100644 lib/librte_eal/windows/include/rte_os_internal.h
 delete mode 100644 lib/librte_eal/windows/include/sys/socket.h

-- 
2.29.3



More information about the dev mailing list