public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Samuel Thibault <sthibaul@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc] hurd: Fix ld.so link
Date: Sun, 01 Dec 2019 18:52:00 -0000	[thread overview]
Message-ID: <20191201185200.42794.qmail@sourceware.org> (raw)

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.

Diff:
---
 sysdeps/mach/hurd/Versions           |  4 ++--
 sysdeps/mach/hurd/dl-sysdep.c        | 15 ++++++++++++---
 sysdeps/mach/hurd/i386/ld.abilist    |  1 +
 sysdeps/mach/hurd/i386/libc.abilist  |  1 +
 sysdeps/mach/hurd/i386/localplt.data |  1 +
 5 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions
index f69d5fe..cd148c8 100644
--- a/sysdeps/mach/hurd/Versions
+++ b/sysdeps/mach/hurd/Versions
@@ -1,7 +1,7 @@
 libc {
   GLIBC_2.0 {
     # functions with a weak definition in the dynamic linker
-    __access; __getcwd; __mmap;
+    __access; __getcwd; __mmap; __sigprocmask;
   }
   GLIBC_2.2.6 {
     # functions with a weak definition in the dynamic linker
@@ -26,7 +26,7 @@ ld {
     __mmap; __open; __read; __sbrk; __strtoul_internal;
     __write; __writev; __xstat64; __fxstat64;
     _exit; _hurd_intr_rpc_mach_msg;
-    abort;
+    abort; __sigprocmask;
   }
   GLIBC_2.2 {
     # functions that must be shared with libc
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index 719d603..fcbbe6a 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -264,13 +264,14 @@ _dl_sysdep_start_cleanup (void)
   __mach_port_deallocate (__mach_task_self (), __mach_task_self_);
 }
 \f
-/* Minimal open/close/mmap implementation sufficient for initial loading of
+/* Minimal open/close/mmap/etc. implementation sufficient for initial loading of
    shared libraries.  These are weak definitions so that when the
    dynamic linker re-relocates itself to be user-visible (for -ldl),
    it will get the user's definition (i.e. usually libc's).
 
-   They also need to be set in the ld section of sysdeps/mach/hurd/Versions, to
-   be overridable, and in libc.abilist and ld.abilist to be checked. */
+   They also need to be set in the libc and ld section of
+   sysdeps/mach/hurd/Versions, to be overridable, and in libc.abilist and
+   ld.abilist to be checked. */
 
 /* This macro checks that the function does not get renamed to be hidden: we do
    need these to be overridable by libc's.  */
@@ -674,6 +675,14 @@ 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;
+}
 \f
 /* 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/ld.abilist b/sysdeps/mach/hurd/i386/ld.abilist
index c76b913..09ff013 100644
--- a/sysdeps/mach/hurd/i386/ld.abilist
+++ b/sysdeps/mach/hurd/i386/ld.abilist
@@ -8,6 +8,7 @@ GLIBC_2.2.6 __open F
 GLIBC_2.2.6 __open64 F
 GLIBC_2.2.6 __read F
 GLIBC_2.2.6 __sbrk F
+GLIBC_2.2.6 __sigprocmask F
 GLIBC_2.2.6 __strtoul_internal F
 GLIBC_2.2.6 __write F
 GLIBC_2.2.6 __writev F
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 7c2cb2b..54270e4 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -426,6 +426,7 @@ GLIBC_2.2.6 __signbit F
 GLIBC_2.2.6 __signbitf F
 GLIBC_2.2.6 __signbitl F
 GLIBC_2.2.6 __sigpause F
+GLIBC_2.2.6 __sigprocmask F
 GLIBC_2.2.6 __sigsetjmp F
 GLIBC_2.2.6 __sigsuspend F
 GLIBC_2.2.6 __stpcpy F
diff --git a/sysdeps/mach/hurd/i386/localplt.data b/sysdeps/mach/hurd/i386/localplt.data
index a5b5241..1aef944 100644
--- a/sysdeps/mach/hurd/i386/localplt.data
+++ b/sysdeps/mach/hurd/i386/localplt.data
@@ -40,6 +40,7 @@ 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


                 reply	other threads:[~2019-12-01 18:52 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191201185200.42794.qmail@sourceware.org \
    --to=sthibaul@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).