From e149e28e57de91cad96033047872d84e6938ea23 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Thu, 6 Dec 2018 23:19:13 -0800 Subject: Disable -fstack-protector* from being used by glibc ... until it was fixed (to some extent) in 2.25. Signed-off-by: Alexey Neyman diff --git a/config/libc/glibc.in b/config/libc/glibc.in index 527063f..6598c31 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -42,6 +42,10 @@ config GLIBC_DEP_GCC config THREADS default "nptl" +config GLIBC_BUILD_SSP + def_bool y + depends on GLIBC_2_25_or_later + # Known add-ons and when they exist(ed) # crypt external in 2.1, no longer an add-on since 2.2 # libidn external in 2.3.4 .. 2.10, still an add-on @@ -320,7 +324,7 @@ config GLIBC_MIN_KERNEL default LINUX_VERSION if GLIBC_KERNEL_VERSION_AS_HEADERS default GLIBC_MIN_KERNEL_VERSION if GLIBC_KERNEL_VERSION_CHOSEN - +if GLIBC_BUILD_SSP choice bool "Stack-smashing protection (SSP) in glibc" default GLIBC_SSP_DEFAULT @@ -371,4 +375,6 @@ config GLIBC_ENABLE_WERROR of the compiler than there were available at the time of a glibc release (because newer compilers typically have better diagnostics). +endif + endif # KERNEL_LINUX diff --git a/packages/glibc/package.desc b/packages/glibc/package.desc index ea03e69..0d256c9 100644 --- a/packages/glibc/package.desc +++ b/packages/glibc/package.desc @@ -1,6 +1,6 @@ origin='GNU' repository='git git://sourceware.org/git/glibc.git' mirrors='$(CT_Mirrors GNU glibc)' -milestones='2.14 2.17 2.20 2.23 2.24 2.26 2.27' +milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27' archive_formats='.tar.xz .tar.bz2 .tar.gz' signature_format='packed/.sig' diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 4d44fea..312c88f 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -185,6 +185,14 @@ glibc_backend_once() # Hide host C++ binary from configure echo "ac_cv_prog_ac_ct_CXX=${CT_TARGET}-g++" >>config.cache + # Until it became explicitly controllable with --enable-stack-protector=..., + # configure detected GCC support for -fstack-protector{,-strong} and + # tried to enable it in some parts of glibc - which then failed to build. + if [ -z "${CT_GLIBC_BUILD_SSP}" ]; then + echo "libc_cv_ssp=no" >>config.cache + echo "libc_cv_ssp_strong=no" >>config.cache + fi + if [ "${CT_GLIBC_FORCE_UNWIND}" = "y" ]; then echo "libc_cv_forced_unwind=yes" >>config.cache echo "libc_cv_c_cleanup=yes" >>config.cache -- cgit v0.10.2-6-g49f6