hurd: Fix ld.so link

Message ID 87y2va2c0w.fsf@oldenburg2.str.redhat.com
State Committed
Headers

Commit Message

Florian Weimer Dec. 18, 2019, 9:55 a.m. UTC
  * Samuel Thibault:

> Florian Weimer, le mar. 17 déc. 2019 19:02:23 +0100, a ecrit:
>> * Joseph Myers:
>> > On Fri, 13 Dec 2019, Florian Weimer wrote:
>> >
>> >> * Samuel Thibault:
>> >> 
>> >> > https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d5ed9ba29a3c818b3433a1784862494968abda45
>> >> >
>> >> > commit d5ed9ba29a3c818b3433a1784862494968abda45
>> >> > Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
>> >> > Date:   Sun Dec 1 14:58:25 2019 +0000
>> >> >
>> >> >     hurd: Fix ld.so link
>> >> >     
>> >> >     Since a2e8aa0d9ea6 ("Block signals during the initial part of dlopen") dl_open
>> >> >     uses sigprocmask, so we need a stub implementation.
>> >> 
>> >> Should we revert this change (and 892badc9bbcd4a6f8), now that dlopen no
>> >> longer calls sigprocmask?
>> >
>> > Note that right now there is a regression shown by build-many-glibcs.py 
>> > for i686-gnu:
>> >
>> > Missing required PLT reference: ld.so: __sigprocmask
>> >
>> > https://sourceware.org/ml/libc-testresults/2019-q4/msg00344.html
>> 
>> Yes, that's part of the motivation for my query?
>> 
>> Should I just push the two reverts?
>
> Please feel free to.

Thanks.  Below is what I have pushed.

Florian

8<------------------------------------------------------------------8<

Subject: hurd: Do not make sigprocmask available in ld.so

After commit f7649d5780aa4682393b9daedd653e4d9c12784c ("dlopen: Do not
block signals"), the dynamic linker no longer uses sigprocmask, which
means that it does not have to be made available explicitly on hurd.

This reverts commit 892badc9bbcd4a6f8c2eb6c8a99be3aa22517532
("hurd: Make __sigprocmask GLIBC_PRIVATE") and commit
d5ed9ba29a3c818b3433a1784862494968abda45 ("hurd: Fix ld.so link"),
but keeps the comment changes from the second commit.

-----
 sysdeps/mach/hurd/Versions           | 4 ++--
 sysdeps/mach/hurd/dl-sysdep.c        | 8 --------
 sysdeps/mach/hurd/i386/localplt.data | 1 -
 3 files changed, 2 insertions(+), 11 deletions(-)
  

Patch

diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions
index 6ddd2977f6..35257a0906 100644
--- a/sysdeps/mach/hurd/Versions
+++ b/sysdeps/mach/hurd/Versions
@@ -10,7 +10,7 @@  libc {
   GLIBC_PRIVATE {
     # Functions shared with the dynamic linker
     __access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
-    __libc_lock_self0; __sigprocmask; __getcwd;
+    __libc_lock_self0; __getcwd;
 
     _dl_init_first;
     __close_nocancel_nostatus;
@@ -42,6 +42,6 @@  ld {
 
     # functions that must be shared with libc
     __access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
-    __libc_lock_self0; __sigprocmask; __getcwd;
+    __libc_lock_self0; __getcwd;
   }
 }
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index fcbbe6a43a..33fe8c3068 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -675,14 +675,6 @@  strong_alias (abort, __GI___chk_fail)
 strong_alias (abort, __GI___fortify_fail)
 strong_alias (abort, __GI___assert_fail)
 strong_alias (abort, __GI___assert_perror_fail)
-
-check_no_hidden(__sigprocmask);
-int weak_function
-__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
-{
-  /* We do not have signals yet at this stage.  */
-  return 0;
-}
 
 /* This function is called by interruptible RPC stubs.  For initial
    dynamic linking, just use the normal mach_msg.  Since this defn is
diff --git a/sysdeps/mach/hurd/i386/localplt.data b/sysdeps/mach/hurd/i386/localplt.data
index b89e04b24a..c1725d140f 100644
--- a/sysdeps/mach/hurd/i386/localplt.data
+++ b/sysdeps/mach/hurd/i386/localplt.data
@@ -40,7 +40,6 @@  ld.so: __sbrk
 ld.so: __strtoul_internal
 #ld.so: _exit
 ld.so: abort
-ld.so: __sigprocmask
 ld.so: _hurd_intr_rpc_mach_msg
 ld.so: __errno_location
 # rtld_hidden is currently disabled to avoid having to special-case the