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 google/grte/v5-2.27/master updated. glibc-2.27-49-g0f8e406


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, google/grte/v5-2.27/master has been updated
       via  0f8e406b99c9a084568f03fa695ea028d7d5681e (commit)
       via  575707c22f901b0adcce2478cc32da62afff287e (commit)
       via  0b9f0ac640d64233e468ed2ff61ae080cdccb859 (commit)
       via  850dac931fa0634b1ac0b1c1c756aa968d649da0 (commit)
       via  e101a06b8c525489edfff2e9777a6f9b6b81e35d (commit)
       via  bd4580345c7fb4f65f5e1ed008b582bc8daf0819 (commit)
       via  6d87553406fb095a163764c41a4a097fbfbcaf0d (commit)
      from  259eaf23ad74ea08bf4286c8697d020756258620 (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=0f8e406b99c9a084568f03fa695ea028d7d5681e

commit 0f8e406b99c9a084568f03fa695ea028d7d5681e
Author: Stan Shebs <stanshebs@google.com>
Date:   Fri Mar 2 08:39:57 2018 -0800

    Bypass gettimeofday ifunc if using clang

diff --git a/sysdeps/unix/sysv/linux/x86/gettimeofday.c b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
index e125859..614971b 100644
--- a/sysdeps/unix/sysv/linux/x86/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
@@ -18,7 +18,8 @@
 
 #include <sys/time.h>
 
-#ifdef SHARED
+/* Clang ifunc support works, but differently enough that this code breaks.  */
+#if defined(SHARED) && !defined(__clang__)
 
 # include <dl-vdso.h>
 # include <errno.h>

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=575707c22f901b0adcce2478cc32da62afff287e

commit 575707c22f901b0adcce2478cc32da62afff287e
Author: Stan Shebs <stanshebs@google.com>
Date:   Tue Feb 27 12:02:53 2018 -0800

    Add a workaround for lld placing the _GLOBAL_OFFSET_TABLE_ at an unexpected location

diff --git a/elf/rtld.c b/elf/rtld.c
index 9040d74..1fe343e 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -512,6 +512,16 @@ _dl_start (void *arg)
 
   /* Read our own dynamic section and fill in the info array.  */
   bootstrap_map.l_ld = (void *) bootstrap_map.l_addr + elf_machine_dynamic ();
+  /* As a workaround for lld placing _GLOBAL_OFFSET_TABLE at an
+     unexpected location, detect when the bootstrap map base and
+     dynamic section have the same address, and patch the base value
+     back to something plausible.  This is probably x86_64-specific,
+     and should go away once lld does the right thing.  */
+#ifdef HAVE_EHDR_START
+  extern const ElfW(Ehdr) __ehdr_start __attribute__ ((visibility ("hidden")));
+  if (bootstrap_map.l_ld == ((void *) bootstrap_map.l_addr))
+    bootstrap_map.l_addr -= (((char *) bootstrap_map.l_addr) - ((char *) &__ehdr_start));
+#endif
   elf_get_dynamic_info (&bootstrap_map, NULL);
 
 #if NO_TLS_OFFSET != 0

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0b9f0ac640d64233e468ed2ff61ae080cdccb859

commit 0b9f0ac640d64233e468ed2ff61ae080cdccb859
Author: Stan Shebs <stanshebs@google.com>
Date:   Tue Feb 27 11:22:13 2018 -0800

    Add workarounds for clang and lld problems

diff --git a/elf/Makefile b/elf/Makefile
index 6aefe50..f1fda1d 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -62,6 +62,9 @@ rtld-routines	= rtld $(all-dl-routines) dl-sysdep dl-environ dl-minimal \
   dl-error-minimal dl-conflict
 all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
 
+# Hack around a clang alias+optimization problem.
+CFLAGS-rtld.c += -O0
+
 CFLAGS-dl-runtime.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-dl-lookup.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-dl-iterate-phdr.c += $(uses-callbacks)
@@ -282,6 +285,8 @@ $(objpfx)tst-gnu2-tls1: $(objpfx)tst-gnu2-tls1mod.so
 tst-gnu2-tls1mod.so-no-z-defs = yes
 CFLAGS-tst-gnu2-tls1mod.c += -mtls-dialect=gnu2
 endif
+# Somehow configure is failing to notice that lld can't do protected data.
+ifeq ($(with-lld),no)
 ifeq (yes,$(have-protected-data))
 modules-names += tst-protected1moda tst-protected1modb
 tests += tst-protected1a tst-protected1b
@@ -296,6 +301,7 @@ tst-protected1modb.so-no-z-defs = yes
 test-xfail-tst-protected1a = yes
 test-xfail-tst-protected1b = yes
 endif
+endif # lld
 ifeq (yesyes,$(have-fpie)$(build-shared))
 modules-names += tst-piemod1
 tests += tst-pie1 tst-pie2

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=850dac931fa0634b1ac0b1c1c756aa968d649da0

commit 850dac931fa0634b1ac0b1c1c756aa968d649da0
Author: Stan Shebs <stanshebs@google.com>
Date:   Tue Feb 27 11:17:27 2018 -0800

    Skip a test that lld cannot handle

diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index 04f04cc..049f891 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -91,11 +91,14 @@ test-extras += tst-audit4-aux tst-audit10-aux \
 extra-test-objs += tst-audit4-aux.o tst-audit10-aux.o \
 		   tst-avx-aux.o tst-avx512-aux.o
 
+# lld does not like the insert after in the linker script.
+ifeq ($(with-lld),no)
 ifeq ($(have-insert),yes)
 tests += tst-split-dynreloc
 LDFLAGS-tst-split-dynreloc = -Wl,-T,$(..)sysdeps/x86_64/tst-split-dynreloc.lds
 tst-split-dynreloc-ENV = LD_BIND_NOW=1
 endif
+endif
 
 modules-names += tst-auditmod3a tst-auditmod3b \
 		tst-auditmod4a tst-auditmod4b \

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e101a06b8c525489edfff2e9777a6f9b6b81e35d

commit e101a06b8c525489edfff2e9777a6f9b6b81e35d
Author: Stan Shebs <stanshebs@google.com>
Date:   Mon Feb 26 13:50:53 2018 -0800

    Disable non-opt error temporarily, and __sec_comment for clang

diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index eb4dbbe..c40f5fb 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -71,9 +71,12 @@
 #define _LIBC	1
 
 /* Some files must be compiled with optimization on.  */
+/* This is a nuisance while experimenting; re-enable when done.  */
+#if 0
 #if !defined __ASSEMBLER__ && !defined __OPTIMIZE__
 # error "glibc cannot be compiled without optimization"
 #endif
+#endif
 
 /* -ffast-math cannot be applied to the C library, as it alters the ABI.
    Some test components that use -ffast-math are currently not part of
@@ -207,11 +210,16 @@
 
 /* Tacking on "\n\t#" to the section name makes gcc put it's bogus
    section attributes on what looks like a comment to the assembler.  */
+/* Clang sees newline and helpfully adds additional quotes; disable that.  */
+#if defined(__clang__)
+# define __sec_comment
+#else
 #ifdef HAVE_SECTION_QUOTES
 # define __sec_comment "\"\n\t#\""
 #else
 # define __sec_comment "\n\t#"
 #endif
+#endif
 #define link_warning(symbol, msg) \
   __make_section_unallocated (".gnu.warning." #symbol) \
   static const char __evoke_link_warning_##symbol[]	\

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bd4580345c7fb4f65f5e1ed008b582bc8daf0819

commit bd4580345c7fb4f65f5e1ed008b582bc8daf0819
Author: Stan Shebs <stanshebs@google.com>
Date:   Tue Feb 20 09:13:13 2018 -0800

    Remove a testing hack

diff --git a/elf/rtld.c b/elf/rtld.c
index 5d4f013..9040d74 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -324,7 +324,7 @@ DL_SYSINFO_IMPLEMENTATION
    is fine, too.  The latter is important here.  We can avoid setting
    up a temporary link map for ld.so if we can mark _rtld_global as
    hidden.  */
-#if 0 //def PI_STATIC_AND_HIDDEN
+#ifdef PI_STATIC_AND_HIDDEN
 # define DONT_USE_BOOTSTRAP_MAP	1
 #endif
 

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6d87553406fb095a163764c41a4a097fbfbcaf0d

commit 6d87553406fb095a163764c41a4a097fbfbcaf0d
Author: Stan Shebs <stanshebs@google.com>
Date:   Tue Feb 20 09:12:01 2018 -0800

    Remove debugging hack

diff --git a/sysdeps/x86_64/fpu/svml_d_trig_data.h b/sysdeps/x86_64/fpu/svml_d_trig_data.h
index ca3697f..0937b99 100644
--- a/sysdeps/x86_64/fpu/svml_d_trig_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_trig_data.h
@@ -67,9 +67,6 @@
 .err
 .endif
 #endif
-.short 0x1234
-.long .-__svml_d_trig_data
-.short 0x4321
 .rept 8
 .quad \value
 .endr

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

Summary of changes:
 elf/Makefile                               |    6 ++++++
 elf/rtld.c                                 |   12 +++++++++++-
 include/libc-symbols.h                     |    8 ++++++++
 sysdeps/unix/sysv/linux/x86/gettimeofday.c |    3 ++-
 sysdeps/x86_64/Makefile                    |    3 +++
 sysdeps/x86_64/fpu/svml_d_trig_data.h      |    3 ---
 6 files changed, 30 insertions(+), 5 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]