> Why are we still building one .so file per DPDK library, instead of just > building one big dpdk.so for all DPDK libraries? > I think it's legacy from when DPDK libraries were versioned individually, and > thus not relevant anymore. > > Wouldn't building one big dpdk.so eliminate the problems with circular > dependencies between DPDK libraries?
Obviously, the source code should remain organized as individual directories per library. I'm only suggesting linking them all into one object, so any DPDK lib can call any function in any other DPDK lib. Perhaps only the core libs or always_enable libs should be linked into one object. Here's an example benefit: I'm currently trying to convince the PMU lib author to make PMU depend on EAL [1], so missing error handling of sysconf(_SC_PAGESIZE) can be in the EAL for all uses, instead of copy-pasting sysconf(_SC_PAGESIZE) error handling to everywhere it is used. But this is difficult with the dependency chain for the patch adding PMU to Trace: Trace depends on PMU, and EAL depends on Trace, therefore EAL depends on PMU. [1]: https://inbox.dpdk.org/dev/98cbd80474fa8b44bf855df32c47dc35e9f...@smartserver.smartshare.dk/