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.26-29-g627c69c


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  627c69c838e75d69f46a7cc7dd2bafca03adbf60 (commit)
      from  fc11ff8d0acebbf0802854156d45cb1d8bb7c079 (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=627c69c838e75d69f46a7cc7dd2bafca03adbf60

commit 627c69c838e75d69f46a7cc7dd2bafca03adbf60
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Aug 4 12:30:22 2017 -0700

    i386: Update I386_USE_SYSENTER for early PIC syscall
    
    Define I386_USE_SYSENTER to 0 or 1 so that special versions of syscalls
    with "int $0x80" can be provided for static PIE during self relocation.
    Also check PIC instead SHARED for PIC version of syscall macros.
    
    	* sysdeps/unix/sysv/linux/i386/sysdep.h (I386_USE_SYSENTER):
    	Define to I386_USE_SYSENTER to 0 or 1 if not defined.
    	(ENTER_KERNEL): Check if I386_USE_SYSENTER is 1 and check PIC.
    	(INTERNAL_SYSCALL_MAIN_INLINE): Likewise.
    	(INTERNAL_SYSCALL_NCS): Likewise.
    	(LOADARGS_1): Likewise.
    	(LOADARGS_5): Likewise.
    	(RESTOREARGS_1): Likewise.
    	(RESTOREARGS_5): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 14dd0ba..6a50d23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2017-08-04  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/i386/sysdep.h (I386_USE_SYSENTER):
+	Define to I386_USE_SYSENTER to 0 or 1 if not defined.
+	(ENTER_KERNEL): Check if I386_USE_SYSENTER is 1 and check PIC.
+	(INTERNAL_SYSCALL_MAIN_INLINE): Likewise.
+	(INTERNAL_SYSCALL_NCS): Likewise.
+	(LOADARGS_1): Likewise.
+	(LOADARGS_5): Likewise.
+	(RESTOREARGS_1): Likewise.
+	(RESTOREARGS_5): Likewise.
+
+2017-08-04  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/memmove.S (MEMCPY_SYMBOL): Don't check SHARED.
 	(MEMPCPY_SYMBOL): Likewise.
 	* sysdeps/x86_64/multiarch/ifunc-impl-list.c
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 449b23e..c455c9b 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -34,11 +34,13 @@
 #undef SYS_ify
 #define SYS_ify(syscall_name)	__NR_##syscall_name
 
-#if defined USE_DL_SYSINFO \
-    && (IS_IN (libc) || IS_IN (libpthread))
-# define I386_USE_SYSENTER	1
-#else
-# undef I386_USE_SYSENTER
+#ifndef I386_USE_SYSENTER
+# if defined USE_DL_SYSINFO \
+     && (IS_IN (libc) || IS_IN (libpthread))
+#  define I386_USE_SYSENTER	1
+# else
+#  define I386_USE_SYSENTER	0
+# endif
 #endif
 
 /* Since GCC 5 and above can properly spill %ebx with PIC when needed,
@@ -110,8 +112,8 @@
 
 /* The original calling convention for system calls on Linux/i386 is
    to use int $0x80.  */
-#ifdef I386_USE_SYSENTER
-# ifdef SHARED
+#if I386_USE_SYSENTER
+# ifdef PIC
 #  define ENTER_KERNEL call *%gs:SYSINFO_OFFSET
 # else
 #  define ENTER_KERNEL call *_dl_sysinfo
@@ -357,9 +359,9 @@ struct libc_do_syscall_args
     register unsigned int resultvar;					      \
     INTERNAL_SYSCALL_MAIN_##nr (name, err, args);			      \
     (int) resultvar; })
-#ifdef I386_USE_SYSENTER
+#if I386_USE_SYSENTER
 # ifdef OPTIMIZE_FOR_GCC_5
-#  ifdef SHARED
+#  ifdef PIC
 #   define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
     LOADREGS_##nr(args)							\
     asm volatile (							\
@@ -395,7 +397,7 @@ struct libc_do_syscall_args
     (int) resultvar; })
 #  endif
 # else /* GCC 5  */
-#  ifdef SHARED
+#  ifdef PIC
 #   define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
     EXTRAVAR_##nr							      \
     asm volatile (							      \
@@ -494,7 +496,7 @@ struct libc_do_syscall_args
 
 #define LOADARGS_0
 #ifdef __PIC__
-# if defined I386_USE_SYSENTER && defined SHARED
+# if I386_USE_SYSENTER && defined PIC
 #  define LOADARGS_1 \
     "bpushl .L__X'%k3, %k3\n\t"
 #  define LOADARGS_5 \
@@ -521,7 +523,7 @@ struct libc_do_syscall_args
 
 #define RESTOREARGS_0
 #ifdef __PIC__
-# if defined I386_USE_SYSENTER && defined SHARED
+# if I386_USE_SYSENTER && defined PIC
 #  define RESTOREARGS_1 \
     "bpopl .L__X'%k3, %k3\n\t"
 #  define RESTOREARGS_5 \

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

Summary of changes:
 ChangeLog                             |   12 ++++++++++++
 sysdeps/unix/sysv/linux/i386/sysdep.h |   26 ++++++++++++++------------
 2 files changed, 26 insertions(+), 12 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]