mbox series

[v6,00/17] Alpine/musl build support

Message ID 20210228125353.2436562-1-thomas@monjalon.net (mailing list archive)
Headers show
Series Alpine/musl build support | expand

Message

Thomas Monjalon Feb. 28, 2021, 12:53 p.m. UTC
These patches fix some build errors/warning for Alpine Linux,
using musl and busybox.
Few improvements are added on the way.

The goal is to run a container with the following Dockerfile:
8< ------------
FROM alpine

# DPDK prerequisites
RUN apk --no-cache add \
    gcc libc-dev bsd-compat-headers linux-headers \
    python3 py3-elftools meson ninja \
    libexecinfo-dev numactl-dev zlib-dev libpcap-dev libbpf-dev openssl-dev

# mlx prerequisites
RUN apk --no-cache add \
    git cmake libnl3-dev
RUN git clone https://github.com/linux-rdma/rdma-core.git
WORKDIR /rdma-core/build
RUN cmake -DNO_MAN_PAGES=1 -DNO_PYVERBS=1 -GNinja ..
RUN ninja install
WORKDIR /

# download
ARG version
RUN if [ "$version" = git ] ; then \
        git clone http://dpdk.org/git/dpdk dpdk-$version ;\
    else \
        wget http://fast.dpdk.org/rel/dpdk-$version.tar.xz && \
        tar xf dpdk-$version.tar.xz ;\
    fi

# build
WORKDIR dpdk-$version/build
RUN meson ..
RUN ninja install
8< ------------


v6: do not set _GNU_SOURCE in pkg-config


Natanael Copa (7):
  bus/pci: support I/O port operations with musl
  bus/dpaa: fix 64-bit arch detection
  bus/dpaa: fix build with musl
  common/dpaax/caamflib: fix build with musl
  common/dpaax/caamflib: simplify log macros
  net/cxgbe: remove use of uint type
  app/testpmd: fix build with musl

