i386: Remove NO_TLS_DIRECT_SEG_REFS handling

Message ID 87zh9se841.fsf@oldenburg2.str.redhat.com
State Committed
Headers
Series i386: Remove NO_TLS_DIRECT_SEG_REFS handling |

Commit Message

Florian Weimer May 28, 2020, 9:12 a.m. UTC
  This was needed for 32-bit PV Xen, which has been superseded by this
point according to Xen developers.

---
 sysdeps/i386/Makefile                      |  4 ----
 sysdeps/i386/i686/multiarch/strcmp-sse4.S  | 20 --------------------
 sysdeps/i386/i686/multiarch/strcmp-ssse3.S | 20 --------------------
 3 files changed, 44 deletions(-)
  

Comments

Andreas Schwab May 28, 2020, 9:46 a.m. UTC | #1
On Mai 28 2020, Florian Weimer via Libc-alpha wrote:

> This was needed for 32-bit PV Xen, which has been superseded by this
> point according to Xen developers.

Ok.

Andreas.
  
Andrew Cooper May 28, 2020, 11:41 a.m. UTC | #2
On 28/05/2020 10:12, Florian Weimer wrote:
> This was needed for 32-bit PV Xen,

PV guests, on 32bit bit Xen.

The latter point is the more important one, because we switched to
64-bit-only Xen itself, in the 4.3 release (July 2013).  Xen 4.3 is long
out of security support.

~Andrew
  

Patch

diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
index c0a4fe15d4..b9b1367f60 100644
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -33,10 +33,6 @@  else
 stack-align-test-flags += -malign-double
 endif
 
-ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
-defines += -DNO_TLS_DIRECT_SEG_REFS
-endif
-
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
 
diff --git a/sysdeps/i386/i686/multiarch/strcmp-sse4.S b/sysdeps/i386/i686/multiarch/strcmp-sse4.S
index 5454cba2e3..802609839a 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-sse4.S
@@ -101,19 +101,9 @@  ENTRY (__strcasecmp_sse4_2)
 	PUSH	(%ebx)
 	LOAD_PIC_REG(bx)
 	movl	__libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	addl	%gs:0, %eax
-	movl	(%eax), %eax
-#  else
 	movl	%gs:(%eax), %eax
-#  endif
 # else
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	movl	%gs:0, %eax
-	movl	__libc_tsd_LOCALE@NTPOFF(%eax), %eax
-#  else
 	movl	%gs:__libc_tsd_LOCALE@NTPOFF, %eax
-#  endif
 # endif
 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
 	movl	LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
@@ -138,19 +128,9 @@  ENTRY (__strncasecmp_sse4_2)
 	PUSH	(%ebx)
 	LOAD_PIC_REG(bx)
 	movl	__libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	addl	%gs:0, %eax
-	movl	(%eax), %eax
-#  else
 	movl	%gs:(%eax), %eax
-#  endif
 # else
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	movl	%gs:0, %eax
-	movl	__libc_tsd_LOCALE@NTPOFF(%eax), %eax
-#  else
 	movl	%gs:__libc_tsd_LOCALE@NTPOFF, %eax
-#  endif
 # endif
 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
 	movl	LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
index 8e830dec6f..1b9d53c1fe 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -118,19 +118,9 @@  ENTRY (__strcasecmp_ssse3)
 	PUSH	(%ebx)
 	LOAD_PIC_REG(bx)
 	movl	__libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	addl	%gs:0, %eax
-	movl	(%eax), %eax
-#  else
 	movl	%gs:(%eax), %eax
-#  endif
 # else
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	movl	%gs:0, %eax
-	movl	__libc_tsd_LOCALE@NTPOFF(%eax), %eax
-#  else
 	movl	%gs:__libc_tsd_LOCALE@NTPOFF, %eax
-#  endif
 # endif
 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
 	movl	LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
@@ -155,19 +145,9 @@  ENTRY (__strncasecmp_ssse3)
 	PUSH	(%ebx)
 	LOAD_PIC_REG(bx)
 	movl	__libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	addl	%gs:0, %eax
-	movl	(%eax), %eax
-#  else
 	movl	%gs:(%eax), %eax
-#  endif
 # else
-#  ifdef NO_TLS_DIRECT_SEG_REFS
-	movl	%gs:0, %eax
-	movl	__libc_tsd_LOCALE@NTPOFF(%eax), %eax
-#  else
 	movl	%gs:__libc_tsd_LOCALE@NTPOFF, %eax
-#  endif
 # endif
 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
 	movl	LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax