GNU C Library master sources branch master updated. glibc-2.24-269-g7164580
azanella@sourceware.org
azanella@sourceware.org
Wed Oct 12 16:21:00 GMT 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 716458049510215451d25ac131858b6bdf30f99f (commit)
from 6a824767d8948faf10d8d3a602eb4f2a59431601 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=716458049510215451d25ac131858b6bdf30f99f
commit 716458049510215451d25ac131858b6bdf30f99f
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Wed Oct 12 13:06:22 2016 -0300
Fix posix_fadvise64 build on mips64n64
Recent binutils versions (at least 2.27) complains about libc.so
when linking sotruss-lib.so with:
libc.so:(*IND*+0x0): multiple definition of `posix_fadvise64@GLIBC_2.2'
libc.so::(.text+0xcf940): first defined here
libc.so:(*IND*+0x0): multiple definition of `posix_fadvise64'
collect2: error: ld returned 1 exit status
Dynamic symbols for libc.so shows (readelf --dyn-syms):
262: 000000000010b950 28 FUNC GLOBAL DEFAULT 12 posix_fadvise64@GLIBC_2.2
417: 000000000010b950 28 FUNC WEAK DEFAULT 12 posix_fadvise64@@GLIBC_2.2
1505: 000000000010b950 28 FUNC GLOBAL DEFAULT 12 posix_fadvise64@@GLIBC_2.3.3
That is, two separate definitions at version GLIBC_2.2. The issue is
sysdeps/unix/sysv/linux/posix_fadvise64.c creates posix_fadvise64 weak_alias,
while sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c then adds
compat_symbol / versioned_symbol calls.
The patch remove the weak_alias definition on mips64 specific version so
direct weak_alias is disabled.
Checked on mips64n64 build with binutils 2.27.51.20161012.
* sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c:
Undefine weak_alias.
diff --git a/ChangeLog b/ChangeLog
index 81dd89f..2ca9eb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-12 Adhemerval Zanela <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c:
+ Undefine weak_alias and add a comment why mips64 require
+ versioning.
+
2016-10-12 H.J. Lu <hongjiu.lu@intel.com>
[BZ #20647]
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
index d7aab25..bc756e9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
@@ -15,11 +15,16 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#undef weak_alias
+#define weak_alias(a, b)
#undef strong_alias
#define strong_alias(a, b)
#include <sysdeps/unix/sysv/linux/posix_fadvise64.c>
+/* Although both posix_fadvise and posix_fadvise64 has the same semantic
+ on mips64, there were were releases with both symbol versions (BZ#14044).
+ So we need to continue export them. */
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
_strong_alias (__posix_fadvise64_l64, __posix_fadvise64_l32);
compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
.../sysv/linux/mips/mips64/n64/posix_fadvise64.c | 5 +++++
2 files changed, 11 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources
More information about the Glibc-cvs
mailing list