Thomas Monjalon (10):
  eal: fix comment of OS-specific header files
  buildtools: fix build with busybox
  build: detect execinfo library on Linux
  build: remove redundant _GNU_SOURCE definitions
  eal: fix build with musl
  drivers: fix header includes for musl
  drivers: replace page size definitions with function
  net/igc: remove use of uint type
  vdpa/mlx5: replace pthread functions unavailable in musl
  examples/bbdev: fix header include for musl

 app/meson.build                           |  4 -
 app/test-pmd/bpf_cmd.c                    |  2 +-
 app/test-pmd/config.c                     |  2 +-
 app/test-pmd/testpmd.h                    |  2 +-
 app/test/meson.build                      |  3 -
 buildtools/binutils-avx512-check.sh       |  2 +-
 buildtools/check-symbols.sh               |  2 +-
 buildtools/map-list-symbol.sh             |  2 +-
 config/meson.build                        |  9 ++-
 doc/api/doxy-api.conf.in                  |  3 +-
 drivers/bus/dpaa/base/fman/netcfg_layer.c |  4 +-
 drivers/bus/dpaa/base/qbman/bman_driver.c | 13 +++-
 drivers/bus/dpaa/base/qbman/qman_driver.c | 17 +++--
 drivers/bus/dpaa/include/fsl_qman.h       |  2 +-
 drivers/bus/dpaa/include/netcfg.h         |  1 -
 drivers/bus/fslmc/qbman/include/compat.h  |  3 -
 drivers/bus/pci/linux/pci_uio.c           | 91 +++++++++++++++--------
 drivers/bus/pci/linux/pci_vfio.c          |  9 +--
 drivers/bus/vmbus/linux/vmbus_uio.c       |  4 +-
 drivers/bus/vmbus/private.h               |  5 +-
 drivers/bus/vmbus/rte_vmbus_reg.h         |  2 +-
 drivers/bus/vmbus/vmbus_common_uio.c      |  4 +-
 drivers/common/dpaax/caamflib/compat.h    | 40 +++++-----
 drivers/common/dpaax/compat.h             |  5 --
 drivers/common/dpaax/meson.build          |  1 -
 drivers/crypto/virtio/virtio_pci.h        |  3 +-
 drivers/event/dlb/dlb.c                   |  9 ++-
 drivers/event/dlb/dlb_priv.h              |  2 -
 drivers/event/dlb/pf/base/dlb_osdep.h     |  2 +-
 drivers/event/dlb/pf/dlb_main.h           |  5 +-
 drivers/event/dlb/pf/dlb_pf.c             | 13 ++--
 drivers/event/dlb2/dlb2.c                 |  2 +-
 drivers/event/dlb2/dlb2_priv.h            |  2 -
 drivers/event/dlb2/pf/base/dlb2_osdep.h   |  2 +-
 drivers/event/dlb2/pf/dlb2_main.h         |  5 +-
 drivers/event/dlb2/pf/dlb2_pf.c           | 11 +--
 drivers/net/bnx2x/ecore_fw_defs.h         | 18 +++--
 drivers/net/cxgbe/base/common.h           | 18 ++---
 drivers/net/igc/igc_flow.c                |  2 +-
 drivers/net/ionic/ionic_lif.c             | 25 ++++---
 drivers/net/ionic/ionic_main.c            |  3 +-
 drivers/net/ionic/ionic_osdep.h           |  2 +-
 drivers/net/memif/rte_eth_memif.h         |  4 -
 drivers/net/mlx5/linux/mlx5_socket.c      |  4 -
 drivers/net/netvsc/hn_rndis.c             | 12 +--
 drivers/net/netvsc/hn_rxtx.c              | 10 ++-
 drivers/net/netvsc/hn_var.h               |  9 +--
 drivers/net/virtio/virtio.h               |  2 +-
 drivers/net/virtio/virtio_ethdev.c        |  6 +-
 drivers/net/virtio/virtio_ethdev.h        |  4 -
 drivers/vdpa/ifc/ifcvf_vdpa.c             | 17 ++---
 drivers/vdpa/mlx5/mlx5_vdpa_event.c       | 25 ++++---
 examples/bbdev_app/main.c                 |  2 +-
 examples/meson.build                      |  4 +-
 lib/librte_eal/freebsd/include/rte_os.h   |  6 +-
 lib/librte_eal/include/rte_lcore.h        |  4 +
 lib/librte_eal/include/rte_thread.h       |  4 +
 lib/librte_eal/linux/include/rte_os.h     |  8 +-
 lib/librte_eal/unix/eal_file.c            |  1 +
 lib/librte_eal/windows/include/rte_os.h   |  5 +-
 lib/librte_eal/windows/include/sched.h    |  1 +
 lib/librte_telemetry/rte_telemetry.h      |  4 +
 62 files changed, 256 insertions(+), 232 deletions(-)

Comments

Thomas Monjalon March 17, 2021, 10:42 p.m. UTC | #1
28/02/2021 13:53, Thomas Monjalon:
> These patches fix some build errors/warning for Alpine Linux,
> using musl and busybox.
> Few improvements are added on the way.

No more comment on this series? Ready to merge?
Andrew Rybchenko March 18, 2021, 8:12 a.m. UTC | #2
On 3/18/21 1:42 AM, Thomas Monjalon wrote:
> 28/02/2021 13:53, Thomas Monjalon:
>> These patches fix some build errors/warning for Alpine Linux,
>> using musl and busybox.
>> Few improvements are added on the way.
> 
> No more comment on this series? Ready to merge?

Series-acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
David Marchand March 18, 2021, 8:56 a.m. UTC | #3
On Wed, Mar 17, 2021 at 11:42 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 28/02/2021 13:53, Thomas Monjalon:
> > These patches fix some build errors/warning for Alpine Linux,
> > using musl and busybox.
> > Few improvements are added on the way.
>
> No more comment on this series? Ready to merge?

This will probably need some rebase on the ioport changes.
I did not find the time to look at busybox, but I still think there is
something funny about awk :-).

For the rest, it looks good to me.
Acked-by: David Marchand <david.marchand@redhat.com>