public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* Allow abort PLT references in libc.so for SH
@ 2017-08-15 21:34 Joseph Myers
  2017-08-16 15:56 ` Carlos O'Donell
  0 siblings, 1 reply; 3+ messages in thread
From: Joseph Myers @ 2017-08-15 21:34 UTC (permalink / raw)
  To: libc-alpha

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).

2017-08-15  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
	libc.so.

diff --git a/sysdeps/unix/sysv/linux/sh/localplt.data b/sysdeps/unix/sysv/linux/sh/localplt.data
index 2753547..babb19d 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

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Allow abort PLT references in libc.so for SH
  2017-08-15 21:34 Allow abort PLT references in libc.so for SH Joseph Myers
@ 2017-08-16 15:56 ` Carlos O'Donell
  2017-08-16 17:00   ` Joseph Myers
  0 siblings, 1 reply; 3+ messages in thread
From: Carlos O'Donell @ 2017-08-16 15:56 UTC (permalink / raw)
  To: Joseph Myers, libc-alpha

On 08/15/2017 05:31 PM, Joseph Myers wrote:
> 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).
> 
> 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
> 
> 	* sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
> 	libc.so.
> 
> diff --git a/sysdeps/unix/sysv/linux/sh/localplt.data b/sysdeps/unix/sysv/linux/sh/localplt.data
> index 2753547..babb19d 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
> 

I agree that this is a good temporary measure, but why can't gcc be
fixed to use what we use in glibc for ABORT_INSTRUCTION?

-- 
Cheers,
Carlos.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Allow abort PLT references in libc.so for SH
  2017-08-16 15:56 ` Carlos O'Donell
@ 2017-08-16 17:00   ` Joseph Myers
  0 siblings, 0 replies; 3+ messages in thread
From: Joseph Myers @ 2017-08-16 17:00 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-alpha

On Wed, 16 Aug 2017, Carlos O'Donell wrote:

> I agree that this is a good temporary measure, but why can't gcc be
> fixed to use what we use in glibc for ABORT_INSTRUCTION?

See the problem in <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70216> 
agreeing *what* trapping instruction to use.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-08-16 17:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-15 21:34 Allow abort PLT references in libc.so for SH Joseph Myers
2017-08-16 15:56 ` Carlos O'Donell
2017-08-16 17:00   ` Joseph Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).