diff mbox series

[3/3] toolchain/toolchain-external: always call checks with dependencies

Message ID 20230706170904.1063565-3-vfazio@gmail.com
State Rejected
Headers show
Series [1/3] toolchain/toolchain-external/toolchain-external-bootlin: flag OpenMP support | expand

Commit Message

Vincent Fazio July 6, 2023, 5:09 p.m. UTC
Call these unconditionally to make sure proper support is flagged so
proper dependencies are included in the resultant filesystem.

Signed-off-by: Vincent Fazio <vfazio@gmail.com>
---
 .../toolchain-external/pkg-toolchain-external.mk | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

Comments

Markus Mayer July 25, 2023, 12:05 a.m. UTC | #1
On Thu, 6 Jul 2023 at 10:19, Vincent Fazio <vfazio@gmail.com> wrote:
>
> Call these unconditionally to make sure proper support is flagged so
> proper dependencies are included in the resultant filesystem.

What is the reason behind this change? It has a high potential of
breaking the build for users.

It certainly does for us.

>>> host-skeleton  Executing pre-build script board/brcmstb/pre-build.sh
>>> toolchain-external-custom  Configuring
/bin/bash: line 1:
/opt/toolchains/stbgcc-8.3-1.0/bin/aarch64-linux-gfortran: No such
file or directory
OpenMP support is not selected but is available in external toolchain
make[1]: *** [package/pkg-generic.mk:283:
/storage/Extra/buildroot/output/arm64/build/toolchain-external-custom/.stamp_configured]
Error 1
make: *** [Makefile:27: _all] Error 2

I don't think that having a gfortran compiler is a mandatory
prerequisite to be using a toolchain for Buildroot. At least it
shouldn't be.

Can't this be implemented in such a way that the build won't just fail
for no good reason whatsoever?

Thanks,
-Markus

> Signed-off-by: Vincent Fazio <vfazio@gmail.com>
> ---
>  .../toolchain-external/pkg-toolchain-external.mk | 16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
> index c37f3500d9..ddf1d70ab4 100644
> --- a/toolchain/toolchain-external/pkg-toolchain-external.mk
> +++ b/toolchain/toolchain-external/pkg-toolchain-external.mk
> @@ -576,18 +576,10 @@ define $(2)_CONFIGURE_CMDS
>                 $$(call check_arm_abi,\
>                         "$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)") ; \
>         fi ; \
> -       if test "$$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
> -               $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
> -       fi ; \
> -       if test "$$(BR2_TOOLCHAIN_HAS_DLANG)" = "y" ; then \
> -               $$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
> -       fi ; \
> -       if test "$$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
> -               $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
> -       fi ; \
> -       if test "$$(BR2_TOOLCHAIN_HAS_OPENMP)" = "y" ; then \
> -               $$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \
> -       fi ; \
> +       $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
> +       $$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
> +       $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
> +       $$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \
>         if test "$$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \
>                 $$(call check_uclibc,$$$${SYSROOT_DIR}) ; \
>         elif test "$$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \
> --
> 2.34.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Markus Mayer July 25, 2023, 12:26 a.m. UTC | #2
On Mon, 24 Jul 2023 at 17:05, Markus Mayer <mmayer@broadcom.com> wrote:
>
> On Thu, 6 Jul 2023 at 10:19, Vincent Fazio <vfazio@gmail.com> wrote:
> >
> > Call these unconditionally to make sure proper support is flagged so
> > proper dependencies are included in the resultant filesystem.
>
> What is the reason behind this change? It has a high potential of
> breaking the build for users.
>
> It certainly does for us.
>
> >>> host-skeleton  Executing pre-build script board/brcmstb/pre-build.sh
> >>> toolchain-external-custom  Configuring
> /bin/bash: line 1:
> /opt/toolchains/stbgcc-8.3-1.0/bin/aarch64-linux-gfortran: No such
> file or directory
> OpenMP support is not selected but is available in external toolchain
> make[1]: *** [package/pkg-generic.mk:283:
> /storage/Extra/buildroot/output/arm64/build/toolchain-external-custom/.stamp_configured]
> Error 1
> make: *** [Makefile:27: _all] Error 2

Okay. It isn't gfortran that aborts the build but OpenMP, and I can
fix that by setting
BR2_TOOLCHAIN_EXTERNAL_OPENMP=y

Still, the gfortran error message ("No such file or directory") should
probably not appear. Let me see if I can whip up a patch for that.

