diff mbox series

[1/2] package/uclibc: define BR2_UCLIBC_TARGET_ARCH for ARM64

Message ID 20220726131249.2009383-2-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series Add support for configurable page size on ARM64 | expand

Commit Message

Thomas Petazzoni July 26, 2022, 1:12 p.m. UTC
So far, BR2_UCLIBC_TARGET_ARCH had a value for all
architectures... except for ARM64. Its value is passed as ARCH= when
building uClibc... which is currently empty:

/usr/bin/make -j33 -C .../build/uclibc-1.0.41 ARCH="" CROSS_COMPILE=".../host/bin/aarch64-buildroot-linux-uclibc-"

And also in uclibc.mk, when we inject the architecture in uClibc's
.config:

        $(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH))
        $(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)")

We enable TARGET_ (which doesn't exist) and set TARGET_ARCH to the
empty string.

Nobody noticed so far, and it happens to work because aarch64 is the
first architecture in the choice of architectures in
extra/Configs/Config.in in the uClibc code. So, when the architecture
is not specified, aarch64 is used.

As we are about to add some logic in uclibc.mk that will use
BR2_UCLIBC_TARGET_ARCH, we noticed this missing definition.

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

Comments

Peter Korsgaard Aug. 18, 2022, 6:59 a.m. UTC | #1
>>>>> "Thomas" == Thomas Petazzoni via buildroot <buildroot@buildroot.org> writes:

 > So far, BR2_UCLIBC_TARGET_ARCH had a value for all
 > architectures... except for ARM64. Its value is passed as ARCH= when
 > building uClibc... which is currently empty:

 > /usr/bin/make -j33 -C .../build/uclibc-1.0.41 ARCH="" CROSS_COMPILE=".../host/bin/aarch64-buildroot-linux-uclibc-"

 > And also in uclibc.mk, when we inject the architecture in uClibc's
 > .config:

 >         $(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH))
 >         $(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)")

 > We enable TARGET_ (which doesn't exist) and set TARGET_ARCH to the
 > empty string.

 > Nobody noticed so far, and it happens to work because aarch64 is the
 > first architecture in the choice of architectures in
 > extra/Configs/Config.in in the uClibc code. So, when the architecture
 > is not specified, aarch64 is used.

 > As we are about to add some logic in uclibc.mk that will use
 > BR2_UCLIBC_TARGET_ARCH, we noticed this missing definition.

 > 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/uclibc/Config.in b/package/uclibc/Config.in
index 2eea4d30f3..873d2053c8 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -124,6 +124,7 @@  config BR2_UCLIBC_INSTALL_UTILS
 # uClibc architecture names.
 config BR2_UCLIBC_TARGET_ARCH
 	string
+	default "aarch64"	if BR2_aarch64 || BR2_aarch64_be
 	default "arc"	   if BR2_arcle || BR2_arceb
 	default "arm"	   if BR2_arm	|| BR2_armeb
 	default "m68k"	   if BR2_m68k