From patchwork Thu Feb 15 16:56:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 25942 Received: (qmail 24151 invoked by alias); 15 Feb 2018 16:56:47 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 23320 invoked by uid 89); 15 Feb 2018 16:56:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=Hx-languages-length:2737 X-HELO: relay1.mentorg.com Date: Thu, 15 Feb 2018 16:56:39 +0000 From: Joseph Myers To: Subject: Fix hppa local PLT entries for sigprocmask (bug 18124) Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 X-ClientProxiedBy: svr-ies-mbx-02.mgc.mentorg.com (139.181.222.2) To SVR-IES-MBX-03.mgc.mentorg.com (139.181.222.3) When adding/updating localplt.data for various architectures to get the compilation tests passing everywhere, I generally made it reflect the existing state of what local PLT entries were actually seen, rather than an ideal state with as few as possible such entries, mainly for functions that are intended to be interposable. This patch eliminates some local PLT entries for hppa by using __sigprocmask instead of sigprocmask in getcontext and setcontext. The specific case of sigprocmask called by setcontext is the third of four items in bug 18124 (the other three have already been fixed for 2.26 or earlier releases). Note that hppa-specific localplt.data entries for __sigsetjmp, _IO_funlockfile and __errno_location remain, but the causes / fixes are less immediately obvious from source inspection. Tested (compilation tests only) with build-many-glibcs.py for hppa-linux-gnu. 2018-02-15 Joseph Myers [BZ #18124] * sysdeps/hppa/bsd-setjmp.S: Include . (setjmp): Use HIDDEN_JUMPTARGET with __sigsetjmp. * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Call __sigprocmask instead of sigprocmask. * sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext): Likewise. * sysdeps/unix/sysv/linux/hppa/localplt.data: Remove entries for __sigsetjmp and sigprocmask. Reviewed-by: Carlos O'Donell diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S index 4261f60..b8f978f 100644 --- a/sysdeps/unix/sysv/linux/hppa/getcontext.S +++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S @@ -160,7 +160,7 @@ ENTRY(__getcontext) /* sigprocmask(SIG_BLOCK, NULL, &ucp->uc_sigmask); */ ldo oSIGMASK(%r26), %r24 copy %r0, %r25 - bl sigprocmask, %r2 + bl __sigprocmask, %r2 ldi SIG_BLOCK, %r26 /* Epilogue */ diff --git a/sysdeps/unix/sysv/linux/hppa/localplt.data b/sysdeps/unix/sysv/linux/hppa/localplt.data index 3279c0a..5f3475d 100644 --- a/sysdeps/unix/sysv/linux/hppa/localplt.data +++ b/sysdeps/unix/sysv/linux/hppa/localplt.data @@ -8,7 +8,6 @@ libc.so: memalign libc.so: realloc libc.so: __sigsetjmp libc.so: _IO_funlockfile -libc.so: sigprocmask libc.so: __errno_location libm.so: matherr libpthread.so: __errno_location diff --git a/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S index 8dc0ecf..d5ebc7c 100644 --- a/sysdeps/unix/sysv/linux/hppa/setcontext.S +++ b/sysdeps/unix/sysv/linux/hppa/setcontext.S @@ -43,7 +43,7 @@ ENTRY(__setcontext) /* sigprocmask(SIG_BLOCK, &ucp->uc_sigmask, NULL); */ copy %r0, %r24 ldo oSIGMASK(%r3), %r25 - bl sigprocmask, %r2 + bl __sigprocmask, %r2 ldi SIG_SETMASK, %r26 comib,<>,n 0,%ret0,.Lerror