From 93a0959ef261c92b5d9c337f1e4cb64bbe453a9a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 7 Apr 2020 06:44:37 -0700 Subject: [PATCH] i386: Remove build support for GCC older than GCC 6 Since GCC 6.2 or later is required to build glibc, remove build support for GCC older than GCC 6. Testd with GCC 6.4 and GCC 9.3. Reviewed-by: Adhemerval Zanella --- sysdeps/i386/sysdep.h | 2 -- sysdeps/i386/tls-macros.h | 37 +++------------------------ sysdeps/unix/sysv/linux/i386/sysdep.h | 17 +----------- 3 files changed, 4 insertions(+), 52 deletions(-) diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h index 6094af8fec..2f786a251b 100644 --- a/sysdeps/i386/sysdep.h +++ b/sysdeps/i386/sysdep.h @@ -18,8 +18,6 @@ #include -#include /* For __GNUC_PREREQ. */ - /* It is desirable that the names of PIC thunks match those used by GCC so that multiple copies are eliminated by the linker. Because GCC 4.6 and earlier use __i686 in the names, it is necessary to diff --git a/sysdeps/i386/tls-macros.h b/sysdeps/i386/tls-macros.h index 053cba05d1..9c1303dc45 100644 --- a/sysdeps/i386/tls-macros.h +++ b/sysdeps/i386/tls-macros.h @@ -1,5 +1,3 @@ -#include /* For __GNUC_PREREQ. */ - #define TLS_LE(x) \ ({ int *__l; \ asm ("movl %%gs:0,%0\n\t" \ @@ -7,15 +5,7 @@ : "=r" (__l)); \ __l; }) -#if defined PIC && !__GNUC_PREREQ (5,0) -# define TLS_IE(x) \ - ({ int *__l; \ - asm ("movl %%gs:0,%0\n\t" \ - "subl " #x "@gottpoff(%%ebx),%0" \ - : "=r" (__l)); \ - __l; }) -#else -# define TLS_IE(x) \ +#define TLS_IE(x) \ ({ int *__l, __b; \ asm ("call 1f\n\t" \ ".subsection 1\n" \ @@ -27,18 +17,8 @@ "subl " #x "@gottpoff(%%ebx),%0" \ : "=r" (__l), "=&b" (__b)); \ __l; }) -#endif -#if defined PIC && !__GNUC_PREREQ (5,0) -# define TLS_LD(x) \ - ({ int *__l, __c, __d; \ - asm ("leal " #x "@tlsldm(%%ebx),%%eax\n\t" \ - "call ___tls_get_addr@plt\n\t" \ - "leal " #x "@dtpoff(%%eax), %%eax" \ - : "=a" (__l), "=&c" (__c), "=&d" (__d)); \ - __l; }) -#else -# define TLS_LD(x) \ +#define TLS_LD(x) \ ({ int *__l, __b, __c, __d; \ asm ("call 1f\n\t" \ ".subsection 1\n" \ @@ -51,18 +31,8 @@ "leal " #x "@dtpoff(%%eax), %%eax" \ : "=a" (__l), "=&b" (__b), "=&c" (__c), "=&d" (__d)); \ __l; }) -#endif -#if defined PIC && !__GNUC_PREREQ (5,0) -# define TLS_GD(x) \ - ({ int *__l, __c, __d; \ - asm ("leal " #x "@tlsgd(%%ebx),%%eax\n\t" \ - "call ___tls_get_addr@plt\n\t" \ - "nop" \ - : "=a" (__l), "=&c" (__c), "=&d" (__d)); \ - __l; }) -#else -# define TLS_GD(x) \ +#define TLS_GD(x) \ ({ int *__l, __b, __c, __d; \ asm ("call 1f\n\t" \ ".subsection 1\n" \ @@ -75,4 +45,3 @@ "nop" \ : "=a" (__l), "=&b" (__b), "=&c" (__c), "=&d" (__d)); \ __l; }) -#endif diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 6671afe65e..f6847a67e3 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -48,7 +48,7 @@ to compile glibc. Disable GCC 5 optimization when compiling for profiling or when -fno-omit-frame-pointer is used since asm ("ebp") can't be used to put the 6th argument in %ebp for syscall. */ -#if __GNUC_PREREQ (5,0) && !defined PROF && CAN_USE_REGISTER_ASM_EBP +#if !defined PROF && CAN_USE_REGISTER_ASM_EBP # define OPTIMIZE_FOR_GCC_5 #endif @@ -580,21 +580,6 @@ struct libc_do_syscall_args # define EXTRAVAR_5 #endif -/* Consistency check for position-independent code. Disabled for GCC 5 - and above since there is no fixed PIC register in GCC 5 and above. */ -#if defined __PIC__ && !__GNUC_PREREQ (5,0) -# define check_consistency() \ - ({ int __res; \ - __asm__ __volatile__ \ - (LOAD_PIC_REG_STR (cx) ";" \ - "subl %%ebx, %%ecx;" \ - "je 1f;" \ - "ud2;" \ - "1:\n" \ - : "=c" (__res)); \ - __res; }) -#endif - #endif /* __ASSEMBLER__ */ -- 2.43.5