This is the mail archive of the libc-alpha@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]

Re: [PATCH] i386: Do not attempt to change stack alignment


On 05/22/2018 12:24 PM, Andreas Schwab wrote:
On Mai 22 2018, Florian Weimer<fweimer@redhat.com>  wrote:

I don't really understand what you are after
here. -mpreferred-stack-boundary=4 is the default, so the Makefile bits I
removed are just a cleanup that was missed when the (rather broken)
-mpreferred-stack-boundary=2 flag was removed.

My issue is that this has nothing to do with GCC, but with our (former)
use of the option.  Your summary is misleading.

Do you think this wording is an improvement?

Thanks,
Florian
Subject: [PATCH] i386: Drop -mpreferred-stack-boundary=4
To: libc-alpha@sourceware.org

GCC uses it by default.

2018-05-22  Florian Weimer  <fweimer@redhat.com>

	i386: Drop -mpreferred-stack-boundary=4; GCC uses it by default.
	* sysdeps/i386/Makefile [$(subdir) == math] (sysdep-CFLAGS): Do
	not add -mpreferred-stack-boundary=4.
	[$(subdir) == csu] (sysdep-CFLAGS): Likewise.
	(stack-align-test-flags): Likewise.
	[$(subdir) == stdlib] (CFLAGS-exit.c, CFLAGS-cxa_finalize.c):
	Likewise.
	[$(subdir) == elf] (CFLAGS-dl-init.c, CFLAGS-dl-fini.c)
	(CFLAGS-dl-open.c, CFLAGS-dl-close.c, CFLAGS-dl-error.c): Likewise.
	[$(subdir) == dlfcn] (CFLAGS-dlopen.c, CFLAGS-dlopenold.c)
	(CFLAGS-dlclose.c, CFLAGS-dlerror.c): Likewise.
	* sysdeps/i386/nptl/Makefile [$(subdir) == nptl]
	(CFLAGS-pthread_create.c, CFLAGS-tst-align.c)
	(CFLAGS-tst-align2.c): Likewise.

diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
index a1500454e5..1682394e76 100644
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -19,46 +19,10 @@ CFLAGS-dl-load.c += -Wno-unused
 CFLAGS-dl-reloc.c += -Wno-unused
 endif
 
-# Most of the glibc routines don't ever call user defined callbacks
-# nor use any FPU or SSE* and as such don't need bigger %esp alignment
-# than 4 bytes.
-# Lots of routines in math will use FPU, so make math subdir an exception
-# here.
-# In gcc 4.6 (and maybe earlier?) giving -mpreferred-stack-boundary=2 is
-# an error, so don't try to reduce it here like we used to.  We still
-# explicit set -mpreferred-stack-boundary=4 the places where it matters,
-# in case an older compiler defaulted to 2.
-ifeq ($(subdir),math)
-sysdep-CFLAGS += -mpreferred-stack-boundary=4
-else
 ifeq ($(subdir),csu)
-sysdep-CFLAGS += -mpreferred-stack-boundary=4
 gen-as-const-headers += link-defines.sym
 else
-# Likewise, any function which calls user callbacks
-uses-callbacks += -mpreferred-stack-boundary=4
-# Likewise, any stack alignment tests
-stack-align-test-flags += -malign-double -mpreferred-stack-boundary=4
-endif
-endif
-
-# And a couple of other routines
-ifeq ($(subdir),stdlib)
-CFLAGS-exit.c += -mpreferred-stack-boundary=4
-CFLAGS-cxa_finalize.c += -mpreferred-stack-boundary=4
-endif
-ifeq ($(subdir),elf)
-CFLAGS-dl-init.c += -mpreferred-stack-boundary=4
-CFLAGS-dl-fini.c += -mpreferred-stack-boundary=4
-CFLAGS-dl-open.c += -mpreferred-stack-boundary=4
-CFLAGS-dl-close.c += -mpreferred-stack-boundary=4
-CFLAGS-dl-error.c += -mpreferred-stack-boundary=4
-endif
-ifeq ($(subdir),dlfcn)
-CFLAGS-dlopen.c += -mpreferred-stack-boundary=4
-CFLAGS-dlopenold.c += -mpreferred-stack-boundary=4
-CFLAGS-dlclose.c += -mpreferred-stack-boundary=4
-CFLAGS-dlerror.c += -mpreferred-stack-boundary=4
+stack-align-test-flags += -malign-double
 endif
 
 ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
diff --git a/sysdeps/i386/nptl/Makefile b/sysdeps/i386/nptl/Makefile
index 93a6d30b44..73024033ee 100644
--- a/sysdeps/i386/nptl/Makefile
+++ b/sysdeps/i386/nptl/Makefile
@@ -18,9 +18,3 @@
 ifeq ($(subdir),csu)
 gen-as-const-headers += tcb-offsets.sym
 endif
-
-ifeq ($(subdir),nptl)
-CFLAGS-pthread_create.c += -mpreferred-stack-boundary=4
-CFLAGS-tst-align.c += -mpreferred-stack-boundary=4
-CFLAGS-tst-align2.c += -mpreferred-stack-boundary=4
-endif

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]