This patchset fixes numerous issues with musl compatibility in the core EAL libraries. It does not fix anything beyond core EAL (so, PCI driver is still broken, so are a few other drivers), but it's a good start.
Tested on container with Alpine Linux. Alpine dependencies: build-base bsd-compat-headers libexecinfo-dev linux-headers numactl-dev For numactl-dev, testing repository needs to be enabled: echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories If successful (using a very broad definition of "success"), the build should fail somewhere in PCI bus driver in UIO. v3 -> v2: - Made _GNU_SOURCE unconditional for all DPDK targets - Fixed usage of __USE_GNU and _GNU_SOURCE accross DPDK v2 -> v1: - Fixed patch 2 to use existing define if available - Fixed patch 7 to use proper format specifier and cast pthread ID to unsigned pointer type Anatoly Burakov (7): mk: build with _GNU_SOURCE defined by default pci/vfio: improve musl compatibility fbarray: improve musl compatibility eal/hugepage_info: improve musl compatibility mem: improve musl compatibility string_fns: improve musl compatibility eal: improve musl compatibility app/meson.build | 7 +++++- app/test-pmd/Makefile | 2 -- buildtools/pmdinfogen/pmdinfogen.c | 1 - drivers/bus/dpaa/Makefile | 1 - drivers/bus/dpaa/meson.build | 1 - drivers/bus/fslmc/meson.build | 1 - drivers/bus/pci/linux/Makefile | 2 -- drivers/bus/pci/linux/pci_vfio.c | 2 ++ drivers/bus/pci/meson.build | 1 - drivers/crypto/dpaa2_sec/Makefile | 1 - drivers/crypto/dpaa_sec/Makefile | 1 - drivers/mempool/dpaa/Makefile | 1 - drivers/meson.build | 4 ++++ drivers/net/mlx5/mlx5_ethdev.c | 2 -- drivers/net/mlx5/mlx5_socket.c | 2 -- drivers/net/softnic/conn.c | 1 - examples/cmdline/Makefile | 1 - examples/ethtool/ethtool-app/Makefile | 2 +- examples/ip_pipeline/conn.c | 1 - examples/l2fwd-cat/Makefile | 2 -- examples/l2fwd-cat/meson.build | 1 - examples/load_balancer/Makefile | 1 - examples/meson.build | 4 ++++ .../performance-thread/l3fwd-thread/main.c | 2 -- .../performance-thread/pthread_shim/main.c | 1 - .../pthread_shim/pthread_shim.c | 1 - examples/qos_sched/Makefile | 2 -- examples/tep_termination/Makefile | 1 - examples/vhost/Makefile | 1 - examples/vhost_crypto/Makefile | 1 - examples/vhost_crypto/meson.build | 2 +- examples/vhost_scsi/Makefile | 4 ++-- examples/vhost_scsi/meson.build | 2 +- lib/librte_cmdline/Makefile | 1 - lib/librte_cmdline/cmdline.c | 24 ------------------- lib/librte_eal/bsdapp/eal/Makefile | 5 ---- lib/librte_eal/common/eal_common_fbarray.c | 1 + lib/librte_eal/common/eal_common_memory.c | 1 + .../common/include/rte_string_fns.h | 1 + lib/librte_eal/linuxapp/eal/Makefile | 16 ------------- lib/librte_eal/linuxapp/eal/eal.c | 4 ++-- .../linuxapp/eal/eal_hugepage_info.c | 1 + lib/librte_eal/linuxapp/eal/eal_memory.c | 1 + lib/librte_eal/linuxapp/eal/eal_thread.c | 4 ++-- lib/librte_eal/meson.build | 1 - lib/librte_pdump/Makefile | 1 - lib/librte_sched/Makefile | 2 -- lib/meson.build | 4 ++++ mk/target/generic/rte.vars.mk | 3 +++ test/test/Makefile | 2 -- test/test/meson.build | 3 +++ 51 files changed, 40 insertions(+), 94 deletions(-) -- 2.17.1