Message ID | 20220726131249.2009383-2-thomas.petazzoni@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | Add support for configurable page size on ARM64 | expand |
>>>>> "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 --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
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(+)