What we can do: 1. Introduce `rte_queue.h` (name can be better) that is env-specific: 1.1. For Linux and FreeBSD it just includes <sys/queue.h> and renames a few macros that are used in headers to RTE_xxx. 1.2. For Windows it defines the same RTE_xxx macros in a way compatible with the <sys/queue.h> version used to build DPDK. 2. Add #include <sys/queue.h> in <rte_os_shim.h>: Linux and FreeBSD will include a system header, Windows will use the bundled one. This way application are not exposed to non-RTE symbols, at the same time RTE_xxx are binary-compatible with what DPDK implementation expects (and outside of Windows there is no change in fact).
+1 Nick