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.25-618-gf300dc7


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  f300dc7358e785dd92259514f57acd10f695d142 (commit)
      from  d57cb31910ca5c200e4172276749a7f8bd17ae3c (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=f300dc7358e785dd92259514f57acd10f695d142

commit f300dc7358e785dd92259514f57acd10f695d142
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jun 28 04:03:57 2017 -0700

    Support building glibc with gold 1.14 or above [BZ #14995]
    
    This patch changes configure.ac to allow gold 1.14 or above to be used
    to configire glibc so that gold glibc bugs can be fixed.  Tested with
    
    CC="gcc -fuse-ld=gold" CXX="g++ -fuse-ld=gold"
    
    on Fedora 25 with gold 1.14 (20170623).  Gold 1.14 was first released
    in binutils 2.28.
    
    On x86-64, for "make check", I got
    
    Error in `/export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload1': double free or corruption (fasttop): 0x00000000008755f0 ***
    ======= Backtrace: =========
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(+0x772fb)[0x7f85225b52fb]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(+0x7d6c6)[0x7f85225bb6c6]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(+0x7df0e)[0x7f85225bbf0e]
    /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so.2(+0x182d)[0x7f85226e682d]
    /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so.2(dlclose+0x1f)[0x7f85226e623f]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload2.so(+0x933)[0x7f8522539933]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so(+0xfd1a)[0x7f85226fbd1a]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(+0x3c5e0)[0x7f852257a5e0]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(+0x3c63a)[0x7f852257a63a]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload2.so(+0x9aa)[0x7f85225399aa]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so(+0xf74a)[0x7f85226fb74a]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so(+0xf85b)[0x7f85226fb85b]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so(+0x13e98)[0x7f85226ffe98]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(_dl_catch_error+0x71)[0x7f85226643c1]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so(+0x13639)[0x7f85226ff639]
    /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so.2(+0x1156)[0x7f85226e6156]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(_dl_catch_error+0x71)[0x7f85226643c1]
    /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so.2(+0x1789)[0x7f85226e6789]
    /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so.2(dlopen+0x32)[0x7f85226e61e2]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload1[0x4009ca]
    /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so.6(__libc_start_main+0xf1)[0x7f8522565231]
    /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload1[0x400a5a]
    ======= Memory map: ========
    00400000-00401000 r-xp 00000000 08:11 26334965                           /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload1
    00401000-00402000 r--p 00000000 08:11 26334965                           /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload1
    00402000-00403000 rw-p 00001000 08:11 26334965                           /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload1
    00875000-00896000 rw-p 00000000 00:00 0                                  [heap]
    7f851c000000-7f851c021000 rw-p 00000000 00:00 0
    7f851c021000-7f8520000000 ---p 00000000 00:00 0
    7f85222f3000-7f8522309000 r-xp 00000000 08:02 136658                     /usr/lib64/libgcc_s-6.3.1-20170216.so.1
    7f8522309000-7f8522508000 ---p 00016000 08:02 136658                     /usr/lib64/libgcc_s-6.3.1-20170216.so.1
    7f8522508000-7f8522509000 r--p 00015000 08:02 136658                     /usr/lib64/libgcc_s-6.3.1-20170216.so.1
    7f8522509000-7f852250a000 rw-p 00016000 08:02 136658                     /usr/lib64/libgcc_s-6.3.1-20170216.so.1
    7f8522539000-7f852253a000 r-xp 00000000 08:11 26334619                   /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload2.so
    7f852253a000-7f852253b000 r--p 00000000 08:11 26334619                   /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload2.so
    7f852253b000-7f852253c000 rw-p 00001000 08:11 26334619                   /export/build/gnu/glibc-gold/build-x86_64-linux/elf/constload2.so
    7f852253c000-7f852253e000 rw-p 00000000 00:00 0
    7f852253e000-7f85226da000 r-xp 00000000 08:11 26309973                   /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so
    7f85226da000-7f85226db000 ---p 0019c000 08:11 26309973                   /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so
    7f85226db000-7f85226de000 r--p 0019c000 08:11 26309973                   /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so
    7f85226de000-7f85226e1000 rw-p 0019f000 08:11 26309973                   /export/build/gnu/glibc-gold/build-x86_64-linux/libc.so
    7f85226e1000-7f85226e5000 rw-p 00000000 00:00 0
    7f85226e5000-7f85226e8000 r-xp 00000000 08:11 26313777                   /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so
    7f85226e8000-7f85226e9000 r--p 00002000 08:11 26313777                   /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so
    7f85226e9000-7f85226ea000 rw-p 00003000 08:11 26313777                   /export/build/gnu/glibc-gold/build-x86_64-linux/dlfcn/libdl.so
    7f85226ea000-7f85226ec000 rw-p 00000000 00:00 0
    7f85226ec000-7f8522711000 r-xp 00000000 08:11 26309972                   /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so
    7f8522711000-7f8522712000 rw-p 00000000 00:00 0
    7f8522712000-7f8522713000 r--p 00025000 08:11 26309972                   /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so
    7f8522713000-7f8522714000 rw-p 00026000 08:11 26309972                   /export/build/gnu/glibc-gold/build-x86_64-linux/elf/ld.so
    7f8522714000-7f8522715000 rw-p 00000000 00:00 0
    7ffc5a2bd000-7ffc5a2df000 rw-p 00000000 00:00 0                          [stack]
    7ffc5a32c000-7ffc5a32e000 r--p 00000000 00:00 0                          [vvar]
    7ffc5a32e000-7ffc5a330000 r-xp 00000000 00:00 0                          [vdso]
    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
    
    and
    
    make[4]: *** [/export/build/gnu/glibc-gold/build-x86_64-linux/elf/vismain] Error 1
    
    This is because gold doesn't support protected data symbols:
    
    configure:5672: checking linker support for protected data symbol
    configure:5682: gcc -fuse-ld=gold -nostdlib -nostartfiles -fno-stack-protector -fPIC -shared conftest.c -o conftest.so
    configure:5685: $? = 0
    configure:5692: gcc -fuse-ld=gold -nostdlib -nostartfiles -fno-stack-protector conftest.c -o conftest conftest.so
    /usr/local/bin/ld.gold: error: /tmp/ccXWoofs.o: cannot make copy relocation for protected symbol 'bar', defined in conftest.so
    collect2: error: ld returned 1 exit status
    
    make[4]: *** [/export/build/gnu/glibc-gold/build-x86_64-linux/elf/tst-split-dynreloc] Error 1
    
    This is because gold doesn't support INSERT in linker script:
    
    https://sourceware.org/bugzilla/show_bug.cgi?id=21676
    
    The total failures are
    
    FAIL: dlfcn/bug-dl-leaf
    FAIL: elf/constload1
    FAIL: elf/global
    FAIL: elf/ifuncmain1
    FAIL: elf/ifuncmain1pic
    FAIL: elf/ifuncmain1pie
    FAIL: elf/ifuncmain1vis
    FAIL: elf/ifuncmain1vispic
    FAIL: elf/ifuncmain1vispie
    FAIL: elf/ifuncmain3
    FAIL: elf/initfirst
    FAIL: elf/preloadtest
    FAIL: elf/tst-audit11
    FAIL: elf/tst-audit12
    FAIL: elf/tst-audit4
    FAIL: elf/tst-audit5
    FAIL: elf/tst-audit6
    FAIL: elf/tst-audit7
    FAIL: elf/tst-dlmodcount
    FAIL: elf/tst-dlmopen1
    FAIL: elf/tst-dlmopen3
    FAIL: elf/tst-dlopenrpath
    FAIL: elf/tst-latepthread
    FAIL: elf/tst-leaks1-mem
    FAIL: elf/tst-nodelete-dlclose
    FAIL: elf/unload6
    FAIL: nss/test-netdb
    FAIL: nss/tst-nss-test1
    FAIL: posix/tst-getaddrinfo5
    
    	[BZ #14995]
    	* configure.ac: Allow gold 1.14 or above to configire glibc
    	* configure: Regenerated.

diff --git a/ChangeLog b/ChangeLog
index 7bcff3b..dc781f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-06-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #14995]
+	* configure.ac: Allow gold 1.14 or above to configire glibc
+	* configure: Regenerated.
+
 2017-06-28  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #21457]
diff --git a/configure b/configure
index 97a2dad..b55fc92 100755
--- a/configure
+++ b/configure
@@ -4662,7 +4662,74 @@ if test $ac_verc_fail = yes; then
   AS=: critic_missing="$critic_missing as"
 fi
 
-for ac_prog in $LD
+
+if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
+  # Accept gold 1.14 or higher
+  for ac_prog in $LD
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LD="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LD=$ac_cv_prog_LD
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$LD" && break
+done
+
+if test -z "$LD"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
+$as_echo_n "checking version of $LD... " >&6; }
+  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU gold.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  LD=: critic_missing="$critic_missing GNU gold"
+fi
+
+else
+  for ac_prog in $LD
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -4722,9 +4789,10 @@ $as_echo_n "checking version of $LD... " >&6; }
 $as_echo "$ac_prog_version" >&6; }
 fi
 if test $ac_verc_fail = yes; then
-  LD=: critic_missing="$critic_missing ld"
+  LD=: critic_missing="$critic_missing GNU ld"
 fi
 
+fi
 
 # These programs are version sensitive.
 
diff --git a/configure.ac b/configure.ac
index 16e97d3..5f62ecb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1076,10 +1076,19 @@ AC_CHECK_PROG_VER(AS, $AS, --version,
 		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
 		  [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
 		  AS=: critic_missing="$critic_missing as")
-AC_CHECK_PROG_VER(LD, $LD, --version,
-		  [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
-		  [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
-		  LD=: critic_missing="$critic_missing ld")
+
+if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
+  # Accept gold 1.14 or higher
+  AC_CHECK_PROG_VER(LD, $LD, --version,
+		    [GNU gold.* \([0-9][0-9]*\.[0-9.]*\)],
+		    [1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*],
+		    LD=: critic_missing="$critic_missing GNU gold")
+else
+  AC_CHECK_PROG_VER(LD, $LD, --version,
+		    [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
+		    [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
+		    LD=: critic_missing="$critic_missing GNU ld")
+fi
 
 # These programs are version sensitive.
 AC_CHECK_TOOL_PREFIX

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog    |    6 +++++
 configure    |   72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 configure.ac |   17 ++++++++++---
 3 files changed, 89 insertions(+), 6 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]