about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan S. Arnold <rsa@us.ibm.com>2011-02-17 00:59:15 -0500
committerPetr Baudis <pasky@suse.cz>2011-05-26 23:57:08 +0200
commit758c66a2344d9c88f320e180d785f214f77f9943 (patch)
tree850033596fc3072c56756129cbb7bf53e72f7af4
parent44092c71f67e4dbf9c56c7a7aff06bd7e81446b0 (diff)
downloadglibc-758c66a2344d9c88f320e180d785f214f77f9943.tar.gz
glibc-758c66a2344d9c88f320e180d785f214f77f9943.tar.xz
glibc-758c66a2344d9c88f320e180d785f214f77f9943.zip
Disable VSX usage in rtld.c to prevent TOC ref before relocs are resolved.
(cherry picked from commit 2206397e1c46f69fb20eeb3de1920d3a7014c325)
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/powerpc/powerpc64/power7/Makefile5
2 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 08bb5de111..9d07a907f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-02-15  Ryan S. Arnold  <rsa@us.ibm.com>
+
+	* sysdeps/powerpc/powerpc64/power7/Makefile: New file which adds
+	-mno-vsx to the CFLAGS-rtld.c variable to avoid using VSX registers and
+	insns in _dl_start to prevent a TOC reference before relocs are
+	resolved.
+
 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
 
 	* stdio-common/printf-parsemb.c (__parse_one_specmb): Handle
diff --git a/sysdeps/powerpc/powerpc64/power7/Makefile b/sysdeps/powerpc/powerpc64/power7/Makefile
new file mode 100644
index 0000000000..b0f45205b9
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/power7/Makefile
@@ -0,0 +1,5 @@
+ifeq ($(subdir),elf)
+# Prevent the use of VSX registers and insns in _dl_start, which under -O3
+# optimization may require a TOC reference before relocations are resolved.
+CFLAGS-rtld.c += -mno-vsx
+endif