about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-08-16 17:01:27 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-08-16 17:01:27 +0000
commit5047057ffa1c737cc432eec3113ae6fcd327adf4 (patch)
treea5ea4a77d3f8bea4f96081e43dba0ef41f7d2194
parent20c7b195d0f67eeb55bad1b1879250f277ac7eb6 (diff)
downloadglibc-5047057ffa1c737cc432eec3113ae6fcd327adf4.tar.gz
glibc-5047057ffa1c737cc432eec3113ae6fcd327adf4.tar.xz
glibc-5047057ffa1c737cc432eec3113ae6fcd327adf4.zip
Allow abort PLT references in libc.so for SH.
Given my patch
<https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00965.html> for the
ICEs building a glibc string function test for SH, the testsuite can
build completely for SH with GCC 7 and mainline.  However, there is a
test failure that does not appear for GCC 6: check-localplt fails
because of an abort PLT reference in libc.so.

Given the lack of a trap insn pattern for SH, it seems unavoidable
that the compiler might sometimes generate abort calls, and such abort
calls (generated from __builtin_trap when there is no trap insn
pattern) will be unaffected by the normal mapping to __GI_abort for
calls within glibc.  Thus, this patch allows (but does not require) an
abort PLT reference in libc.so for SH.

Tested for sh4-linux-gnu with build-many-glibcs.py (GCC 7, with my
patch applied).

	* sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
	libc.so.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/sh/localplt.data2
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b7ef311b6..af07c422ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-08-16  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
+	libc.so.
+
 2017-08-16  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* NEWS: Mention x86-64 FMA optimization.
diff --git a/sysdeps/unix/sysv/linux/sh/localplt.data b/sysdeps/unix/sysv/linux/sh/localplt.data
index 2753547d97..babb19d717 100644
--- a/sysdeps/unix/sysv/linux/sh/localplt.data
+++ b/sysdeps/unix/sysv/linux/sh/localplt.data
@@ -10,6 +10,8 @@ libc.so: _Unwind_Find_FDE
 libc.so: _exit
 libc.so: __errno_location
 libm.so: matherr
+# Generated by the compiler because there is no trap insn pattern.
+libc.so: abort ?
 # The main malloc is interposed into the dynamic linker, for
 # allocations after the initial link (when dlopen is used).
 ld.so: malloc