[Buildroot] [PATCH 2/5] support/scripts/gen-bootlin-toolchains: riscv32 use a pre-2.33 glibc version without RPC support

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Dec 7 21:50:15 UTC 2020


Hello,

On Mon,  7 Dec 2020 21:48:18 +0100
Romain Naour <romain.naour at gmail.com> wrote:

> riscv32 has been merged into glibc 2.33 where RPC support has been removed [1].
> 
> Add a special handling for the riscv32 Bootlin bleeding-edge 2020.08-1 toolchain
> since it used a pre-2.33 glibc version [2].
> 
> Other glibc Bootlin toolchain use glibc 2.31 with RPC support enabled.
> 
> This special handling must be removed when all Bootlin toolchain has been
> rebuild with glibc > 2.32.
> 
> [1] https://sourceware.org/pipermail/libc-announce/2020/000029.html
> [2] https://git.buildroot.net/buildroot/commit/?id=a4889545aa653e7f001f212eda169e7d676aefc0
> 
> Signed-off-by: Romain Naour <romain.naour at gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> ---
>  support/scripts/gen-bootlin-toolchains | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/support/scripts/gen-bootlin-toolchains b/support/scripts/gen-bootlin-toolchains
> index fce75c51c2..645584d07e 100755
> --- a/support/scripts/gen-bootlin-toolchains
> +++ b/support/scripts/gen-bootlin-toolchains
> @@ -263,8 +263,11 @@ class Toolchain:
>                  # glibc doesn't support static only configuration
>                  depends.append("!BR2_STATIC_LIBS")
>                  selects.append("BR2_TOOLCHAIN_EXTERNAL_GLIBC")
> -                # all glibc toolchains have RPC support
> -                selects.append("BR2_TOOLCHAIN_HAS_NATIVE_RPC")
> +
> +                # riscv32 has been merged into glibc 2.33 where RPC support has been removed.
> +                if not self.arch.startswith("riscv32"):
> +                    # all glibc < 2.32 toolchains have RPC support
> +                    selects.append("BR2_TOOLCHAIN_HAS_NATIVE_RPC")

I am not convinced by this approach, as it doesn't work when glibc 2.33
gets used for other platforms than RISC-V 32. Instead, what we need to do is:

 (1) Fix how toolchains.bootlin.com generates its fragments to no
     longer assume that glibc == RPC available.

 (2) Fix the gen-bootlin-toolchains script to also no longer assume
     that glibc == RPC available, and instead use what the fragment
     provided by toolchains.bootlin.com for each toolchain says.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list