GNU C Library master sources branch master updated. glibc-2.28.9000-315-g1e8bdc3

hjl@sourceware.org hjl@sourceware.org
Sat Nov 24 00:51:00 GMT 2018


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  1e8bdc3a2b3e8d6e26efd14d44ae71d21d8366fe (commit)
      from  1283c478aa0a9b3d84320db5745a61b7f61b360c (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=1e8bdc3a2b3e8d6e26efd14d44ae71d21d8366fe

commit 1e8bdc3a2b3e8d6e26efd14d44ae71d21d8366fe
Author: Rafael Ávila de Espíndola <rafael@espindo.la>
Date:   Fri Nov 23 15:34:15 2018 -0800

    Enable VDSO on x86_64 statically linked programs [BZ #19767]
    
    All the required code already existed, and some of it was already
    running.
    
    AT_SYSINFO_EHDR is processed if NEED_DL_SYSINFO_DSO is defined, but it
    looks like it always is. The call to setup_vdso is also unconditional,
    so all that was left to do was setup the function pointers and use
    them. This patch just deletes some #ifdef to enable that.
    
    	[BZ #19767]
    	* nptl/Makefile (tests-static): Add tst-cond11-static.
    	(tests): Likewise.
    	* nptl/tst-cond11-static.c: New File.
    	* sysdeps/unix/sysv/linux/Makefile (tests-static): Add
    	tst-affinity-static.
    	(tests): Likewise.
    	* sysdeps/unix/sysv/linux/sysdep-vdso.h: Check USE_VSYSCALL
    	instead of SHARED.
    	* sysdeps/unix/sysv/linux/sysdep.h (ALWAYS_USE_VSYSCALL): New.
    	(USE_VSYSCALL): Likewise.
    	* sysdeps/unix/sysv/linux/tst-affinity-static.c: New file.
    	* sysdeps/unix/sysv/linux/x86/libc-vdso.h: Check USE_VSYSCALL
    	instead of SHARED.
    	* sysdeps/unix/sysv/linux/x86_64/init-first.c: Don't check
    	SHARED.
    	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (ALWAYS_USE_VSYSCALL):
    	New.

diff --git a/ChangeLog b/ChangeLog
index f8f7672..04a507f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2018-11-23  Rafael Ávila de Espíndola  <rafael@espindo.la>
+
+	[BZ #19767]
+	* nptl/Makefile (tests-static): Add tst-cond11-static.
+	(tests): Likewise.
+	* nptl/tst-cond11-static.c: New File.
+	* sysdeps/unix/sysv/linux/Makefile (tests-static): Add
+	tst-affinity-static.
+	(tests): Likewise.
+	* sysdeps/unix/sysv/linux/sysdep-vdso.h: Check USE_VSYSCALL
+	instead of SHARED.
+	* sysdeps/unix/sysv/linux/sysdep.h (ALWAYS_USE_VSYSCALL): New.
+	(USE_VSYSCALL): Likewise.
+	* sysdeps/unix/sysv/linux/tst-affinity-static.c: New file.
+	* sysdeps/unix/sysv/linux/x86/libc-vdso.h: Check USE_VSYSCALL
+	instead of SHARED.
+	* sysdeps/unix/sysv/linux/x86_64/init-first.c: Don't check
+	SHARED.
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (ALWAYS_USE_VSYSCALL):
+	New.
+
 2018-11-23  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #23915]
diff --git a/nptl/Makefile b/nptl/Makefile
index 49b6faa..982e43a 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -449,9 +449,10 @@ link-libc-static := $(common-objpfx)libc.a $(static-gnulib) \
 tests-static += tst-locale1 tst-locale2 tst-stackguard1-static \
 		tst-cancel21-static tst-cancel24-static tst-cond8-static \
 		tst-mutex8-static tst-mutexpi8-static tst-sem11-static \
-		tst-sem12-static
+		tst-sem12-static tst-cond11-static
+
 tests += tst-cancel21-static tst-cancel24-static \
-	 tst-cond8-static
+	 tst-cond8-static tst-cond11-static
 tests-internal += tst-sem11-static tst-sem12-static tst-stackguard1-static
 xtests-static += tst-setuid1-static
 
diff --git a/nptl/tst-cond11-static.c b/nptl/tst-cond11-static.c
new file mode 100644
index 0000000..9bccb8e
--- /dev/null
+++ b/nptl/tst-cond11-static.c
@@ -0,0 +1 @@
+#include "tst-cond11.c"
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 72b6b64..362cf3b 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -146,6 +146,9 @@ sysdep_routines += sched_getcpu oldglob
 
 tests += tst-affinity tst-affinity-pid
 
+tests-static := tst-affinity-static
+tests += $(tests-static)
+
 CFLAGS-fork.c = $(libio-mtsafe)
 CFLAGS-getpid.o = -fomit-frame-pointer
 CFLAGS-getpid.os = -fomit-frame-pointer
diff --git a/sysdeps/unix/sysv/linux/sysdep-vdso.h b/sysdeps/unix/sysv/linux/sysdep-vdso.h
index 7f894c5..1ee0657 100644
--- a/sysdeps/unix/sysv/linux/sysdep-vdso.h
+++ b/sysdeps/unix/sysv/linux/sysdep-vdso.h
@@ -26,7 +26,7 @@
      funcptr (args)
 #endif
 
-#if defined SHARED && defined HAVE_VSYSCALL
+#if USE_VSYSCALL && defined HAVE_VSYSCALL
 
 # include <libc-vdso.h>
 
@@ -84,6 +84,6 @@
 # define INTERNAL_VSYSCALL(name, err, nr, args...) \
    INTERNAL_SYSCALL (name, err, nr, ##args)
 
-#endif /* defined SHARED && defined HAVE_VSYSCALL */
+#endif /* USE_VSYSCALL && defined HAVE_VSYSCALL */
 
 #endif /* SYSDEP_VDSO_LINUX_H  */
diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index 4fd0a9b..9655436 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -18,6 +18,13 @@
 #include <bits/wordsize.h>
 #include <kernel-features.h>
 
+/* By default only shared builds use vdso. */
+#ifndef ALWAYS_USE_VSYSCALL
+#define ALWAYS_USE_VSYSCALL 0
+#endif
+
+#define USE_VSYSCALL (defined (SHARED) || ALWAYS_USE_VSYSCALL)
+
 /* Set error number and return -1.  A target may choose to return the
    internal function, __syscall_error, which sets errno and returns -1.
    We use -1l, instead of -1, so that it can be casted to (void *).  */
diff --git a/sysdeps/unix/sysv/linux/tst-affinity-static.c b/sysdeps/unix/sysv/linux/tst-affinity-static.c
new file mode 100644
index 0000000..4022ea3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-affinity-static.c
@@ -0,0 +1 @@
+#include "tst-affinity.c"
diff --git a/sysdeps/unix/sysv/linux/x86/libc-vdso.h b/sysdeps/unix/sysv/linux/x86/libc-vdso.h
index 6f86073..b9b4b93 100644
--- a/sysdeps/unix/sysv/linux/x86/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/x86/libc-vdso.h
@@ -22,7 +22,7 @@
 #include <time.h>
 #include <sys/time.h>
 
-#ifdef SHARED
+#if USE_VSYSCALL
 
 # include <sysdep-vdso.h>
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c
index 2320505..ad19f4b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/init-first.c
+++ b/sysdeps/unix/sysv/linux/x86_64/init-first.c
@@ -16,11 +16,10 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifdef SHARED
-# include <time.h>
-# include <sysdep.h>
-# include <dl-vdso.h>
-# include <libc-vdso.h>
+#include <time.h>
+#include <sysdep.h>
+#include <dl-vdso.h>
+#include <libc-vdso.h>
 
 long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
   attribute_hidden;
@@ -46,7 +45,6 @@ __vdso_platform_setup (void)
   VDSO_SYMBOL(getcpu) = p;
 }
 
-# define VDSO_SETUP __vdso_platform_setup
-#endif
+#define VDSO_SETUP __vdso_platform_setup
 
 #include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index f07eb04..9f49347 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -18,6 +18,9 @@
 #ifndef _LINUX_X86_64_SYSDEP_H
 #define _LINUX_X86_64_SYSDEP_H 1
 
+/* Always enable vsyscalls on x86_64 */
+#define ALWAYS_USE_VSYSCALL 1
+
 /* There is some commonality.  */
 #include <sysdeps/unix/sysv/linux/sysdep.h>
 #include <sysdeps/unix/x86_64/sysdep.h>

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

Summary of changes:
 ChangeLog                                     |   21 +++++++++++++++++++++
 nptl/Makefile                                 |    5 +++--
 nptl/tst-cond11-static.c                      |    1 +
 sysdeps/unix/sysv/linux/Makefile              |    3 +++
 sysdeps/unix/sysv/linux/sysdep-vdso.h         |    4 ++--
 sysdeps/unix/sysv/linux/sysdep.h              |    7 +++++++
 sysdeps/unix/sysv/linux/tst-affinity-static.c |    1 +
 sysdeps/unix/sysv/linux/x86/libc-vdso.h       |    2 +-
 sysdeps/unix/sysv/linux/x86_64/init-first.c   |   12 +++++-------
 sysdeps/unix/sysv/linux/x86_64/sysdep.h       |    3 +++
 10 files changed, 47 insertions(+), 12 deletions(-)
 create mode 100644 nptl/tst-cond11-static.c
 create mode 100644 sysdeps/unix/sysv/linux/tst-affinity-static.c


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list