diff mbox series

package/gcc: glibc >= 2.27 needs gcc >= 5 on aarch64

Message ID 20180915155413.17663-1-romain.naour@gmail.com
State Accepted
Headers show
Series package/gcc: glibc >= 2.27 needs gcc >= 5 on aarch64 | expand

Commit Message

Romain Naour Sept. 15, 2018, 3:54 p.m. UTC
With the following defconfig:
BR2_aarch64=y
BR2_BINUTILS_VERSION_2_28_X=y
BR2_GCC_VERSION_4_9_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y

The build fail with this error:
In file included from ../sysdeps/ieee754/flt-32/math_config.h:23:0,
                 from ../sysdeps/ieee754/flt-32/e_expf.c:29:
../sysdeps/aarch64/fpu/math_private.h: In function 'roundtoint':
../sysdeps/aarch64/fpu/math_private.h:311:3: error: implicit declaration of function 'vrndn_f64' [-Werror=implicit-function-declaration]
   return vget_lane_f64 (vrndn_f64 (vld1_f64 (&x)), 0);
   ^
cc1: all warnings being treated as errors

vrndn_f64 function has been introduced in glibc code since version 2.27 [1].
So we can't build a glibc based toolchain with gcc 4.9 anymore.

Add a new dependency in the toolchain infra to avoid selecting
glibc toolchain using gcc 4.9.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=72aa623345ada1276ed89dbc00fdff9639cb8eaf

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 package/gcc/Config.in.host | 2 ++
 1 file changed, 2 insertions(+)

Comments

Thomas Petazzoni Sept. 16, 2018, 7:27 p.m. UTC | #1
Hello,

On Sat, 15 Sep 2018 17:54:13 +0200, Romain Naour wrote:
> With the following defconfig:
> BR2_aarch64=y
> BR2_BINUTILS_VERSION_2_28_X=y
> BR2_GCC_VERSION_4_9_X=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> 
> The build fail with this error:
> In file included from ../sysdeps/ieee754/flt-32/math_config.h:23:0,
>                  from ../sysdeps/ieee754/flt-32/e_expf.c:29:
> ../sysdeps/aarch64/fpu/math_private.h: In function 'roundtoint':
> ../sysdeps/aarch64/fpu/math_private.h:311:3: error: implicit declaration of function 'vrndn_f64' [-Werror=implicit-function-declaration]
>    return vget_lane_f64 (vrndn_f64 (vld1_f64 (&x)), 0);
>    ^
> cc1: all warnings being treated as errors
> 
> vrndn_f64 function has been introduced in glibc code since version 2.27 [1].
> So we can't build a glibc based toolchain with gcc 4.9 anymore.
> 
> Add a new dependency in the toolchain infra to avoid selecting
> glibc toolchain using gcc 4.9.
> 
> [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=72aa623345ada1276ed89dbc00fdff9639cb8eaf
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> ---
>  package/gcc/Config.in.host | 2 ++
>  1 file changed, 2 insertions(+)

Applied to master, thanks.

Thomas
Peter Korsgaard Oct. 1, 2018, 9:51 p.m. UTC | #2
>>>>> "Romain" == Romain Naour <romain.naour@gmail.com> writes:

 > With the following defconfig:
 > BR2_aarch64=y
 > BR2_BINUTILS_VERSION_2_28_X=y
 > BR2_GCC_VERSION_4_9_X=y
 > BR2_TOOLCHAIN_BUILDROOT_CXX=y

 > The build fail with this error:
 > In file included from ../sysdeps/ieee754/flt-32/math_config.h:23:0,
 >                  from ../sysdeps/ieee754/flt-32/e_expf.c:29:
 > ../sysdeps/aarch64/fpu/math_private.h: In function 'roundtoint':
 > ../sysdeps/aarch64/fpu/math_private.h:311:3: error: implicit declaration of function 'vrndn_f64' [-Werror=implicit-function-declaration]
 >    return vget_lane_f64 (vrndn_f64 (vld1_f64 (&x)), 0);
 >    ^
 > cc1: all warnings being treated as errors

 > vrndn_f64 function has been introduced in glibc code since version 2.27 [1].
 > So we can't build a glibc based toolchain with gcc 4.9 anymore.

 > Add a new dependency in the toolchain infra to avoid selecting
 > glibc toolchain using gcc 4.9.

 > [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=72aa623345ada1276ed89dbc00fdff9639cb8eaf

 > Signed-off-by: Romain Naour <romain.naour@gmail.com>
 > Cc: Arnout Vandecappelle <arnout@mind.be>

Committed to 2018.05.x and 2018.08.x, thanks.
diff mbox series

Patch

diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 01bf8fa561..5a8f684a4c 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -32,6 +32,8 @@  config BR2_GCC_VERSION_4_9_X
 	depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_mips64 || BR2_mips64el))
 	# glibc >= 2.26 needs gcc >= 6.2
 	depends on !(BR2_TOOLCHAIN_USES_GLIBC && BR2_powerpc64le)
+	# glibc >= 2.27 needs gcc >= 5
+	depends on !(BR2_TOOLCHAIN_USES_GLIBC && (BR2_aarch64 || BR2_aarch64_be))
 	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
 
 config BR2_GCC_VERSION_5_X