* [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues
@ 2022-06-05 19:42 Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 1/7] package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and BR2_PACKAGE_UCLIBC_SUPPORTS Thomas Petazzoni via buildroot
` (8 more replies)
0 siblings, 9 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Thomas Petazzoni
Hello,
The starting point for this series is the investigation of several
build failures affecting the master branch.
Most of those failures are due to the fact that we can currently
create configurations for which no C library is available. This
happens on architectures where glibc is the only supported C library,
but BR2_STATIC_LIBS is enabled.
This is taken care of by the first four patches, which are basically
split from a single patch posted by James Hilliard.
Then, another problem is that a recent commit allowed glibc only for
powerpc8 on the ppc64le architecture, leaving a number of other
PowerPC variants selectable with ppc64le, but for which no C library
was available.
Finally, the toolchain-external-booltin package had a similar problem
to the glibc/BR2_STATIC_LIBS issue: the package would be visible even
if BR2_STATIC_LIBS=y and the selected CPU architecture is only
supported by glibc.
Thomas
James Hilliard (4):
package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and
BR2_PACKAGE_UCLIBC_SUPPORTS
package/glibc: introduce and use BR2_PACKAGE_GLIBC_ARCH_SUPPORTS and
BR2_PACKAGE_GLIBC_SUPPORTS
package/musl: introduce and use BR2_PACKAGE_MUSL_ARCH_SUPPORTS and
BR2_PACKAGE_MUSL_SUPPORTS
Config.in: only allow BR2_STATIC_LIBS on supported libc/arch
Thomas Petazzoni (3):
arch/Config.in.powerpc: disable some variants on ppc64le
support/scripts/gen-bootlin-toolchains: properly take into account
!BR2_STATIC_LIBS for glibc toolchains
toolchain/toolchain-external/toolchain-external-bootlin: regenerate
with correct !BR2_STATIC_LIBS handling
Config.in | 2 +
arch/Config.in.powerpc | 10 +++++
package/glibc/Config.in | 38 ++++++++++++++++
package/musl/Config.in | 28 ++++++++++++
package/uclibc/Config.in | 28 ++++++++++++
support/scripts/gen-bootlin-toolchains | 5 ++-
toolchain/toolchain-buildroot/Config.in | 43 ++++---------------
.../Config.in.options | 10 ++---
8 files changed, 124 insertions(+), 40 deletions(-)
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 1/7] package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and BR2_PACKAGE_UCLIBC_SUPPORTS
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 2/7] package/glibc: introduce and use BR2_PACKAGE_GLIBC_ARCH_SUPPORTS and BR2_PACKAGE_GLIBC_SUPPORTS Thomas Petazzoni via buildroot
` (7 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Romain Naour, Giulio Benetti, Thomas Petazzoni, Thomas De Schampheleire
From: James Hilliard <james.hilliard1@gmail.com>
In this commit BR2_PACKAGE_UCLIBC_SUPPORTS looks redundant with
BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS, but for other C libraries, they will
be different. To be consistent, we use the same pattern for uClibc as
well.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
package/uclibc/Config.in | 28 +++++++++++++++++++++++++
toolchain/toolchain-buildroot/Config.in | 8 +------
2 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 310414bebc..754c3ea014 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -1,3 +1,31 @@
+config BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS
+ bool
+ default y if BR2_aarch64
+ default y if BR2_aarch64_be
+ default y if BR2_arcle
+ default y if BR2_arceb
+ default y if BR2_arm
+ default y if BR2_armeb
+ default y if BR2_i386
+ default y if BR2_m68k
+ default y if BR2_microblaze
+ default y if BR2_mips
+ default y if BR2_mipsel
+ default y if BR2_mips64
+ default y if BR2_mips64el
+ default y if BR2_or1k
+ default y if BR2_powerpc
+ default y if BR2_RISCV_64
+ default y if BR2_sh4
+ default y if BR2_sh4eb
+ default y if BR2_sparc
+ default y if BR2_xtensa
+ default y if BR2_x86_64
+
+config BR2_PACKAGE_UCLIBC_SUPPORTS
+ bool
+ default y if BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS
+
if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
comment "uClibc Options"
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 559c254622..31f2be8b25 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -27,13 +27,7 @@ choice
config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
bool "uClibc-ng"
- depends on BR2_aarch64 || BR2_aarch64_be || BR2_arcle || BR2_arceb || \
- BR2_arm || BR2_armeb || \
- BR2_i386 || BR2_m68k || BR2_microblaze || \
- BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
- BR2_or1k || BR2_powerpc || BR2_RISCV_64 || \
- BR2_sh4 || BR2_sh4eb || BR2_sparc || BR2_xtensa || \
- BR2_x86_64
+ depends on BR2_PACKAGE_UCLIBC_SUPPORTS
select BR2_TOOLCHAIN_USES_UCLIBC
help
This option selects uClibc-ng as the C library for the
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 2/7] package/glibc: introduce and use BR2_PACKAGE_GLIBC_ARCH_SUPPORTS and BR2_PACKAGE_GLIBC_SUPPORTS
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 1/7] package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and BR2_PACKAGE_UCLIBC_SUPPORTS Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 3/7] package/musl: introduce and use BR2_PACKAGE_MUSL_ARCH_SUPPORTS and BR2_PACKAGE_MUSL_SUPPORTS Thomas Petazzoni via buildroot
` (6 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Thomas De Schampheleire, Giulio Benetti, Romain Naour, Thomas Petazzoni
From: James Hilliard <james.hilliard1@gmail.com>
As part of this, the dependency of the comment "glibc needs a
toolchain w/ dynamic library, kernel headers >= 3.2" is changed to use
BR2_PACKAGE_GLIBC_ARCH_SUPPORTS instead of just BR2_USE_MMU, so that
the comment only appears on architectures for which glibc is supported
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
package/glibc/Config.in | 38 +++++++++++++++++++++++++
toolchain/toolchain-buildroot/Config.in | 20 ++-----------
2 files changed, 40 insertions(+), 18 deletions(-)
diff --git a/package/glibc/Config.in b/package/glibc/Config.in
index 8e9ddac7d9..56f7299568 100644
--- a/package/glibc/Config.in
+++ b/package/glibc/Config.in
@@ -1,3 +1,41 @@
+config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
+ bool
+ default y if BR2_arm
+ default y if BR2_armeb
+ default y if BR2_aarch64
+ default y if BR2_aarch64_be
+ default y if BR2_i386
+ default y if BR2_mips
+ default y if BR2_mipsel
+ default y if BR2_mips64
+ default y if BR2_mips64el
+ default y if BR2_or1k
+ default y if BR2_powerpc
+ default y if BR2_powerpc64
+ default y if BR2_powerpc_power8
+ default y if BR2_riscv
+ default y if BR2_s390x
+ default y if BR2_sh
+ default y if BR2_sparc64
+ default y if BR2_x86_64
+ default y if BR2_microblaze
+ default y if BR2_nios2
+ default y if BR2_arc && BR2_ARC_ATOMIC_EXT
+ default y if BR2_csky
+ depends on !BR2_powerpc_SPE
+ depends on BR2_RISCV_ISA_RVA || !BR2_riscv
+ depends on BR2_USE_MMU
+
+config BR2_PACKAGE_GLIBC_SUPPORTS
+ bool
+ default y if BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
+ depends on !BR2_STATIC_LIBS
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 || !BR2_arc
+
if BR2_TOOLCHAIN_BUILDROOT_GLIBC
comment "Glibc Options"
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 31f2be8b25..7ce2998cf7 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -37,23 +37,7 @@ config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
config BR2_TOOLCHAIN_BUILDROOT_GLIBC
bool "glibc"
- depends on BR2_arm || BR2_armeb || BR2_aarch64 || \
- BR2_aarch64_be || BR2_i386 || BR2_mips || \
- BR2_mipsel || BR2_mips64 || BR2_mips64el|| \
- BR2_powerpc || BR2_powerpc64 || BR2_powerpc_power8 || \
- BR2_riscv || BR2_s390x || BR2_sh || \
- BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \
- BR2_nios2 || (BR2_arc && BR2_ARC_ATOMIC_EXT) || \
- BR2_csky || BR2_or1k
- depends on BR2_USE_MMU
- depends on !BR2_STATIC_LIBS
- depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
- depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le
- depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
- depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64
- depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 || !BR2_arc
- depends on !BR2_powerpc_SPE
- depends on BR2_RISCV_ISA_RVA || !BR2_riscv
+ depends on BR2_PACKAGE_GLIBC_SUPPORTS
select BR2_TOOLCHAIN_USES_GLIBC
help
This option selects glibc as the C library for the
@@ -62,7 +46,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
http://www.gnu.org/software/libc/
comment "glibc needs a toolchain w/ dynamic library, kernel headers >= 3.2"
- depends on BR2_USE_MMU
+ depends on BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
# glibc >= 2.26 require kernel headers >= 3.10 on powerpc64le.
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 3/7] package/musl: introduce and use BR2_PACKAGE_MUSL_ARCH_SUPPORTS and BR2_PACKAGE_MUSL_SUPPORTS
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 1/7] package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and BR2_PACKAGE_UCLIBC_SUPPORTS Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 2/7] package/glibc: introduce and use BR2_PACKAGE_GLIBC_ARCH_SUPPORTS and BR2_PACKAGE_GLIBC_SUPPORTS Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 4/7] Config.in: only allow BR2_STATIC_LIBS on supported libc/arch Thomas Petazzoni via buildroot
` (5 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Giulio Benetti, Romain Naour, Thomas De Schampheleire, Thomas Petazzoni
From: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
package/musl/Config.in | 28 +++++++++++++++++++++++++
toolchain/toolchain-buildroot/Config.in | 10 +--------
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/package/musl/Config.in b/package/musl/Config.in
index 69da615b63..c1a10bdd58 100644
--- a/package/musl/Config.in
+++ b/package/musl/Config.in
@@ -1,3 +1,31 @@
+config BR2_PACKAGE_MUSL_ARCH_SUPPORTS
+ bool
+ default y if BR2_aarch64
+ default y if BR2_arm
+ default y if BR2_armeb
+ default y if BR2_i386
+ default y if BR2_microblaze
+ default y if BR2_mips
+ default y if BR2_mipsel
+ default y if BR2_mips64
+ default y if BR2_mips64el
+ default y if BR2_or1k
+ default y if BR2_powerpc
+ default y if BR2_powerpc64
+ default y if BR2_powerpc64le
+ default y if BR2_RISCV_64
+ default y if BR2_sh
+ default y if BR2_x86_64
+ depends on !BR2_powerpc_SPE # not supported, build breaks
+ depends on !(BR2_powerpc64 || BR2_powerpc64le) || BR2_POWERPC_CPU_HAS_ALTIVEC
+ # sh2 nommu is supported by musl, but we don't have support
+ # for it in Buildroot.
+ depends on BR2_USE_MMU
+
+config BR2_PACKAGE_MUSL_SUPPORTS
+ bool
+ default y if BR2_PACKAGE_MUSL_ARCH_SUPPORTS
+
config BR2_PACKAGE_MUSL
bool
default y
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 7ce2998cf7..0dac816a4d 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -61,15 +61,7 @@ comment "glibc on MIPS w/ NAN2008 needs a toolchain w/ headers >= 4.5"
config BR2_TOOLCHAIN_BUILDROOT_MUSL
bool "musl"
- depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \
- BR2_microblaze || BR2_mips || BR2_mipsel || BR2_mips64 || \
- BR2_mips64el || BR2_or1k || BR2_powerpc || BR2_powerpc64 || \
- BR2_powerpc64le || BR2_RISCV_64 || BR2_sh || BR2_x86_64
- depends on !BR2_powerpc_SPE # not supported, build breaks
- depends on !(BR2_powerpc64 || BR2_powerpc64le) || BR2_POWERPC_CPU_HAS_ALTIVEC
- # sh2 nommu is supported by musl, but we don't have support
- # for it in Buildroot.
- depends on BR2_USE_MMU
+ depends on BR2_PACKAGE_MUSL_SUPPORTS
select BR2_TOOLCHAIN_USES_MUSL
help
This option selects musl as the C library for the
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 4/7] Config.in: only allow BR2_STATIC_LIBS on supported libc/arch
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
` (2 preceding siblings ...)
2022-06-05 19:42 ` [Buildroot] [PATCH 3/7] package/musl: introduce and use BR2_PACKAGE_MUSL_ARCH_SUPPORTS and BR2_PACKAGE_MUSL_SUPPORTS Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le Thomas Petazzoni via buildroot
` (4 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Romain Naour, Giulio Benetti, Thomas De Schampheleire, Thomas Petazzoni
From: James Hilliard <james.hilliard1@gmail.com>
It is currently possible to select BR2_STATIC_LIBS while
BR2_TOOLCHAIN_BUILDROOT is selected even when there are no buildroot
toolchains that support BR2_STATIC_LIBS for the selected architecture.
Add BR2_TOOLCHAIN_BUILDROOT_STATIC_LIBS_SUPPORTS so that we can
disable the selection of BR2_STATIC_LIBS when using an unsupported
architecture.
Fixes:
- http://autobuild.buildroot.net/results/4da59af8193376ec893321c4c2aaf1d25598502d
- http://autobuild.buildroot.net/results/1950348218a4f097f078d158977c13f8b0a97d6e
- http://autobuild.buildroot.net/results/2f03f2be32ad9898a990f6f0264d8c8d51991eb1
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
Config.in | 2 ++
toolchain/toolchain-buildroot/Config.in | 5 +++++
2 files changed, 7 insertions(+)
diff --git a/Config.in b/Config.in
index f0cd6f48ed..52c3c4b4c8 100644
--- a/Config.in
+++ b/Config.in
@@ -601,6 +601,8 @@ choice
config BR2_STATIC_LIBS
bool "static only"
+ depends on !BR2_TOOLCHAIN_BUILDROOT || \
+ BR2_TOOLCHAIN_BUILDROOT_STATIC_LIBS_SUPPORTS
help
Build and use only static libraries. No shared libraries will
be installed on the target. This potentially increases your
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 0dac816a4d..11566c27ff 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -20,6 +20,11 @@ config BR2_TOOLCHAIN_BUILDROOT_VENDOR
If you're not sure, just leave the default "buildroot" value.
+config BR2_TOOLCHAIN_BUILDROOT_STATIC_LIBS_SUPPORTS
+ bool
+ default y if BR2_PACKAGE_UCLIBC_SUPPORTS
+ default y if BR2_PACKAGE_MUSL_SUPPORTS
+
choice
prompt "C library"
default BR2_TOOLCHAIN_BUILDROOT_UCLIBC
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
` (3 preceding siblings ...)
2022-06-05 19:42 ` [Buildroot] [PATCH 4/7] Config.in: only allow BR2_STATIC_LIBS on supported libc/arch Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-06 9:45 ` Romain Naour
2022-06-05 19:42 ` [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains Thomas Petazzoni via buildroot
` (3 subsequent siblings)
8 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Cyril Bur, Thomas Petazzoni
Following commit
e59b3acc3603e55fbaec25406258ec9ca9623564 ("toolchain/glibc: Restrict
ppc64le support to power8"), when selecting ppc64le as the
architecture, it is possible to end up with a selection for which no C
library is provided.
Indeed:
- glibc only supports Power8
- uclibc has no support for ppc64le at all
- musl only supports ppc64le processors that have Altivec support
Therefore, this commit adds "depends on !BR2_powerpc64le" to those
PowerPC architecture variants for which no C library support exists.
Fixes:
http://autobuild.buildroot.net/results/3f6fb1c2d5648e78f7856bdea3171b5a89dfa2f9/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
arch/Config.in.powerpc | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index 272f66f4e7..c48edd3bb4 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -14,6 +14,8 @@ choice
Specific CPU variant to use
config BR2_generic_powerpc
bool "generic"
+ # No C library supports this variant on ppc64le
+ depends on !BR2_powerpc64le
config BR2_powerpc_401
bool "401"
depends on !BR2_ARCH_IS_64
@@ -64,8 +66,12 @@ config BR2_powerpc_604e
depends on !BR2_ARCH_IS_64
config BR2_powerpc_620
bool "620"
+ # No C library supports this variant on ppc64le
+ depends on !BR2_powerpc64le
config BR2_powerpc_630
bool "630"
+ # No C library supports this variant on ppc64le
+ depends on !BR2_powerpc64le
config BR2_powerpc_740
bool "740"
depends on !BR2_ARCH_IS_64
@@ -118,8 +124,12 @@ config BR2_powerpc_e6500
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_power4
bool "power4"
+ # No C library supports this variant on ppc64le
+ depends on !BR2_powerpc64le
config BR2_powerpc_power5
bool "power5"
+ # No C library supports this variant on ppc64le
+ depends on !BR2_powerpc64le
config BR2_powerpc_power6
bool "power6"
select BR2_POWERPC_CPU_HAS_ALTIVEC
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
` (4 preceding siblings ...)
2022-06-05 19:42 ` [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-05 20:24 ` Yann E. MORIN
2022-06-05 19:42 ` [Buildroot] [PATCH 7/7] toolchain/toolchain-external/toolchain-external-bootlin: regenerate with correct !BR2_STATIC_LIBS handling Thomas Petazzoni via buildroot
` (2 subsequent siblings)
8 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Thomas Petazzoni
The Config.in options created for each toolchain were properly taking
into account the !BR2_STATIC_LIBS dependency of glibc
toolchains. However, this dependency was not taken into account into
the main BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
option. Consequently, if an architecture is only supported by glibc,
but BR2_STATIC_LIBS is enabled, the main "Bootlin toolchain" option
was visible... but with no selectable toolchain.
We fix this by making sure that
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS is only true for all
architectures supported, taking into account the fact that some
architectures can only be supported if !BR2_STATIC_LIBS, when the only
available C library is glibc.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
support/scripts/gen-bootlin-toolchains | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/support/scripts/gen-bootlin-toolchains b/support/scripts/gen-bootlin-toolchains
index f9dd9da9a8..97a744340a 100755
--- a/support/scripts/gen-bootlin-toolchains
+++ b/support/scripts/gen-bootlin-toolchains
@@ -482,7 +482,10 @@ def gen_config_in_options(toolchains, fpath):
f.write("config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS\n")
f.write("\tbool\n")
for arch, details in arches.items():
- f.write("\tdefault y if %s\n" % " && ".join(details['conditions']))
+ conditions = details['conditions'].copy()
+ if set([t.libc for t in toolchains if t.arch == arch]) == set(['glibc']):
+ conditions.append("!BR2_STATIC_LIBS")
+ f.write("\tdefault y if %s\n" % " && ".join(conditions))
f.write("\n")
f.write("if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN\n\n")
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH 7/7] toolchain/toolchain-external/toolchain-external-bootlin: regenerate with correct !BR2_STATIC_LIBS handling
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
` (5 preceding siblings ...)
2022-06-05 19:42 ` [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains Thomas Petazzoni via buildroot
@ 2022-06-05 19:42 ` Thomas Petazzoni via buildroot
2022-06-06 10:24 ` [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Yann E. MORIN
2022-06-06 13:17 ` Yann E. MORIN
8 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 19:42 UTC (permalink / raw)
To: Buildroot List, Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Romain Naour, Giulio Benetti, Thomas De Schampheleire, Thomas Petazzoni
This commit is simply the result of regenerating the
toolchain-external-bootlin package after gen-bootlin-toolchains was
changed in commit "support/scripts/gen-bootlin-toolchains: properly
take into account !BR2_STATIC_LIBS for glibc toolchains".
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
.../toolchain-external-bootlin/Config.in.options | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options b/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options
index 53034c4f5e..06a9ddf2d2 100644
--- a/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options
+++ b/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options
@@ -22,21 +22,21 @@ config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
default y if BR2_mips64 && BR2_mips_64 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT
default y if BR2_mips64el && BR2_mips_64 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT
default y if BR2_mips64el && BR2_mips_64r6 && BR2_MIPS_NABI32 && !BR2_MIPS_SOFT_FLOAT
- default y if BR2_nios2
+ default y if BR2_nios2 && !BR2_STATIC_LIBS
default y if BR2_or1k
default y if BR2_powerpc && BR2_powerpc_440fp
default y if BR2_powerpc && BR2_powerpc_e300c3
default y if BR2_powerpc && BR2_powerpc_e500mc
- default y if BR2_powerpc64 && BR2_powerpc_e5500
+ default y if BR2_powerpc64 && BR2_powerpc_e5500 && !BR2_STATIC_LIBS
default y if BR2_powerpc64 && BR2_powerpc_e6500
default y if BR2_powerpc64 && BR2_powerpc_power8
default y if BR2_powerpc64le && BR2_powerpc_power8
- default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_32 && BR2_RISCV_ABI_ILP32D
+ default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_32 && BR2_RISCV_ABI_ILP32D && !BR2_STATIC_LIBS
default y if BR2_riscv && BR2_riscv_g && BR2_RISCV_64 && BR2_RISCV_ABI_LP64D
- default y if BR2_s390x && BR2_s390x_z13
+ default y if BR2_s390x && BR2_s390x_z13 && !BR2_STATIC_LIBS
default y if BR2_sh && BR2_sh4
default y if BR2_sh && BR2_sh4aeb
- default y if BR2_sparc64 && BR2_sparc_v9
+ default y if BR2_sparc64 && BR2_sparc_v9 && !BR2_STATIC_LIBS
default y if BR2_sparc && BR2_sparc_v8
default y if BR2_x86_64 && BR2_X86_CPU_HAS_MMX && BR2_X86_CPU_HAS_SSE && BR2_X86_CPU_HAS_SSE2
default y if BR2_x86_64 && BR2_X86_CPU_HAS_MMX && BR2_X86_CPU_HAS_SSE && BR2_X86_CPU_HAS_SSE2 && BR2_X86_CPU_HAS_SSE3 && BR2_X86_CPU_HAS_SSSE3 && BR2_X86_CPU_HAS_SSE4 && BR2_X86_CPU_HAS_SSE42
--
2.35.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains
2022-06-05 19:42 ` [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains Thomas Petazzoni via buildroot
@ 2022-06-05 20:24 ` Yann E. MORIN
2022-06-05 20:28 ` Yann E. MORIN
2022-06-05 21:56 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 16+ messages in thread
From: Yann E. MORIN @ 2022-06-05 20:24 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: James Hilliard, Buildroot List
Thomas, All,
On 2022-06-05 21:42 +0200, Thomas Petazzoni spake thusly:
> The Config.in options created for each toolchain were properly taking
> into account the !BR2_STATIC_LIBS dependency of glibc
> toolchains. However, this dependency was not taken into account into
> the main BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
> option. Consequently, if an architecture is only supported by glibc,
> but BR2_STATIC_LIBS is enabled, the main "Bootlin toolchain" option
> was visible... but with no selectable toolchain.
>
> We fix this by making sure that
> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS is only true for all
> architectures supported, taking into account the fact that some
> architectures can only be supported if !BR2_STATIC_LIBS, when the only
> available C library is glibc.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> support/scripts/gen-bootlin-toolchains | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/support/scripts/gen-bootlin-toolchains b/support/scripts/gen-bootlin-toolchains
> index f9dd9da9a8..97a744340a 100755
> --- a/support/scripts/gen-bootlin-toolchains
> +++ b/support/scripts/gen-bootlin-toolchains
> @@ -482,7 +482,10 @@ def gen_config_in_options(toolchains, fpath):
> f.write("config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS\n")
> f.write("\tbool\n")
> for arch, details in arches.items():
> - f.write("\tdefault y if %s\n" % " && ".join(details['conditions']))
> + conditions = details['conditions'].copy()
> + if set([t.libc for t in toolchains if t.arch == arch]) == set(['glibc']):
What about:
if 'glibc' in [t.libc for t in toolchains if t.arch == arch]
Regards,
Yann E. MORIN.
> + conditions.append("!BR2_STATIC_LIBS")
> + f.write("\tdefault y if %s\n" % " && ".join(conditions))
> f.write("\n")
>
> f.write("if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN\n\n")
> --
> 2.35.3
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains
2022-06-05 20:24 ` Yann E. MORIN
@ 2022-06-05 20:28 ` Yann E. MORIN
2022-06-05 21:57 ` Thomas Petazzoni via buildroot
2022-06-05 21:56 ` Thomas Petazzoni via buildroot
1 sibling, 1 reply; 16+ messages in thread
From: Yann E. MORIN @ 2022-06-05 20:28 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: James Hilliard, Buildroot List
Thomas, All,
On 2022-06-05 22:24 +0200, Yann E. MORIN spake thusly:
> On 2022-06-05 21:42 +0200, Thomas Petazzoni spake thusly:
> > The Config.in options created for each toolchain were properly taking
> > into account the !BR2_STATIC_LIBS dependency of glibc
> > toolchains. However, this dependency was not taken into account into
> > the main BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS
> > option. Consequently, if an architecture is only supported by glibc,
> > but BR2_STATIC_LIBS is enabled, the main "Bootlin toolchain" option
> > was visible... but with no selectable toolchain.
> >
> > We fix this by making sure that
> > BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS is only true for all
> > architectures supported, taking into account the fact that some
> > architectures can only be supported if !BR2_STATIC_LIBS, when the only
> > available C library is glibc.
> >
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
> > support/scripts/gen-bootlin-toolchains | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/support/scripts/gen-bootlin-toolchains b/support/scripts/gen-bootlin-toolchains
> > index f9dd9da9a8..97a744340a 100755
> > --- a/support/scripts/gen-bootlin-toolchains
> > +++ b/support/scripts/gen-bootlin-toolchains
> > @@ -482,7 +482,10 @@ def gen_config_in_options(toolchains, fpath):
> > f.write("config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS\n")
> > f.write("\tbool\n")
> > for arch, details in arches.items():
> > - f.write("\tdefault y if %s\n" % " && ".join(details['conditions']))
> > + conditions = details['conditions'].copy()
> > + if set([t.libc for t in toolchains if t.arch == arch]) == set(['glibc']):
>
> What about:
> if 'glibc' in [t.libc for t in toolchains if t.arch == arch]
Nah, that does not test that there is *only* glibc; forget it...
Regards,
Yann E. MORIN.
>
> > + conditions.append("!BR2_STATIC_LIBS")
> > + f.write("\tdefault y if %s\n" % " && ".join(conditions))
> > f.write("\n")
> >
> > f.write("if BR2_TOOLCHAIN_EXTERNAL_BOOTLIN\n\n")
> > --
> > 2.35.3
> >
>
> --
> .-----------------.--------------------.------------------.--------------------.
> | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
> | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains
2022-06-05 20:24 ` Yann E. MORIN
2022-06-05 20:28 ` Yann E. MORIN
@ 2022-06-05 21:56 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 21:56 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: James Hilliard, Buildroot List
On Sun, 5 Jun 2022 22:24:11 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> > for arch, details in arches.items():
> > - f.write("\tdefault y if %s\n" % " && ".join(details['conditions']))
> > + conditions = details['conditions'].copy()
> > + if set([t.libc for t in toolchains if t.arch == arch]) == set(['glibc']):
>
> What about:
>
> if 'glibc' in [t.libc for t in toolchains if t.arch == arch]
No, that would not work. We want to match if *only* glibc is available
as a C library, not if glibc is one of the supported C libraries.
If [t.libc for t in toolchains if t.arch == arch] contains glibc and
uclibc, we should *not* add the !BR2_STATIC_LIBS dependency, because
uclibc can be used in the BR2_STATIC_LIBS=y scenario.
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains
2022-06-05 20:28 ` Yann E. MORIN
@ 2022-06-05 21:57 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-06-05 21:57 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: James Hilliard, Buildroot List
On Sun, 5 Jun 2022 22:28:03 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> > What about:
> > if 'glibc' in [t.libc for t in toolchains if t.arch == arch]
>
> Nah, that does not test that there is *only* glibc; forget it...
Ah sorry, you realized separately. I had already replied to your
previous reply :-)
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le
2022-06-05 19:42 ` [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le Thomas Petazzoni via buildroot
@ 2022-06-06 9:45 ` Romain Naour
2022-06-07 2:41 ` Joel Stanley
0 siblings, 1 reply; 16+ messages in thread
From: Romain Naour @ 2022-06-06 9:45 UTC (permalink / raw)
To: Thomas Petazzoni, Buildroot List,
Arnout Vandecappelle (Essensium/Mind),
James Hilliard, Yann E. MORIN
Cc: Cyril Bur
Hello Thomas,
Le 05/06/2022 à 21:42, Thomas Petazzoni via buildroot a écrit :
> Following commit
> e59b3acc3603e55fbaec25406258ec9ca9623564 ("toolchain/glibc: Restrict
> ppc64le support to power8"), when selecting ppc64le as the
> architecture, it is possible to end up with a selection for which no C
> library is provided.
>
> Indeed:
>
> - glibc only supports Power8
> - uclibc has no support for ppc64le at all
> - musl only supports ppc64le processors that have Altivec support
>
> Therefore, this commit adds "depends on !BR2_powerpc64le" to those
> PowerPC architecture variants for which no C library support exists.
>
> Fixes:
>
> http://autobuild.buildroot.net/results/3f6fb1c2d5648e78f7856bdea3171b5a89dfa2f9/
Not related to this patch but it seems that uClibc-ng only support powerpc
(BR2_powerpc) without ALTIVEC support (!BR2_POWERPC_CPU_HAS_ALTIVEC).
As soon as BR2_POWERPC_CPU_HAS_ALTIVEC is set, the uclibc-ng build due a
conflicting types for 'elf_vrreg_t':
http://autobuild.buildroot.net/results/084/084bd1df5cf10c81646d6edf01f5347a35fc9e6b/build-end.log
This was not noticed by Toolchain-builder project since it only build powerpc
configuration without altivec support (e300c3, 440fp, e500mc).
https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/fragments/powerpc-e300c3--uclibc--bleeding-edge-2020.08-1.frag
Surprisingly, it also fail with power4 and power5 where
BR2_POWERPC_CPU_HAS_ALTIVEC is not set but with the same error.
It seems broken since always, we should restrict uClibc-ng to all know working
configuration.
Best regards,
Romain
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> arch/Config.in.powerpc | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 272f66f4e7..c48edd3bb4 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -14,6 +14,8 @@ choice
> Specific CPU variant to use
> config BR2_generic_powerpc
> bool "generic"
> + # No C library supports this variant on ppc64le
> + depends on !BR2_powerpc64le
> config BR2_powerpc_401
> bool "401"
> depends on !BR2_ARCH_IS_64
> @@ -64,8 +66,12 @@ config BR2_powerpc_604e
> depends on !BR2_ARCH_IS_64
> config BR2_powerpc_620
> bool "620"
> + # No C library supports this variant on ppc64le
> + depends on !BR2_powerpc64le
> config BR2_powerpc_630
> bool "630"
> + # No C library supports this variant on ppc64le
> + depends on !BR2_powerpc64le
> config BR2_powerpc_740
> bool "740"
> depends on !BR2_ARCH_IS_64
> @@ -118,8 +124,12 @@ config BR2_powerpc_e6500
> select BR2_POWERPC_CPU_HAS_ALTIVEC
> config BR2_powerpc_power4
> bool "power4"
> + # No C library supports this variant on ppc64le
> + depends on !BR2_powerpc64le
> config BR2_powerpc_power5
> bool "power5"
> + # No C library supports this variant on ppc64le
> + depends on !BR2_powerpc64le
> config BR2_powerpc_power6
> bool "power6"
> select BR2_POWERPC_CPU_HAS_ALTIVEC
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
` (6 preceding siblings ...)
2022-06-05 19:42 ` [Buildroot] [PATCH 7/7] toolchain/toolchain-external/toolchain-external-bootlin: regenerate with correct !BR2_STATIC_LIBS handling Thomas Petazzoni via buildroot
@ 2022-06-06 10:24 ` Yann E. MORIN
2022-06-06 13:17 ` Yann E. MORIN
8 siblings, 0 replies; 16+ messages in thread
From: Yann E. MORIN @ 2022-06-06 10:24 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: James Hilliard, Buildroot List
James, Thomas, All,
On 2022-06-05 21:42 +0200, Thomas Petazzoni spake thusly:
> The starting point for this series is the investigation of several
> build failures affecting the master branch.
>
> Most of those failures are due to the fact that we can currently
> create configurations for which no C library is available. This
> happens on architectures where glibc is the only supported C library,
> but BR2_STATIC_LIBS is enabled.
>
> This is taken care of by the first four patches, which are basically
> split from a single patch posted by James Hilliard.
>
> Then, another problem is that a recent commit allowed glibc only for
> powerpc8 on the ppc64le architecture, leaving a number of other
> PowerPC variants selectable with ppc64le, but for which no C library
> was available.
>
> Finally, the toolchain-external-booltin package had a similar problem
> to the glibc/BR2_STATIC_LIBS issue: the package would be visible even
> if BR2_STATIC_LIBS=y and the selected CPU architecture is only
> supported by glibc.
>
> Thomas
>
> James Hilliard (4):
> package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and
> BR2_PACKAGE_UCLIBC_SUPPORTS
> package/glibc: introduce and use BR2_PACKAGE_GLIBC_ARCH_SUPPORTS and
> BR2_PACKAGE_GLIBC_SUPPORTS
> package/musl: introduce and use BR2_PACKAGE_MUSL_ARCH_SUPPORTS and
> BR2_PACKAGE_MUSL_SUPPORTS
Those three patches, applied to master, thanks.
I've however re-ordered them so that glibc comes first, which is then
used as an argument for keeping the same construct in uClibc-ng (so I
tweaked the commit message slightly), and to make the same argument in
musl as well (where I duplicated the commit log from uClibc-ng).
Regards,
Yann E. MORIN.
> Config.in: only allow BR2_STATIC_LIBS on supported libc/arch
>
> Thomas Petazzoni (3):
> arch/Config.in.powerpc: disable some variants on ppc64le
> support/scripts/gen-bootlin-toolchains: properly take into account
> !BR2_STATIC_LIBS for glibc toolchains
> toolchain/toolchain-external/toolchain-external-bootlin: regenerate
> with correct !BR2_STATIC_LIBS handling
>
> Config.in | 2 +
> arch/Config.in.powerpc | 10 +++++
> package/glibc/Config.in | 38 ++++++++++++++++
> package/musl/Config.in | 28 ++++++++++++
> package/uclibc/Config.in | 28 ++++++++++++
> support/scripts/gen-bootlin-toolchains | 5 ++-
> toolchain/toolchain-buildroot/Config.in | 43 ++++---------------
> .../Config.in.options | 10 ++---
> 8 files changed, 124 insertions(+), 40 deletions(-)
>
> --
> 2.35.3
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
` (7 preceding siblings ...)
2022-06-06 10:24 ` [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Yann E. MORIN
@ 2022-06-06 13:17 ` Yann E. MORIN
8 siblings, 0 replies; 16+ messages in thread
From: Yann E. MORIN @ 2022-06-06 13:17 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: James Hilliard, Buildroot List
James, Thomas, All,
On 2022-06-05 21:42 +0200, Thomas Petazzoni via buildroot spake thusly:
> The starting point for this series is the investigation of several
> build failures affecting the master branch.
>
> Most of those failures are due to the fact that we can currently
> create configurations for which no C library is available. This
> happens on architectures where glibc is the only supported C library,
> but BR2_STATIC_LIBS is enabled.
[--SNIP--]
> James Hilliard (4):
> Config.in: only allow BR2_STATIC_LIBS on supported libc/arch
As noticed by Arnout: Thomas, you dropped James' SoB in this patch (I
guess as part of splitting it into four patches), so I re-added it as it
was in the original v3:
https://lore.kernel.org/buildroot/20220516210756.3093190-1-james.hilliard1@gmail.com/
> Thomas Petazzoni (3):
> arch/Config.in.powerpc: disable some variants on ppc64le
> support/scripts/gen-bootlin-toolchains: properly take into account
> !BR2_STATIC_LIBS for glibc toolchains
> toolchain/toolchain-external/toolchain-external-bootlin: regenerate
> with correct !BR2_STATIC_LIBS handling
.. and with the rest of the series, and the blessing from Arnout on IRC:
applied to master, thanks.
Regards,
Yann E. MORIN.
> Config.in | 2 +
> arch/Config.in.powerpc | 10 +++++
> package/glibc/Config.in | 38 ++++++++++++++++
> package/musl/Config.in | 28 ++++++++++++
> package/uclibc/Config.in | 28 ++++++++++++
> support/scripts/gen-bootlin-toolchains | 5 ++-
> toolchain/toolchain-buildroot/Config.in | 43 ++++---------------
> .../Config.in.options | 10 ++---
> 8 files changed, 124 insertions(+), 40 deletions(-)
>
> --
> 2.35.3
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le
2022-06-06 9:45 ` Romain Naour
@ 2022-06-07 2:41 ` Joel Stanley
0 siblings, 0 replies; 16+ messages in thread
From: Joel Stanley @ 2022-06-07 2:41 UTC (permalink / raw)
To: Romain Naour, Thomas Petazzoni, Michael Ellerman
Cc: Cyril Bur, James Hilliard, Yann E. MORIN, Buildroot List
On Mon, 6 Jun 2022 at 09:46, Romain Naour <romain.naour@gmail.com> wrote:
>
> Hello Thomas,
>
> Le 05/06/2022 à 21:42, Thomas Petazzoni via buildroot a écrit :
> > Following commit
> > e59b3acc3603e55fbaec25406258ec9ca9623564 ("toolchain/glibc: Restrict
> > ppc64le support to power8"), when selecting ppc64le as the
> > architecture, it is possible to end up with a selection for which no C
> > library is provided.
> >
> > Indeed:
> >
> > - glibc only supports Power8
> > - uclibc has no support for ppc64le at all
> > - musl only supports ppc64le processors that have Altivec support
> >
> > Therefore, this commit adds "depends on !BR2_powerpc64le" to those
> > PowerPC architecture variants for which no C library support exists.
> >
> > Fixes:
> >
> > http://autobuild.buildroot.net/results/3f6fb1c2d5648e78f7856bdea3171b5a89dfa2f9/
>
> Not related to this patch but it seems that uClibc-ng only support powerpc
> (BR2_powerpc) without ALTIVEC support (!BR2_POWERPC_CPU_HAS_ALTIVEC).
>
> As soon as BR2_POWERPC_CPU_HAS_ALTIVEC is set, the uclibc-ng build due a
> conflicting types for 'elf_vrreg_t':
>
> http://autobuild.buildroot.net/results/084/084bd1df5cf10c81646d6edf01f5347a35fc9e6b/build-end.log
>
> This was not noticed by Toolchain-builder project since it only build powerpc
> configuration without altivec support (e300c3, 440fp, e500mc).
>
> https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e300c3/fragments/powerpc-e300c3--uclibc--bleeding-edge-2020.08-1.frag
>
> Surprisingly, it also fail with power4 and power5 where
> BR2_POWERPC_CPU_HAS_ALTIVEC is not set but with the same error.
These are 64 bit machines, and uclibc doesn't support ppc64 big or
little endian.
>
> It seems broken since always, we should restrict uClibc-ng to all know working
> configuration.
We should disable 32 bit userspace for the 64bit CPUs. While they can
run a 32 bit userspace with an appropriate kernel, it doesn't make
sense to expose that option.
The options are:
- 32 bit big endian
- 32 bit little endian
- 64 bit big endian (power4 onwards, and other non-IBM CPUs)
- 64 bit little endian (power8 onwards, and other non-IBM CPUs)
Power8 and onwards can run big endian, but it's not common. RHEL,
SuSe, Ubuntu build little endian only.
I have had a few goes at writing some kconfig to express this, but I
didn't get something that was worth posting. Thomas' patch has gone in
the tree, and this improves the situation a little, but there's still
the case of being able to select 32 bit for the 64 bit CPUs.
We could add "depends on BR2_ARCH_IS_64" to the 64 bit CPUs?
>
> Best regards,
> Romain
>
>
> >
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
> > arch/Config.in.powerpc | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> > index 272f66f4e7..c48edd3bb4 100644
> > --- a/arch/Config.in.powerpc
> > +++ b/arch/Config.in.powerpc
> > @@ -14,6 +14,8 @@ choice
> > Specific CPU variant to use
> > config BR2_generic_powerpc
> > bool "generic"
> > + # No C library supports this variant on ppc64le
> > + depends on !BR2_powerpc64le
> > config BR2_powerpc_401
> > bool "401"
> > depends on !BR2_ARCH_IS_64
> > @@ -64,8 +66,12 @@ config BR2_powerpc_604e
> > depends on !BR2_ARCH_IS_64
> > config BR2_powerpc_620
> > bool "620"
> > + # No C library supports this variant on ppc64le
> > + depends on !BR2_powerpc64le
> > config BR2_powerpc_630
> > bool "630"
> > + # No C library supports this variant on ppc64le
> > + depends on !BR2_powerpc64le
> > config BR2_powerpc_740
> > bool "740"
> > depends on !BR2_ARCH_IS_64
> > @@ -118,8 +124,12 @@ config BR2_powerpc_e6500
> > select BR2_POWERPC_CPU_HAS_ALTIVEC
> > config BR2_powerpc_power4
> > bool "power4"
> > + # No C library supports this variant on ppc64le
> > + depends on !BR2_powerpc64le
> > config BR2_powerpc_power5
> > bool "power5"
> > + # No C library supports this variant on ppc64le
> > + depends on !BR2_powerpc64le
> > config BR2_powerpc_power6
> > bool "power6"
> > select BR2_POWERPC_CPU_HAS_ALTIVEC
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2022-06-07 2:41 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-05 19:42 [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 1/7] package/uclibc: introduce and use BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS and BR2_PACKAGE_UCLIBC_SUPPORTS Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 2/7] package/glibc: introduce and use BR2_PACKAGE_GLIBC_ARCH_SUPPORTS and BR2_PACKAGE_GLIBC_SUPPORTS Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 3/7] package/musl: introduce and use BR2_PACKAGE_MUSL_ARCH_SUPPORTS and BR2_PACKAGE_MUSL_SUPPORTS Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 4/7] Config.in: only allow BR2_STATIC_LIBS on supported libc/arch Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 5/7] arch/Config.in.powerpc: disable some variants on ppc64le Thomas Petazzoni via buildroot
2022-06-06 9:45 ` Romain Naour
2022-06-07 2:41 ` Joel Stanley
2022-06-05 19:42 ` [Buildroot] [PATCH 6/7] support/scripts/gen-bootlin-toolchains: properly take into account !BR2_STATIC_LIBS for glibc toolchains Thomas Petazzoni via buildroot
2022-06-05 20:24 ` Yann E. MORIN
2022-06-05 20:28 ` Yann E. MORIN
2022-06-05 21:57 ` Thomas Petazzoni via buildroot
2022-06-05 21:56 ` Thomas Petazzoni via buildroot
2022-06-05 19:42 ` [Buildroot] [PATCH 7/7] toolchain/toolchain-external/toolchain-external-bootlin: regenerate with correct !BR2_STATIC_LIBS handling Thomas Petazzoni via buildroot
2022-06-06 10:24 ` [Buildroot] [PATCH 0/7] Fix a number of toolchain dependency issues Yann E. MORIN
2022-06-06 13:17 ` Yann E. MORIN
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.