aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2019-01-29 15:08:16 +0000
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2019-01-29 16:08:16 +0100
commitfac31afe6a8ee178de0662353dbd6f2cc5ab3556 (patch)
treea0229181cc7f039ccdb8df74510295e26ba9fc80 /gcc
parent97b9ebc8741d5c95254cb9121ed86714c85e26c1 (diff)
downloadgcc-fac31afe6a8ee178de0662353dbd6f2cc5ab3556.zip
gcc-fac31afe6a8ee178de0662353dbd6f2cc5ab3556.tar.gz
gcc-fac31afe6a8ee178de0662353dbd6f2cc5ab3556.tar.bz2
[ARC] Enable init_array support.
gcc's common configure script has a subtle flaw that it only tests {init,fini.preinit}_array support when NOT cross compiling. This causes cross builds to erroneously deduce that the feature is not supported by the target. | host-gcc-final-ab544139bfee/build/gcc/config.log | |configure:22941: checking for .preinit_array/.init_array/.fini_array support |configure:23106: checking cross compile... guessing |configure:23111: result: no The right fix is to enable this for *all* cross setups (and address any fallouts). However in the short-term to enable ARC glibc port to upstream, force enable this for ARC. This has been discussed at length on glibc mailing list [1], [2] [1] https://sourceware.org/ml/libc-alpha/2018-11/msg00870.html [2] https://sourceware.org/ml/libc-alpha/2019-01/msg00656.html gcc/ 2019-xx-xx Vineet Gupta <vgupta@synopsys.com> * gcc/config.gcc: Force .init_array for ARC From-SVN: r268365
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config.gcc5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9a3d7d5..dbaf550 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2019-01-29 Vineet Gupta <vgupta@synopsys.com>
+
+ * gcc/config.gcc: Force .init_array for ARC.
+
2019-01-29 Richard Biener <rguenther@suse.de>
PR debug/87295
diff --git a/gcc/config.gcc b/gcc/config.gcc
index a189cb1..f7b7dcc 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1110,7 +1110,10 @@ arc*-*-linux*)
case ${with_endian} in
big*) tm_file="arc/big.h ${tm_file}"
esac
- ;;
+ # Force .init_array support. The configure script cannot always
+ # automatically detect that GAS supports it, yet we require it.
+ gcc_cv_initfini_array=yes
+ ;;
arm-wrs-vxworks|arm-wrs-vxworks7)
extra_options="${extra_options} arm/vxworks.opt"
tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"