-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add patches to fix dwarf + duo[x]-static builds on new systems
Signed-off-by: falkTX <[email protected]>
- Loading branch information
Showing
3 changed files
with
268 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
161 changes: 161 additions & 0 deletions
161
...s/crosstool-ng-1.24.0/glibc-2.27/0001-Fix-build-with-GCC-10-when-long-double-double.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
From 49348beafe9ba150c9bd48595b3f372299bddbb0 Mon Sep 17 00:00:00 2001 | ||
From: Joseph Myers <[email protected]> | ||
Date: Tue, 17 Mar 2020 22:57:42 +0000 | ||
Subject: [PATCH] Fix build with GCC 10 when long double = double. | ||
|
||
On platforms where long double has the same ABI as double, glibc | ||
defines long double functions as aliases for the corresponding double | ||
functions. The declarations of those functions in <math.h> are | ||
disabled to avoid problems with aliases having incompatible types, but | ||
GCC 10 now gives errors for incompatible types when the long double | ||
function is known to GCC as a built-in function, not just when there | ||
is an incompatible header declaration. | ||
|
||
This patch fixes those errors by using appropriate | ||
-fno-builtin-<function> options to compile the double functions. The | ||
list of CFLAGS-* settings is an appropriately adapted version of that | ||
in sysdeps/ieee754/ldbl-opt/Makefile used there for building nldbl-*.c | ||
files; in particular, the options are used even if GCC does not | ||
currently have a built-in function of a given function, so that adding | ||
such a built-in function in future will not break the glibc build. | ||
Thus, various of the CFLAGS-* settings are only for future-proofing | ||
and may not currently be needed (and it's possible some could be | ||
irrelevant for other reasons). | ||
|
||
Tested with build-many-glibcs.py for arm-linux-gnueabi (compilers and | ||
glibcs builds), where it fixes the build that previously failed. | ||
--- | ||
math/Makefile | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | ||
1 file changed, 122 insertions(+) | ||
|
||
--- a/math/Makefile | ||
+++ b/math/Makefile | ||
@@ -568,6 +568,128 @@ | ||
# We won't compile the `long double' code at all. Tell the `double' code | ||
# to define aliases for the `FUNCl' names. | ||
math-CPPFLAGS += -DNO_LONG_DOUBLE | ||
+# GCC 10 diagnoses aliases with types conflicting with built-in | ||
+# functions. | ||
+CFLAGS-w_acos.c += -fno-builtin-acosl | ||
+CFLAGS-w_acosh.c += -fno-builtin-acoshl | ||
+CFLAGS-w_asin.c += -fno-builtin-asinl | ||
+CFLAGS-s_asinh.c += -fno-builtin-asinhl | ||
+CFLAGS-s_atan.c += -fno-builtin-atanl | ||
+CFLAGS-w_atan2.c += -fno-builtin-atan2l | ||
+CFLAGS-w_atanh.c += -fno-builtin-atanhl | ||
+CFLAGS-s_cabs.c += -fno-builtin-cabsl | ||
+CFLAGS-s_cacos.c += -fno-builtin-cacosl | ||
+CFLAGS-s_cacosh.c += -fno-builtin-cacoshl | ||
+CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizel | ||
+CFLAGS-s_carg.c += -fno-builtin-cargl | ||
+CFLAGS-s_casin.c += -fno-builtin-casinl | ||
+CFLAGS-s_casinh.c += -fno-builtin-casinhl | ||
+CFLAGS-s_catan.c += -fno-builtin-catanl | ||
+CFLAGS-s_catanh.c += -fno-builtin-catanhl | ||
+CFLAGS-s_cbrt.c += -fno-builtin-cbrtl | ||
+CFLAGS-s_ccos.c += -fno-builtin-ccosl | ||
+CFLAGS-s_ccosh.c += -fno-builtin-ccoshl | ||
+CFLAGS-s_ceil.c += -fno-builtin-ceill | ||
+CFLAGS-s_cexp.c += -fno-builtin-cexpl | ||
+CFLAGS-s_cimag.c += -fno-builtin-cimagl | ||
+CFLAGS-s_clog.c += -fno-builtin-clogl | ||
+CFLAGS-s_clog10.c += -fno-builtin-clog10l | ||
+CFLAGS-s_conj.c += -fno-builtin-conjl | ||
+CFLAGS-s_copysign.c += -fno-builtin-copysignl | ||
+CFLAGS-s_cos.c += -fno-builtin-cosl | ||
+CFLAGS-w_cosh.c += -fno-builtin-coshl | ||
+CFLAGS-s_cpow.c += -fno-builtin-cpowl | ||
+CFLAGS-s_cproj.c += -fno-builtin-cprojl | ||
+CFLAGS-s_creal.c += -fno-builtin-creall | ||
+CFLAGS-s_csin.c += -fno-builtin-csinl | ||
+CFLAGS-s_csinh.c += -fno-builtin-csinhl | ||
+CFLAGS-s_csqrt.c += -fno-builtin-csqrtl | ||
+CFLAGS-s_ctan.c += -fno-builtin-ctanl | ||
+CFLAGS-s_ctanh.c += -fno-builtin-ctanhl | ||
+CFLAGS-s_dadd.c += -fno-builtin-daddl | ||
+CFLAGS-s_ddiv.c += -fno-builtin-ddivl | ||
+CFLAGS-s_dmul.c += -fno-builtin-dmull | ||
+CFLAGS-s_dsub.c += -fno-builtin-dsubl | ||
+CFLAGS-s_erf.c += -fno-builtin-erfl | ||
+CFLAGS-s_erfc.c += -fno-builtin-erfcl | ||
+CFLAGS-e_exp.c += -fno-builtin-expl | ||
+CFLAGS-w_exp10.c += -fno-builtin-exp10l | ||
+CFLAGS-e_exp2.c += -fno-builtin-exp2l | ||
+CFLAGS-s_expm1.c += -fno-builtin-expm1l | ||
+CFLAGS-s_fabs.c += -fno-builtin-fabsl | ||
+CFLAGS-s_fadd.c += -fno-builtin-faddl | ||
+CFLAGS-s_fdim.c += -fno-builtin-fdiml | ||
+CFLAGS-s_fdiv.c += -fno-builtin-fdivl | ||
+CFLAGS-s_finite.c += -fno-builtin-finitel | ||
+CFLAGS-s_floor.c += -fno-builtin-floorl | ||
+CFLAGS-s_fma.c += -fno-builtin-fmal | ||
+CFLAGS-s_fmax.c += -fno-builtin-fmaxl | ||
+CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl | ||
+CFLAGS-s_fmin.c += -fno-builtin-fminl | ||
+CFLAGS-s_fminmag.c += -fno-builtin-fminmagl | ||
+CFLAGS-w_fmod.c += -fno-builtin-fmodl | ||
+CFLAGS-s_fmul.c += -fno-builtin-fmull | ||
+CFLAGS-s_frexp.c += -fno-builtin-frexpl | ||
+CFLAGS-s_fromfp.c += -fno-builtin-fromfpl | ||
+CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl | ||
+CFLAGS-s_fsub.c += -fno-builtin-fsubl | ||
+CFLAGS-s_gamma.c += -fno-builtin-gammal | ||
+CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl | ||
+CFLAGS-w_hypot.c += -fno-builtin-hypotl | ||
+CFLAGS-w_ilogb.c += -fno-builtin-ilogbl | ||
+CFLAGS-s_isinf.c += -fno-builtin-isinfl | ||
+CFLAGS-s_isnan.c += -fno-builtin-isnanl | ||
+CFLAGS-w_j0.c += -fno-builtin-j0l | ||
+CFLAGS-w_j1.c += -fno-builtin-j1l | ||
+CFLAGS-w_jn.c += -fno-builtin-jnl | ||
+CFLAGS-s_ldexp.c += -fno-builtin-ldexpl | ||
+CFLAGS-w_lgamma.c += -fno-builtin-lgammal | ||
+CFLAGS-w_lgamma_r.c += -fno-builtin-lgammal_r | ||
+CFLAGS-w_llogb.c += -fno-builtin-llogbl | ||
+CFLAGS-s_llrint.c += -fno-builtin-llrintl | ||
+CFLAGS-s_llround.c += -fno-builtin-llroundl | ||
+CFLAGS-e_log.c += -fno-builtin-logl | ||
+CFLAGS-w_log10.c += -fno-builtin-log10l | ||
+CFLAGS-w_log1p.c += -fno-builtin-log1pl | ||
+CFLAGS-e_log2.c += -fno-builtin-log2l | ||
+CFLAGS-s_logb.c += -fno-builtin-logbl | ||
+CFLAGS-s_lrint.c += -fno-builtin-lrintl | ||
+CFLAGS-s_lround.c += -fno-builtin-lroundl | ||
+CFLAGS-s_modf.c += -fno-builtin-modfl | ||
+CFLAGS-s_nan.c += -fno-builtin-nanl | ||
+CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintl | ||
+CFLAGS-s_nextafter.c += -fno-builtin-nextafterl | ||
+CFLAGS-s_nextdown.c += -fno-builtin-nextdownl | ||
+CFLAGS-s_nexttoward.c += -fno-builtin-nexttoward -fno-builtin-nexttowardl | ||
+CFLAGS-s_nexttowardf.c += -fno-builtin-nexttowardf | ||
+CFLAGS-s_nextup.c += -fno-builtin-nextupl | ||
+CFLAGS-e_pow.c += -fno-builtin-powl | ||
+CFLAGS-w_remainder.c += -fno-builtin-remainderl -fno-builtin-dreml | ||
+CFLAGS-s_remquo.c += -fno-builtin-remquol | ||
+CFLAGS-s_rint.c += -fno-builtin-rintl | ||
+CFLAGS-s_round.c += -fno-builtin-roundl | ||
+CFLAGS-s_roundeven.c += -fno-builtin-roundevenl | ||
+CFLAGS-w_scalb.c += -fno-builtin-scalbl | ||
+CFLAGS-w_scalbln.c += -fno-builtin-scalblnl | ||
+CFLAGS-s_scalbn.c += -fno-builtin-scalbnl | ||
+CFLAGS-s_setpayload.c += -fno-builtin-setpayloadl | ||
+CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigl | ||
+CFLAGS-s_significand.c += -fno-builtin-significandl | ||
+CFLAGS-s_sin.c += -fno-builtin-sinl | ||
+CFLAGS-s_sincos.c += -fno-builtin-sincosl | ||
+CFLAGS-w_sinh.c += -fno-builtin-sinhl | ||
+CFLAGS-w_sqrt.c += -fno-builtin-sqrtl | ||
+CFLAGS-s_tan.c += -fno-builtin-tanl | ||
+CFLAGS-s_tanh.c += -fno-builtin-tanhl | ||
+CFLAGS-w_tgamma.c += -fno-builtin-tgammal | ||
+CFLAGS-s_totalorder.c += -fno-builtin-totalorderl | ||
+CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagl | ||
+CFLAGS-s_trunc.c += -fno-builtin-truncl | ||
+CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpl | ||
+CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxl | ||
+CFLAGS-s_y0.c += -fno-builtin-y0l | ||
+CFLAGS-s_y1.c += -fno-builtin-y1l | ||
+CFLAGS-s_yn.c += -fno-builtin-ynl | ||
endif | ||
|
||
# These files quiet sNaNs in a way that is optimized away without |
105 changes: 105 additions & 0 deletions
105
...tool-ng-1.24.0/glibc-2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 | ||
From: Sergei Trofimovich <[email protected]> | ||
Date: Tue, 13 Sep 2022 13:39:13 -0400 | ||
Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 | ||
[BZ# 29564] | ||
|
||
make-4.4 will add long flags to MAKEFLAGS variable: | ||
|
||
* WARNING: Backward-incompatibility! | ||
Previously only simple (one-letter) options were added to the MAKEFLAGS | ||
variable that was visible while parsing makefiles. Now, all options | ||
are available in MAKEFLAGS. | ||
|
||
This causes locale builds to fail when long options are used: | ||
|
||
$ make --shuffle | ||
... | ||
make -C localedata install-locales | ||
make: invalid shuffle mode: '1662724426r' | ||
|
||
The change fixes it by passing eash option via whitespace and dashes. | ||
That way option is appended to both single-word form and whitespace | ||
separated form. | ||
|
||
While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering | ||
out --long-options. Otherwise options like --shuffle flag enable silent | ||
mode unintentionally. $(silent-make) variable consolidates the checks. | ||
|
||
Resolves: BZ# 29564 | ||
|
||
CC: Paul Smith <[email protected]> | ||
CC: Siddhesh Poyarekar <[email protected]> | ||
Signed-off-by: Sergei Trofimovich <[email protected]> | ||
Reviewed-by: Siddhesh Poyarekar <[email protected]> | ||
--- | ||
Makeconfig | 18 +++++++++++++++++- | ||
Makerules | 4 ++-- | ||
elf/rtld-Rules | 2 +- | ||
3 files changed, 20 insertions(+), 4 deletions(-) | ||
|
||
--- a/Makeconfig | ||
+++ b/Makeconfig | ||
@@ -42,6 +42,22 @@ | ||
objdir must be defined by the build-directory Makefile. | ||
endif | ||
|
||
+# Did we request 'make -s' run? "yes" or "no". | ||
+# Starting from make-4.4 MAKEFLAGS now contains long | ||
+# options like '--shuffle'. To detect presence of 's' | ||
+# we pick first word with short options. Long options | ||
+# are guaranteed to come after whitespace. We use '-' | ||
+# prefix to always have a word before long options | ||
+# even if no short options were passed. | ||
+# Typical MAKEFLAGS values to watch for: | ||
+# "rs --shuffle=42" (silent) | ||
+# " --shuffle" (not silent) | ||
+ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) | ||
+silent-make := no | ||
+else | ||
+silent-make := yes | ||
+endif | ||
+ | ||
# Root of the sysdeps tree. | ||
sysdep_dir := $(..)sysdeps | ||
export sysdep_dir := $(sysdep_dir) | ||
@@ -875,7 +891,7 @@ | ||
# umpteen zillion filenames along with it (we use `...' instead) | ||
# but we don't want this echoing done when the user has said | ||
# he doesn't want to see commands echoed by using -s. | ||
-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s | ||
+ifeq ($(silent-make),yes) # if -s | ||
+cmdecho := echo >/dev/null | ||
else # not -s | ||
+cmdecho := echo | ||
--- a/Makerules | ||
+++ b/Makerules | ||
@@ -871,7 +871,7 @@ | ||
# Maximize efficiency by minimizing the number of rules. | ||
.SUFFIXES: # Clear the suffix list. We don't use suffix rules. | ||
# Don't define any builtin rules. | ||
-MAKEFLAGS := $(MAKEFLAGS)r | ||
+MAKEFLAGS := $(MAKEFLAGS) -r | ||
|
||
# Generic rule for making directories. | ||
%/: | ||
@@ -888,7 +888,7 @@ | ||
.PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c)) | ||
|
||
# Use the verbose option of ar and tar when not running silently. | ||
-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s | ||
+ifeq ($(silent-make),no) # if not -s | ||
verbose := v | ||
else # -s | ||
verbose := | ||
--- a/elf/rtld-Rules | ||
+++ b/elf/rtld-Rules | ||
@@ -52,7 +52,7 @@ | ||
mv -f $@T $@ | ||
|
||
# Use the verbose option of ar and tar when not running silently. | ||
-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s | ||
+ifeq ($(silent-make),no) # if not -s | ||
verbose := v | ||
else # -s | ||
verbose := |