[PATCH] ipu3: Use posix basename
Kieran Bingham
kieran.bingham at ideasonboard.com
Tue Apr 16 16:58:53 CEST 2024
Quoting Khem Raj (2024-03-24 18:33:07)
> musl does not implement GNU basename extention and with latest musl
> the prototype from string.h is also removed [1] which now results in
> compile errors e.g.
>
> ../git/utils/ipu3/ipu3-pack.c:21:47: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
>
> These utilities are using this function in usage() which is used just
> before program exit. Always use the basename APIs from libgen.h which is
> posix implementation
>
> [1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
This passes all of our compile and lint tests presently. We don't have a
Musl target in CI yet. Perhaps we should add one.
https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1138070
No particularly strong opinion on the patch, but it fixes an issue
for you, and is only in one of the utils, and doesn't break CI ...
It's a shame that this removes a const on a variable that otherwise
shouldn't be modified but ... I think we can cope with that here.
In fact we have our own implementation of basename() in our base library
utils probably because of this reason. But I don't think linking against
libcamera-base is really required or desired/necessary for the
ipu3-pack/unpack utils so ...
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
> utils/ipu3/ipu3-pack.c | 4 ++--
> utils/ipu3/ipu3-unpack.c | 3 ++-
> 2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/utils/ipu3/ipu3-pack.c b/utils/ipu3/ipu3-pack.c
> index decbfc6c..23d2db8b 100644
> --- a/utils/ipu3/ipu3-pack.c
> +++ b/utils/ipu3/ipu3-pack.c
> @@ -8,6 +8,7 @@
>
> #include <errno.h>
> #include <fcntl.h>
> +#include <libgen.h>
> #include <stdint.h>
> #include <stdio.h>
> #include <string.h>
> @@ -15,9 +16,8 @@
> #include <sys/types.h>
> #include <unistd.h>
>
> -static void usage(const char *argv0)
> +static void usage(char *argv0)
> {
> -
> printf("Usage: %s input-file output-file\n", basename(argv0));
> printf("Convert unpacked RAW10 Bayer data to the IPU3 packed Bayer formats\n");
> printf("If the output-file '-', output data will be written to standard output\n");
> diff --git a/utils/ipu3/ipu3-unpack.c b/utils/ipu3/ipu3-unpack.c
> index 9d2c1200..1505a970 100644
> --- a/utils/ipu3/ipu3-unpack.c
> +++ b/utils/ipu3/ipu3-unpack.c
> @@ -8,6 +8,7 @@
>
> #include <errno.h>
> #include <fcntl.h>
> +#include <libgen.h>
> #include <stdint.h>
> #include <stdio.h>
> #include <string.h>
> @@ -15,7 +16,7 @@
> #include <sys/types.h>
> #include <unistd.h>
>
> -static void usage(const char *argv0)
> +static void usage(char *argv0)
> {
> printf("Usage: %s input-file output-file\n", basename(argv0));
> printf("Unpack the IPU3 raw Bayer format to 16-bit Bayer\n");
> --
> 2.44.0
>
More information about the libcamera-devel
mailing list