This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [tile] bug fix for firstversions.awk
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Chris Metcalf <cmetcalf at tilera dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Wed, 25 Jan 2012 23:40:17 +0000 (UTC)
- Subject: Re: [tile] bug fix for firstversions.awk
- References: <201111100054.pAA0sf6u025585@farm-0002.internal.tilera.com><201201252127.q0PLRkHA027120@farm-0002.internal.tilera.com>
On Wed, 25 Jan 2012, Chris Metcalf wrote:
> This change didn't rouse any discussion when I posted it the first
> time, but it is required to be able to build the tile architecture
> libc properly, due to the relatively novel use of "GLIBC_2.12
> GLIBC_2.15" in the shlib-versions file.
>
> 2012-01-25 Chris Metcalf <cmetcalf@tilera.com>
>
> * scripts/firstversions.awk: Fix bug in script that caused a version
> not to be emitted (libm's 2.12) when the actual versions mentioned
> in the Versions files don't include the architecture's first
> default (tile requests "GLIBC_2.12 GLIBC_2.15").
As best I understand this script (having fixed it a while back to work
with GLIBC_2.10 versions), I think this is correct, but as it's critical
to ABI compatibility I'd be more comfortable with testing that it doesn't
change the ABI for some existing targets. For example, build for x86_64
before and after the patch - and make sure the installed shared library
binaries from both builds are identical (supposing you used the same
source and build paths for each build). And do the same for MIPS, as a
target that uses its shlib-versions file to disable GLIBC_2.1 versions.
If both of those cases have no changes in the shared libraries resulting
from the patch, that's strong evidence that the patch is safe.
(Generating lists of symbols with objdump --dynamic-syms and
scripts/abilist.awk is another possibility for comparisons, but my
experience is that if the paths are the same and the actual compiled
source files don't change, then you are likely to get identical binaries.
Cases where the binaries get temporary file names, timestamps or other
such variable data embedded are however possible.)
--
Joseph S. Myers
joseph@codesourcery.com