[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