Build i386 __libc_do_syscall when PROF is defined

Need to provide i386 __libc_do_syscall when PROF is defined.
Define OPTIMIZE_FOR_GCC_5 for .S files so that it can be used
in libc-do-syscall.S.

	* sysdeps/unix/sysv/linux/i386/libc-do-syscall.S: Replace
	__GNUC_PREREQ (5,0) with OPTIMIZE_FOR_GCC_5.
	* sysdeps/unix/sysv/linux/i386/sysdep.h (OPTIMIZE_FOR_GCC_5):
	Moved before "#ifdef __ASSEMBLER__".
This commit is contained in:
H.J. Lu 2015-10-21 09:54:36 -07:00
parent 0a90a8f2b9
commit 95b097779a
3 changed files with 17 additions and 11 deletions

View File

@ -1,3 +1,10 @@
2015-10-21 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/unix/sysv/linux/i386/libc-do-syscall.S: Replace
__GNUC_PREREQ (5,0) with OPTIMIZE_FOR_GCC_5.
* sysdeps/unix/sysv/linux/i386/sysdep.h (OPTIMIZE_FOR_GCC_5):
Moved before "#ifdef __ASSEMBLER__".
2015-10-21 Joseph Myers <joseph@codesourcery.com>
[BZ #19156]

View File

@ -18,7 +18,7 @@
#include <sysdep.h>
#if !__GNUC_PREREQ (5,0)
#ifndef OPTIMIZE_FOR_GCC_5
/* %eax, %ecx, %edx and %esi contain the values expected by the kernel.
%edi points to a structure with the values of %ebx, %edi and %ebp. */

View File

@ -41,6 +41,15 @@
# undef I386_USE_SYSENTER
#endif
/* Since GCC 5 and above can properly spill %ebx with PIC when needed,
we can inline syscalls with 6 arguments if GCC 5 or above is used
to compile glibc. Disable GCC 5 optimization when compiling for
profiling since asm ("ebp") can't be used to put the 6th argument
in %ebp for syscall. */
#if __GNUC_PREREQ (5,0) && !defined PROF
# define OPTIMIZE_FOR_GCC_5
#endif
#ifdef __ASSEMBLER__
/* Linux uses a negative return value to indicate syscall errors,
@ -227,16 +236,6 @@
extern int __syscall_error (int)
attribute_hidden __attribute__ ((__regparm__ (1)));
/* Since GCC 5 and above can properly spill %ebx with PIC when needed,
we can inline syscalls with 6 arguments if GCC 5 or above is used
to compile glibc. Disable GCC 5 optimization when compiling for
profiling since asm ("ebp") can't be used to put the 6th argument
in %ebp for syscall. */
#if __GNUC_PREREQ (5,0) && !defined PROF
# define OPTIMIZE_FOR_GCC_5
#endif
#ifndef OPTIMIZE_FOR_GCC_5
/* We need some help from the assembler to generate optimal code. We
define some macros here which later will be used. */