about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <rafael@espindo.la>2018-11-30 14:32:35 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-11-30 14:32:35 -0800
commit15b8d67e29142251a30576b5ab469051a8833e97 (patch)
tree48c205d144aa23f1ff7d9b87c0c7e594675d2925
parent5e63c240a22c70d928e5c645f913d59074afd329 (diff)
downloadglibc-15b8d67e29142251a30576b5ab469051a8833e97.tar.gz
glibc-15b8d67e29142251a30576b5ab469051a8833e97.tar.xz
glibc-15b8d67e29142251a30576b5ab469051a8833e97.zip
Enable VDSO on i386 statically linked programs
	[BZ #19767]
	* sysdeps/unix/sysv/linux/i386/init-first.c: Don't check SHARED.
	* sysdeps/unix/sysv/linux/i386/sysdep.h (ALWAYS_USE_VSYSCALL):
	New.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/i386/init-first.c12
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h3
3 files changed, 15 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index bb53b641a8..87d3863e7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2018-11-30  Rafael Ávila de Espíndola  <rafael@espindo.la>
+
+	[BZ #19767]
+	* sysdeps/unix/sysv/linux/i386/init-first.c: Don't check SHARED.
+	* sysdeps/unix/sysv/linux/i386/sysdep.h (ALWAYS_USE_VSYSCALL):
+	New.
+
 2018-11-30  Florian Weimer  <fweimer@redhat.com>
 
 	* scripts/abilist.awk: Print "0x0" for size 0. Handle "g"/"D".
diff --git a/sysdeps/unix/sysv/linux/i386/init-first.c b/sysdeps/unix/sysv/linux/i386/init-first.c
index 82ac7f5cf2..6e62dd5923 100644
--- a/sysdeps/unix/sysv/linux/i386/init-first.c
+++ b/sysdeps/unix/sysv/linux/i386/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 <sysdep-vdso.h>
+#include <time.h>
+#include <sysdep.h>
+#include <dl-vdso.h>
+#include <sysdep-vdso.h>
 
 long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *)
   attribute_hidden;
@@ -44,7 +43,6 @@ __vdso_platform_setup (void)
   VDSO_SYMBOL (clock_gettime) = 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/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 3255cc78b8..3891663a64 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -19,6 +19,9 @@
 #ifndef _LINUX_I386_SYSDEP_H
 #define _LINUX_I386_SYSDEP_H 1
 
+/* Always enable vsyscalls on i386 */
+#define ALWAYS_USE_VSYSCALL 1
+
 /* There is some commonality.  */
 #include <sysdeps/unix/sysv/linux/sysdep.h>
 #include <sysdeps/unix/i386/sysdep.h>