From patchwork Thu Aug 3 21:30:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Petazzoni X-Patchwork-Id: 797471 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xNjsG3s4yz9s76 for ; Fri, 4 Aug 2017 07:30:42 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 3B1C8230FB; Thu, 3 Aug 2017 21:30:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZeD2mvBSecFP; Thu, 3 Aug 2017 21:30:35 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id E89E0230F3; Thu, 3 Aug 2017 21:30:34 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id A04941C2922 for ; Thu, 3 Aug 2017 21:30:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 9A444820F7 for ; Thu, 3 Aug 2017 21:30:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nb8h3KjCEZXy for ; Thu, 3 Aug 2017 21:30:31 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail.free-electrons.com (mail.free-electrons.com [62.4.15.54]) by whitealder.osuosl.org (Postfix) with ESMTP id 37FAE820F2 for ; Thu, 3 Aug 2017 21:30:31 +0000 (UTC) Received: by mail.free-electrons.com (Postfix, from userid 110) id 3C5E621EDF; Thu, 3 Aug 2017 23:30:28 +0200 (CEST) Received: from localhost (LFbn-1-10680-2.w90-89.abo.wanadoo.fr [90.89.33.2]) by mail.free-electrons.com (Postfix) with ESMTPSA id 0FD4121EC4; Thu, 3 Aug 2017 23:30:28 +0200 (CEST) From: Thomas Petazzoni To: Buildroot List , Waldemar Brodkorb Date: Thu, 3 Aug 2017 23:30:27 +0200 Message-Id: <20170803213027.27565-1-thomas.petazzoni@free-electrons.com> X-Mailer: git-send-email 2.9.4 Cc: Thomas Petazzoni Subject: [Buildroot] [PATCH] glibc: add patch fixing the build with binutils 2.29 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Fixes the following build failure, which occurs on all architectures: /tmp/cc6APNmN.s: Assembler messages: /tmp/cc6APNmN.s: Error: `loc1@GLIBC_2.17' can't be versioned to common symbol 'loc1' /tmp/cc6APNmN.s: Error: `loc2@GLIBC_2.17' can't be versioned to common symbol 'loc2' /tmp/cc6APNmN.s: Error: `locs@GLIBC_2.17' can't be versioned to common symbol 'locs' ../o-iterator.mk:9: recipe for target '/tmp/output/build/glibc-2.25/build/misc/regexp.os' failed Signed-off-by: Thomas Petazzoni --- package/glibc/0005-fix-binutils-2-29-build.patch | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 package/glibc/0005-fix-binutils-2-29-build.patch diff --git a/package/glibc/0005-fix-binutils-2-29-build.patch b/package/glibc/0005-fix-binutils-2-29-build.patch new file mode 100644 index 0000000..47fcd2f --- /dev/null +++ b/package/glibc/0005-fix-binutils-2-29-build.patch @@ -0,0 +1,65 @@ +From: H.J. Lu +Date: Fri, 23 Jun 2017 21:38:46 +0000 (-0700) +Subject: Avoid .symver on common symbols [BZ #21666] +X-Git-Tag: glibc-2.26~241 +X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=388b4f1a02f3a801965028bbfcd48d905638b797 + +Avoid .symver on common symbols [BZ #21666] + +The .symver directive on common symbol just creates a new common symbol, +not an alias and the newer assembler with the bug fix for + +https://sourceware.org/bugzilla/show_bug.cgi?id=21661 + +will issue an error. Before the fix, we got + +$ readelf -sW libc.so | grep "loc[12s]" + 5109: 00000000003a0608 8 OBJECT LOCAL DEFAULT 36 loc1 + 5188: 00000000003a0610 8 OBJECT LOCAL DEFAULT 36 loc2 + 5455: 00000000003a0618 8 OBJECT LOCAL DEFAULT 36 locs + 6575: 00000000003a05f0 8 OBJECT GLOBAL DEFAULT 36 locs@GLIBC_2.2.5 + 7156: 00000000003a05f8 8 OBJECT GLOBAL DEFAULT 36 loc1@GLIBC_2.2.5 + 7312: 00000000003a0600 8 OBJECT GLOBAL DEFAULT 36 loc2@GLIBC_2.2.5 + +in libc.so. The versioned loc1, loc2 and locs have the wrong addresses. +After the fix, we got + +$ readelf -sW libc.so | grep "loc[12s]" + 6570: 000000000039e3b8 8 OBJECT GLOBAL DEFAULT 34 locs@GLIBC_2.2.5 + 7151: 000000000039e3c8 8 OBJECT GLOBAL DEFAULT 34 loc1@GLIBC_2.2.5 + 7307: 000000000039e3c0 8 OBJECT GLOBAL DEFAULT 34 loc2@GLIBC_2.2.5 + + [BZ #21666] + * misc/regexp.c (loc1): Add __attribute__ ((nocommon)); + (loc2): Likewise. + (locs): Likewise. + +Signed-off-by: Thomas Petazzoni +[Backported from upstream commit +388b4f1a02f3a801965028bbfcd48d905638b797, to fix the build with +binutils 2.29.] +--- +diff --git a/misc/regexp.c b/misc/regexp.c +index 19d76c0..eaea7c3 100644 +--- a/misc/regexp.c ++++ b/misc/regexp.c +@@ -29,14 +29,15 @@ + + #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23) + +-/* Define the variables used for the interface. */ +-char *loc1; +-char *loc2; ++/* Define the variables used for the interface. Avoid .symver on common ++ symbol, which just creates a new common symbol, not an alias. */ ++char *loc1 __attribute__ ((nocommon)); ++char *loc2 __attribute__ ((nocommon)); + compat_symbol (libc, loc1, loc1, GLIBC_2_0); + compat_symbol (libc, loc2, loc2, GLIBC_2_0); + + /* Although we do not support the use we define this variable as well. */ +-char *locs; ++char *locs __attribute__ ((nocommon)); + compat_symbol (libc, locs, locs, GLIBC_2_0); + +