bus/dpaa: fix build with musl
authorNatanael Copa <ncopa@alpinelinux.org>
Thu, 5 Nov 2020 21:17:12 +0000 (22:17 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 23 Mar 2021 07:41:05 +0000 (08:41 +0100)
commite9fd4b87f08d4da01ea9bde075f02e702b65a784
treef7d1a779ab6e2ad8e7fd84651478ace5cd166ea5
parenta4ab65e75beecbebafdca91aa6aac1f091b4460c
bus/dpaa: fix build with musl

The header files argp.h and error.h do not exist in musl libc.

Fix build with musl libc by using err(3) instead of
the GNU-specific error(3).

We could have used the identical errx("...: %s", strerror(ret))` but
strerror(3) is not thread-safe and the strerror_r variant has two
incompatible versions, one GNU specific and one XSI-compliant.
Avoid the mess by letting "err" use the thread-local errno.

This also fixes error message for kzmalloc failures which previously
would always have given "Unknown error -1", since that is what
strerror(-1) returns. Let "err" use the proper error message from errno
which is set by kzalloc.

Fixes: 9d32ef0f5d61 ("bus/dpaa: support creating dynamic HW portal")
Fixes: f09ede6c8fd1 ("bus/dpaa: add BMAN driver core")
Fixes: 5b22cf744689 ("bus/dpaa: introducing FMan configurations")
Fixes: 39f373cf015a ("bus/dpaa: add compatibility and helper macros")
Cc: stable@dpdk.org
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
drivers/bus/dpaa/base/fman/netcfg_layer.c
drivers/bus/dpaa/base/qbman/bman_driver.c
drivers/bus/dpaa/base/qbman/qman_driver.c
drivers/bus/dpaa/include/netcfg.h
drivers/common/dpaax/compat.h