>> host-skeleton  Executing pre-build script board/brcmstb/pre-build.sh
>>> toolchain-external-custom  Extracting
>>> toolchain-external-custom  Patching
>>> toolchain-external-custom  Configuring
/bin/bash: line 1:
/opt/toolchains/stbgcc-8.3-1.0/bin/aarch64-linux-gfortran: No such
file or directory
>>> toolchain-external-custom  Building
/storage/Extra/buildroot/output/arm64/host/bin/ccache /usr/bin/gcc -O2
-I/storage/Extra/buildroot/output/arm64/host/include -DNDEBUG
-DBR_CPU='"cortex-a53"' -DBR_ABI='"lp64"' -DBR_CROSS_PATH_SUFFIX='""'
-DBR_CROSS_PATH_ABS='"/opt/toolchains/stbgcc-8.3-1.0/bin"'
-DBR_SYSROOT='"aarch64-buildroot-linux-gnu/sysroot"'
-DBR_ADDITIONAL_CFLAGS='"-Wl,-z,max-page-size=4096",
"-Wl,-z,common-page-size=4096", "-fstack-protector-strong",'
-DBR_CCACHE -DBR_CCACHE_BASEDIR='"/storage/Extra/buildroot/output/arm64"'
-DBR2_PIC_PIE -DBR2_RELRO_FULL -s -Wl,--hash-style=both
toolchain/toolchain-wrapper.c -o
/storage/Extra/buildroot/output/arm64/build/toolchain-external-custom/toolchain-wrapper
>>> toolchain-external-custom  Installing to staging directory

Regards,
-Markus

> > Signed-off-by: Vincent Fazio <vfazio@gmail.com>
> > ---
> >  .../toolchain-external/pkg-toolchain-external.mk | 16 ++++------------
> >  1 file changed, 4 insertions(+), 12 deletions(-)
> >
> > diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
> > index c37f3500d9..ddf1d70ab4 100644
> > --- a/toolchain/toolchain-external/pkg-toolchain-external.mk
> > +++ b/toolchain/toolchain-external/pkg-toolchain-external.mk
> > @@ -576,18 +576,10 @@ define $(2)_CONFIGURE_CMDS
> >                 $$(call check_arm_abi,\
> >                         "$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)") ; \
> >         fi ; \
> > -       if test "$$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
> > -               $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
> > -       fi ; \
> > -       if test "$$(BR2_TOOLCHAIN_HAS_DLANG)" = "y" ; then \
> > -               $$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
> > -       fi ; \
> > -       if test "$$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
> > -               $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
> > -       fi ; \
> > -       if test "$$(BR2_TOOLCHAIN_HAS_OPENMP)" = "y" ; then \
> > -               $$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \
> > -       fi ; \
> > +       $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
> > +       $$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
> > +       $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
> > +       $$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \
> >         if test "$$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \
> >                 $$(call check_uclibc,$$$${SYSROOT_DIR}) ; \
> >         elif test "$$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \
> > --
> > 2.34.1
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
Markus Mayer July 25, 2023, 12:47 a.m. UTC | #3
> > >>> host-skeleton  Executing pre-build script board/brcmstb/pre-build.sh
> > >>> toolchain-external-custom  Configuring
> > /bin/bash: line 1:
> > /opt/toolchains/stbgcc-8.3-1.0/bin/aarch64-linux-gfortran: No such
> > file or directory
> > OpenMP support is not selected but is available in external toolchain
> > make[1]: *** [package/pkg-generic.mk:283:
> > /storage/Extra/buildroot/output/arm64/build/toolchain-external-custom/.stamp_configured]
> > Error 1
> > make: *** [Makefile:27: _all] Error 2
>
[...]
>
> Still, the gfortran error message ("No such file or directory") should
> probably not appear. Let me see if I can whip up a patch for that.

Patch sent.

https://lists.buildroot.org/pipermail/buildroot/2023-July/671113.html

Regards,
-Markus
diff mbox series

Patch

diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
index c37f3500d9..ddf1d70ab4 100644
--- a/toolchain/toolchain-external/pkg-toolchain-external.mk
+++ b/toolchain/toolchain-external/pkg-toolchain-external.mk
@@ -576,18 +576,10 @@  define $(2)_CONFIGURE_CMDS
 		$$(call check_arm_abi,\
 			"$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)") ; \
 	fi ; \
-	if test "$$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
-		$$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
-	fi ; \
-	if test "$$(BR2_TOOLCHAIN_HAS_DLANG)" = "y" ; then \
-		$$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
-	fi ; \
-	if test "$$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
-		$$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
-	fi ; \
-	if test "$$(BR2_TOOLCHAIN_HAS_OPENMP)" = "y" ; then \
-		$$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \
-	fi ; \
+	$$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
+	$$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
+	$$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
+	$$(call check_openmp,$$(TOOLCHAIN_EXTERNAL_CC)) ; \
 	if test "$$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \
 		$$(call check_uclibc,$$$${SYSROOT_DIR}) ; \
 	elif test "$$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \