From patchwork Tue Nov 24 13:34:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Schwab X-Patchwork-Id: 41183 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D77293896C2B; Tue, 24 Nov 2020 13:34:51 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 6C724387089A for ; Tue, 24 Nov 2020 13:34:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6C724387089A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=schwab@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 80C2EAD77 for ; Tue, 24 Nov 2020 13:34:48 +0000 (UTC) From: Andreas Schwab To: libc-alpha@sourceware.org Subject: [PATCH] Turn ___brk_addr into a compat symbol X-Yow: My FAVORITE group is "QUESTION MARK & THE MYSTERIANS"... Date: Tue, 24 Nov 2020 14:34:48 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, UNWANTED_LANGUAGE_BODY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" At least since GCC 2.95 the ___brk_addr symbol has only been needed on i386-linux. The architectures added later do not need to define it any more. This includes all current users of .../generic/brk.c, plus ia64 and microblaze. GCC 3.1 finally removed that reference even for i386-linux. --- sysdeps/unix/sysv/linux/generic/brk.c | 5 ++++- sysdeps/unix/sysv/linux/ia64/brk.S | 5 ++++- sysdeps/unix/sysv/linux/microblaze/brk.c | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/sysdeps/unix/sysv/linux/generic/brk.c b/sysdeps/unix/sysv/linux/generic/brk.c index 40a80ab970..0c12b3a487 100644 --- a/sysdeps/unix/sysv/linux/generic/brk.c +++ b/sysdeps/unix/sysv/linux/generic/brk.c @@ -19,14 +19,17 @@ #include #include #include +#include /* This must be initialized data because commons can't have aliases. */ void *__curbrk = 0; +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_33) /* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt to work around different old braindamage in the old Linux ELF dynamic linker. */ -weak_alias (__curbrk, ___brk_addr) +compat_symbol (libc, __curbrk, ___brk_addr, GLIBC_2_0); +#endif int __brk (void *addr) diff --git a/sysdeps/unix/sysv/linux/ia64/brk.S b/sysdeps/unix/sysv/linux/ia64/brk.S index 734d3467a7..3e643fa745 100644 --- a/sysdeps/unix/sysv/linux/ia64/brk.S +++ b/sysdeps/unix/sysv/linux/ia64/brk.S @@ -19,6 +19,7 @@ . */ #include +#include #include @@ -30,7 +31,9 @@ __curbrk: data8 0 -weak_alias (__curbrk, ___brk_addr) +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_33) +compat_symbol (libc, __curbrk, ___brk_addr, GLIBC_2_0) +#endif LEAF(__brk) .regstk 1, 0, 0, 0 diff --git a/sysdeps/unix/sysv/linux/microblaze/brk.c b/sysdeps/unix/sysv/linux/microblaze/brk.c index 20c3e625e4..c41fbbf03a 100644 --- a/sysdeps/unix/sysv/linux/microblaze/brk.c +++ b/sysdeps/unix/sysv/linux/microblaze/brk.c @@ -18,14 +18,17 @@ #include #include #include +#include /* This must be initialized data because commons can't have aliases. */ void *__curbrk = 0; +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_33) /* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt to work around different old braindamage in the old Linux ELF dynamic linker. */ -weak_alias (__curbrk, ___brk_addr) +compat_symbol (libc, __curbrk, ___brk_addr, GLIBC_2_0); +#endif int __brk (void *addr)