diff mbox series

[v2,2/4] package/Makefile.in: add detection for the lack of C library

Message ID 20220726163951.2111731-2-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series [v2,1/4] arch/Config.in.riscv: lp64f ABI is only supported if MMU is enabled | expand

Commit Message

Thomas Petazzoni July 26, 2022, 4:39 p.m. UTC
We recently had several cases of architecture configurations for which
no C library was available, leading to a build failure during the gcc
build. In order to more easily detect those bogus configurations,
let's bail out very early by detecting the lack of C library
selection.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/Makefile.in | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Yann E. MORIN July 27, 2022, 7:58 a.m. UTC | #1
Thomas, All,

On 2022-07-26 18:39 +0200, Thomas Petazzoni via buildroot spake thusly:
> We recently had several cases of architecture configurations for which
> no C library was available, leading to a build failure during the gcc
> build. In order to more easily detect those bogus configurations,
> let's bail out very early by detecting the lack of C library
> selection.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/Makefile.in | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 508ea7c366..f8920c87a4 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -47,6 +47,12 @@ else
>  TARGET_OS = linux
>  endif
>  
> +# This happens if there is a bug in Buildroot that allows an
> +# architecture configuration that isn't supported by any library.
> +ifeq ($(BR2_TOOLCHAIN_USES_GLIBC)$(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_TOOLCHAIN_USES_MUSL),)
> +$(error No C library enabled, this is not possible.)
> +endif

I've moved this as the last else clause in the fllowing conditional
block (and added an explicit test for the else-glibc case of course).

Applied to master, thanks.

Regards,
Yann E. MORIN.

>  LIBC = uclibc
>  else ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
> -- 
> 2.37.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni July 27, 2022, 8:24 a.m. UTC | #2
On Wed, 27 Jul 2022 09:58:26 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> > +# This happens if there is a bug in Buildroot that allows an
> > +# architecture configuration that isn't supported by any library.
> > +ifeq ($(BR2_TOOLCHAIN_USES_GLIBC)$(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_TOOLCHAIN_USES_MUSL),)
> > +$(error No C library enabled, this is not possible.)
> > +endif  
> 
> I've moved this as the last else clause in the fllowing conditional
> block (and added an explicit test for the else-glibc case of course).

Aaah, yes, that's even better indeed! Thanks for fixing this!

Thomas
Peter Korsgaard Aug. 29, 2022, 8:15 p.m. UTC | #3
>>>>> "Thomas" == Thomas Petazzoni via buildroot <buildroot@buildroot.org> writes:

 > We recently had several cases of architecture configurations for which
 > no C library was available, leading to a build failure during the gcc
 > build. In order to more easily detect those bogus configurations,
 > let's bail out very early by detecting the lack of C library
 > selection.

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Committed to 2022.05.x and 2022.02.x, thanks.
diff mbox series

Patch

diff --git a/package/Makefile.in b/package/Makefile.in
index 508ea7c366..f8920c87a4 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -47,6 +47,12 @@  else
 TARGET_OS = linux
 endif
 
+# This happens if there is a bug in Buildroot that allows an
+# architecture configuration that isn't supported by any library.
+ifeq ($(BR2_TOOLCHAIN_USES_GLIBC)$(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_TOOLCHAIN_USES_MUSL),)
+$(error No C library enabled, this is not possible.)
+endif
+
 ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 LIBC = uclibc
 else ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)