Re: [PATCH 1/4] tools/nolibc: add stdint.h

From: Paul E. McKenney
Date: Sat Mar 04 2023 - 19:47:41 EST


On Sat, Mar 04, 2023 at 03:26:03PM +0100, Willy Tarreau wrote:
> From: Vincent Dagonneau <v@xxxxxx>
>
> Nolibc works fine for small and limited program however most program
> expect integer types to be defined in stdint.h rather than std.h.
>
> This is a quick fix that moves the existing integer definitions in std.h
> to stdint.h.
>
> Signed-off-by: Vincent Dagonneau <v@xxxxxx>
> Reviewed-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
> Signed-off-by: Willy Tarreau <w@xxxxxx>

I queued all three serieses, and it does look good, thank you!

make[1]: Leaving directory '/home/git/linux-rcu'
125 test(s) passed.

I am figuring on pushing these into the v6.4 merge window, that is,
the one after the current just-now-closing merge window.

Thanx, Paul

> ---
> tools/include/nolibc/Makefile | 4 ++--
> tools/include/nolibc/std.h | 15 +--------------
> tools/include/nolibc/stdint.h | 24 ++++++++++++++++++++++++
> 3 files changed, 27 insertions(+), 16 deletions(-)
> create mode 100644 tools/include/nolibc/stdint.h
>
> diff --git a/tools/include/nolibc/Makefile b/tools/include/nolibc/Makefile
> index cfd06764b5ae..ec57d3932506 100644
> --- a/tools/include/nolibc/Makefile
> +++ b/tools/include/nolibc/Makefile
> @@ -25,8 +25,8 @@ endif
>
> nolibc_arch := $(patsubst arm64,aarch64,$(ARCH))
> arch_file := arch-$(nolibc_arch).h
> -all_files := ctype.h errno.h nolibc.h signal.h std.h stdio.h stdlib.h string.h \
> - sys.h time.h types.h unistd.h
> +all_files := ctype.h errno.h nolibc.h signal.h std.h stdint.h stdio.h stdlib.h \
> + string.h sys.h time.h types.h unistd.h
>
> # install all headers needed to support a bare-metal compiler
> all: headers
> diff --git a/tools/include/nolibc/std.h b/tools/include/nolibc/std.h
> index 1747ae125392..933bc0be7e1c 100644
> --- a/tools/include/nolibc/std.h
> +++ b/tools/include/nolibc/std.h
> @@ -18,20 +18,7 @@
> #define NULL ((void *)0)
> #endif
>
> -/* stdint types */
> -typedef unsigned char uint8_t;
> -typedef signed char int8_t;
> -typedef unsigned short uint16_t;
> -typedef signed short int16_t;
> -typedef unsigned int uint32_t;
> -typedef signed int int32_t;
> -typedef unsigned long long uint64_t;
> -typedef signed long long int64_t;
> -typedef unsigned long size_t;
> -typedef signed long ssize_t;
> -typedef unsigned long uintptr_t;
> -typedef signed long intptr_t;
> -typedef signed long ptrdiff_t;
> +#include "stdint.h"
>
> /* those are commonly provided by sys/types.h */
> typedef unsigned int dev_t;
> diff --git a/tools/include/nolibc/stdint.h b/tools/include/nolibc/stdint.h
> new file mode 100644
> index 000000000000..4ba264031df9
> --- /dev/null
> +++ b/tools/include/nolibc/stdint.h
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
> +/*
> + * Standard definitions and types for NOLIBC
> + * Copyright (C) 2023 Vincent Dagonneau <v@xxxxxx>
> + */
> +
> +#ifndef _NOLIBC_STDINT_H
> +#define _NOLIBC_STDINT_H
> +
> +typedef unsigned char uint8_t;
> +typedef signed char int8_t;
> +typedef unsigned short uint16_t;
> +typedef signed short int16_t;
> +typedef unsigned int uint32_t;
> +typedef signed int int32_t;
> +typedef unsigned long long uint64_t;
> +typedef signed long long int64_t;
> +typedef unsigned long size_t;
> +typedef signed long ssize_t;
> +typedef unsigned long uintptr_t;
> +typedef signed long intptr_t;
> +typedef signed long ptrdiff_t;
> +
> +#endif /* _NOLIBC_STDINT_H */
> --
> 2.17.5
>