[dpdk-dev] [PATCH v5 4/8] eal: sys/queue.h implementation for windows
Jeff Shaw
jeffrey.b.shaw at intel.com
Tue Mar 26 23:34:06 CET 2019
On Tue, Mar 26, 2019 at 11:23:50PM +0100, Thomas Monjalon wrote:
> 26/03/2019 22:54, Jeff Shaw:
> > On Tue, Mar 26, 2019 at 10:47:54PM +0100, Thomas Monjalon wrote:
> > > 26/03/2019 22:14, Jeff Shaw:
> > > > On Tue, Mar 26, 2019 at 09:52:57PM +0100, Thomas Monjalon wrote:
> > > > > Even better would be to get it as a dependency outside of DPDK.
> > > > > Where this code come from?
> > > > > How other projects on Windows get it?
> > > >
> > > > It comes from FreeBSD 12.0, specifically
> > > > https://github.com/freebsd/freebsd/blob/releng/12.0/sys/sys/queue.h
> > > >
> > > > It has been modified such that only the parts used by DPDK (i.e. TAILQ) are
> > > > implemented. The other stuff has been deleted. Windows does not have sys/queue.h,
> > > > so we reproduce it here.
> > > >
> > > > Would it better to have this as a dependency outside of DPDK? I think pulling a file
> > > > from the internet and applying a patch (where we'd have to maintain a patch file
> > > > inside of DPDK's repo anyway) would be overkill when we just need a few lines of
> > > > code that will change very infrequently.
> > >
> > > We already try to get the libbsd dependency on Linux.
> > > Why not mandate libbsd for Windows?
> > > It has this header file and a lot more:
> > > https://gitlab.freedesktop.org/libbsd/libbsd/blob/master/include/bsd/sys/queue.h
> > >
> > > Relying on libbsd may avoid copying other files for Windows port.
> >
> > I like that idea, though it doesn't look like libbsd builds on Windows, do you
> > know of a Windows version or one that doesn't depend on autotools to build?
>
> It seems libbsd is not packaged for Windows.
> May be worth to ask opinions to libbsd maintainers.
>
> Please could you list which other headers are required for the Windows port?
For helloworld the only one is sys/queue.h.
The dpdk-draft-windows repo has at least these (non-empty) ones:
dirent.h
getopt.h
net/ethernet.h
net/socket.h
netinet/in.h
netinet/tcp.h
pthread.h
rand48.h
sched.h
sys/_iovec.h
sys/_sockaddr_storage.h
sys/_termios.h
sys/_types.h
sys/cdefs.h
sys/mman.h
sys/netbsd/queue.h
sys/queue.h
sys/sysctl.h
syslog.h
termios.h
unistd.h
There will likely be more as more libraries are identified with dependencies on UNIX-like
headers.
More information about the dev
mailing list