[PATCH roland/Versions.def] Get rid of Versions.def source file
Joseph S. Myers
joseph@codesourcery.com
Sat Mar 22 00:25:00 GMT 2014
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.
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;
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list