This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.24-269-g7164580


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]