Message ID | Pine.LNX.4.64.1403220011340.19717@digraph.polyomino.org.uk |
---|---|
State | Committed |
Headers |
Return-Path: <x14307373@homiemail-mx21.g.dreamhost.com> X-Original-To: siddhesh@wilcox.dreamhost.com Delivered-To: siddhesh@wilcox.dreamhost.com Received: from homiemail-mx21.g.dreamhost.com (caibbdcaaahb.dreamhost.com [208.113.200.71]) by wilcox.dreamhost.com (Postfix) with ESMTP id 51DD53600C2 for <siddhesh@wilcox.dreamhost.com>; Fri, 21 Mar 2014 17:25:41 -0700 (PDT) Received: by homiemail-mx21.g.dreamhost.com (Postfix, from userid 14307373) id DF2B6CDAA3E; Fri, 21 Mar 2014 17:25:40 -0700 (PDT) X-Original-To: glibc@patchwork.siddhesh.in Delivered-To: x14307373@homiemail-mx21.g.dreamhost.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by homiemail-mx21.g.dreamhost.com (Postfix) with ESMTPS id B0B96CDAA3E for <glibc@patchwork.siddhesh.in>; Fri, 21 Mar 2014 17:25:40 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:in-reply-to:message-id :references:mime-version:content-type; q=dns; s=default; b=A+uPx Z7spK8QeORGGD0BxVIcT3NJRDvKkSS4Iu/UzCSYUCxdyGtASDES7Y41loH27q0Wd SQzyQXsLc0T4TNKx6B3E0QZBhWfXevWGYy1X+QHp5HZaTSlSqPWJ1/7UhVHmdz+W vBuGivdJsUtZaJzlyGCGJRtQG0MGKGeiy7gtCU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:in-reply-to:message-id :references:mime-version:content-type; s=default; bh=nG6tngB0RhY Zbrt6HdzFElL+9H0=; b=LRZrGiNweK6v9zct4zye7DaFmbDN7/6aR+djK0nSNKB YT2EfoRcoA73zn/CVAYAihfZxmTYTQMAEf6GedROFGLQywhuhMU+MWPeEZ74EYtj Sa856c1mHWUbiaspjY6d2LGqWv0yUAZDBuXZfh0Mt7bjud59obd2bPNFGeHqdROU = Received: (qmail 14076 invoked by alias); 22 Mar 2014 00:25:38 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-glibc=patchwork.siddhesh.in@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 14064 invoked by uid 89); 22 Mar 2014 00:25:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Sat, 22 Mar 2014 00:25:28 +0000 From: "Joseph S. Myers" <joseph@codesourcery.com> To: Roland McGrath <roland@hack.frob.com> CC: "GNU C. Library" <libc-alpha@sourceware.org>, Carlos O'Donell <carlos@redhat.com> Subject: Re: [PATCH roland/Versions.def] Get rid of Versions.def source file In-Reply-To: <20140321225348.142A8744AA@topped-with-meat.com> Message-ID: <Pine.LNX.4.64.1403220011340.19717@digraph.polyomino.org.uk> References: <20140228214559.BD8BF744B6@topped-with-meat.com> <Pine.LNX.4.64.1403211805400.4557@digraph.polyomino.org.uk> <20140321201830.3221874477@topped-with-meat.com> <Pine.LNX.4.64.1403212238150.19717@digraph.polyomino.org.uk> <20140321225348.142A8744AA@topped-with-meat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-DH-Original-To: glibc@patchwork.siddhesh.in |
Commit Message
Joseph Myers
March 22, 2014, 12:25 a.m. UTC
On Fri, 21 Mar 2014, Roland McGrath wrote: > > No, it worked previously - the point is that GLIBC_2.2.5 is only mentioned > > in Versions files (sysdeps/unix/bsd/Versions > > sysdeps/unix/sysv/linux/x86_64/Versions mach/Versions hurd/Versions) that > > aren't used for MIPS, but used in SHLIB_COMPAT in files that are used for > > MIPS. > > Oh, I see. Before Versions.def had the union of all sysdeps/.../Versions > files in the source tree. Now the generated file gets only the union of > all Versions files actually selected in the current configuration. Someone > (like Carlos when reviewing my change ;->) should check what Versions.def > items were lost in some configuration. But I guess the ones that matter > will come out in usual testing now with -Wundef. As it turns out, adding the GLIBC_2.2.5 version (patch below) does not fix things; it removes the -Wundef warnings and is presumably correct on that basis, but doesn't get the symbols back at their correct GCC_3.0 version. If I build for mips64el-linux-gnu (n32 ABI), at the commit before the Versions.def change, I get libc.map ending with GLIBC_2.18 { global: __cxa_thread_atexit_impl; } GLIBC_2.17; GLIBC_2.19 { global: getrlimit64; setrlimit64; } GLIBC_2.18; GLIBC_PRIVATE { global: [...] } GLIBC_2.19; GCC_3.0 { global: __deregister_frame_info_bases; __register_frame_info_bases; __register_frame_info_table_bases; _Unwind_Find_FDE; }; At the following commit, plus the addition to elf/Versions, it ends: GLIBC_2.18 { global: __cxa_thread_atexit_impl; } GLIBC_2.17; GLIBC_2.19 { global: getrlimit64; setrlimit64; } GLIBC_2.18; GLIBC_PRIVATE { global: [...] } GLIBC_2.19; with no GCC_3.0 version, and the symbols that should be in such a version appearing in GLIBC_2.0 instead. But for an i686 build (on a different system) I do see the GCC_3.0 version. And I also see it for a powerpc32 build on the same system as the mips64el-linux-gnu build, so it appears to be something about the configured host / set of symbols / symbol versions rather than a build environment issue. 2014-03-22 Joseph Myers <joseph@codesourcery.com> * elf/Versions (libc) [EXPORT_UNWIND_FIND_FDE]: Add empty GLIBC_2.2.5 version.
Comments
On Sat, 22 Mar 2014, Joseph S. Myers wrote: > with no GCC_3.0 version, and the symbols that should be in such a version > appearing in GLIBC_2.0 instead. But for an i686 build (on a different > system) I do see the GCC_3.0 version. And I also see it for a powerpc32 > build on the same system as the mips64el-linux-gnu build, so it appears to > be something about the configured host / set of symbols / symbol versions > rather than a build environment issue. Specifically, it's something to do with MIPS omitting versions between GLIBC_2.0 and GLIBC_2.2. If you add sysdeps/i386/shlib-versions reading i.86-.*-linux.* libc=6 GLIBC_2.0 GLIBC_2.2 then you get the symbols wrongly moved from GCC_3.0 to GLIBC_2.0 on an i686-pc-linux-gnu build (I don't know if the build completes, but the broken libc.map is generated).
Sorry about that. I'll try to start debugging this tomorrow (Tuesday, US/Pacific). But I might not find enough time to do it before next week. If the mips breakage seems urgent, then it should be viable to revert my change. I'll start playing with the case you suggested for a modified i386 build and hope that fixing that covers the real mips case. I haven't found easily installable mips cross tools for the system where I do most of my libc debugging (based on Ubuntu 12.04.4). Thanks, Roland
diff --git a/elf/Versions b/elf/Versions index 2383992..23deda9 100644 --- a/elf/Versions +++ b/elf/Versions @@ -12,6 +12,9 @@ libc { dl_iterate_phdr; } %ifdef EXPORT_UNWIND_FIND_FDE + # Needed for SHLIB_COMPAT calls using this version. + GLIBC_2.2.5 { + } GCC_3.0 { __deregister_frame_info_bases; __register_frame_info_bases; __register_frame_info_table_bases; _Unwind_Find_FDE;