From patchwork Wed Dec 18 09:55:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 36937 Received: (qmail 70844 invoked by alias); 18 Dec 2019 09:55:59 -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 70822 invoked by uid 89); 18 Dec 2019 09:55:59 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-18.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LOTSOFHASH, SPF_PASS autolearn=ham version=3.3.1 spammy=Below, HX-Languages-Length:3774 X-HELO: us-smtp-1.mimecast.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1576662955; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qCgEYYuNI4pn1ZFUcPx/OcH9+ut1U3dx4q1cPbMMoM8=; b=T/+Ses/gPVq1ClNBhJldY5VWFLdCkI4ixxLHDPb9VbxoNoubjnA9liQWn0rlgkp3zNK4ud yEn9ZIpsfbmNSxTmMGYdWkXDrOKF/6BTJuAbT+DC88Ae94RCJX4BtDGxtOs5KVpTEn3lWT K1nMEqMHn30nwq5+j7miIlfAoX/ywLI= From: Florian Weimer To: Samuel Thibault Cc: Joseph Myers , libc-alpha@sourceware.org Subject: Re: [glibc] hurd: Fix ld.so link References: <20191201185200.42794.qmail@sourceware.org> <874ky48p58.fsf@oldenburg2.str.redhat.com> <875zie6dao.fsf@oldenburg2.str.redhat.com> <20191217195905.bhqvucodmjzsfzep@function> Date: Wed, 18 Dec 2019 10:55:43 +0100 In-Reply-To: <20191217195905.bhqvucodmjzsfzep@function> (Samuel Thibault's message of "Tue, 17 Dec 2019 20:59:05 +0100") Message-ID: <87y2va2c0w.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 * 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 >> >> > 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(-) 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