i386: Do not attempt to change stack alignment

Message ID 05e2f0a1-5a35-b5a6-7665-0b915ce5a6de@redhat.com
State Committed
Headers

Commit Message

Florian Weimer May 22, 2018, 12:12 p.m. UTC
  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
  

Comments

Andreas Schwab May 22, 2018, 12:33 p.m. UTC | #1
On Mai 22 2018, Florian Weimer <fweimer@redhat.com> wrote:

> 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.

I think you should just say "We no longer use
-mpreferred-stack-boundary=2".  That was the only reason for the need to
override it -mpreferred-stack-boundary=4.  The reference to GCC is a red
herring.

Andreas.
  
Florian Weimer May 22, 2018, 12:48 p.m. UTC | #2
On 05/22/2018 02:33 PM, Andreas Schwab wrote:
> On Mai 22 2018, Florian Weimer <fweimer@redhat.com> wrote:
> 
>> 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.
> 
> I think you should just say "We no longer use
> -mpreferred-stack-boundary=2".  That was the only reason for the need to
> override it -mpreferred-stack-boundary=4.  The reference to GCC is a red
> herring.

What about this?

| i386: Drop -mpreferred-stack-boundary=4
|
| The flag was a left-over from when the -mpreferred-stack-boundary=2 flag
| was removed in commit db290cf59207aff09d1794e666e2854a93775f32.

Thanks,
Florian
  
Andreas Schwab May 22, 2018, 1:07 p.m. UTC | #3
On Mai 22 2018, Florian Weimer <fweimer@redhat.com> wrote:

> What about this?
>
> | i386: Drop -mpreferred-stack-boundary=4
> |
> | The flag was a left-over from when the -mpreferred-stack-boundary=2 flag
> | was removed in commit db290cf59207aff09d1794e666e2854a93775f32.

Ok, thanks.

Andreas.
  

Patch

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