[dpdk-dev] Windows: A fundamental issue (was eal/windows: definition for ETOOMANYREFS errno)
nick.connolly at mayadata.io
Tue Nov 17 11:51:05 CET 2020
Unfortunately, this change has broken the build for SPDK on Windows.
To use the DPDK libraries, an application needs to include the rte_*
header, which includes rte_os.h via rte_common.h. The definition of
ETOOMANYREFS clashes with the value used when building the SPDK on Windows.
The fundamental issue here is how to support missing POSIX/Linux
functionality. If I understand correctly, the EAL should be responsible
for providing all such functionality. The support should be private to
the EAL and only exported through rte_* definitions.
This means that rte_os.h should not include POSIX/Linux definitions to
avoid clashes such as the one seen with this change. It's clearly not
sustainable if applications have to be modified every time we add more
Windows support to the DPDK.
Note that this is not an isolated issue - most of the definitions in
rte_os.h (redefining close, unlink, strdup etc) should not be present if
other layers (application, other libraries, etc) are to be able to
implement their own POSIX/Linux support.
Please can we back this change out until we have a strategy that allows
us to make these definitions available for 'internal' use, but prevent
them being visible outside of the DPDK tree. If we can't wrap them with
rte_* yet, perhaps the short term solution could be as simple as setting
RTE_DEFINE_POSIX when building DPDK code and hiding them if it is not set?
Apologies that I didn't spot the issue earlier.
On 15/11/2020 23:10, Thomas Monjalon wrote:
> 15/11/2020 00:13, Dmitry Kozlyuk:
>> On Sun, 15 Nov 2020 00:21:29 +0200, Tal Shnaiderman wrote:
>>> The ETOOMANYREFS errno is missing from the Windows build.
>>> it is used in initialization of flow error structures.
>>> The commit will define it with the same error code used by
>>> Signed-off-by: Tal Shnaiderman <talshn at nvidia.com>
>>> v2: log message fix, apply errno to both Windows builds
>>> and remove dependency on winsock2.h [DmitryK]
>> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> Applied, thanks
More information about the dev