aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-04-07 11:00:43 +0930
committerAlan Modra <amodra@gcc.gnu.org>2017-04-07 11:00:43 +0930
commit2bdf7fc6e6a1c68847539cee4c93a472d55fa04e (patch)
treed1afb3554a9fcda7950a7f54263aa60f09566acb
parentba7865c179cff86d27af4758ffcb2d28b0fcc569 (diff)
downloadgcc-2bdf7fc6e6a1c68847539cee4c93a472d55fa04e.zip
gcc-2bdf7fc6e6a1c68847539cee4c93a472d55fa04e.tar.gz
gcc-2bdf7fc6e6a1c68847539cee4c93a472d55fa04e.tar.bz2
[RS6000] Out-of-line register save functions can't be used from crtend.o
PR target/45053 * config/rs6000/t-crtstuff (CRTSTUFF_T_CFLAGS): Add -O2. From-SVN: r246749
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/rs6000/t-crtstuff5
2 files changed, 9 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 87fea5b..427328d 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-07 Alan Modra <amodra@gmail.com>
+
+ PR target/45053
+ * config/rs6000/t-crtstuff (CRTSTUFF_T_CFLAGS): Add -O2.
+
2017-04-03 Jonathan Wakely <jwakely@redhat.com>
* config/c6x/pr-support.c (__gnu_unwind_execute): Fix typo in comment.
diff --git a/libgcc/config/rs6000/t-crtstuff b/libgcc/config/rs6000/t-crtstuff
index 7422d383..0b2601b 100644
--- a/libgcc/config/rs6000/t-crtstuff
+++ b/libgcc/config/rs6000/t-crtstuff
@@ -1,3 +1,6 @@
# If .sdata is enabled __CTOR_{LIST,END}__ go into .sdata instead of
# .ctors.
-CRTSTUFF_T_CFLAGS = -msdata=none
+# Do not build crtend.o with -Os as that can result in references to
+# out-of-line register save/restore functions, which may be unresolved
+# as crtend.o is linked after libgcc.a. See PR45053.
+CRTSTUFF_T_CFLAGS = -msdata=none -O2