about summary refs log tree commit diff
path: root/sysdeps/i386/Makefile
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-09-17 08:47:44 +0000
committerUlrich Drepper <drepper@redhat.com>2003-09-17 08:47:44 +0000
commita4db3439f1177cf5c5ceb80bfa3f3a2cef00fc0e (patch)
treee21a8cd5a2222281888d37b530d360e92995abd7 /sysdeps/i386/Makefile
parent6c052003bda07641309dcd4fe4a5158d24f5d607 (diff)
downloadglibc-a4db3439f1177cf5c5ceb80bfa3f3a2cef00fc0e.tar.gz
glibc-a4db3439f1177cf5c5ceb80bfa3f3a2cef00fc0e.tar.xz
glibc-a4db3439f1177cf5c5ceb80bfa3f3a2cef00fc0e.zip
Update.
2003-09-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/Makefile (sysdep-CFLAGS): If not in math or csu
	subdir, add -mpreferred-stack-boundary=4, with few exceptions.

2003-09-17  Jakub Jelinek  <jakub@redhat.com>

	* Makeconfig (stack-align-test-flags): Set.
	* stdlib/Makefile (CFLAGS-tst-bsearch.c): Add
	$(stack-align-test-flags).
	* stdlib/tst-bsearch.c: Include tst-stack-align.h.
	(align_check): New var.
	(comp): Use TEST_STACK_ALIGN macro.
	(do_test): Fail if align_check != 1.
	* sysdeps/generic/tst-stack-align.h: New file.
	* sysdeps/i386/i686/Makefile (stack-align-test-flags): Add -msse.
	* sysdeps/i386/i686/tst-stack-align.h: New file.
Diffstat (limited to 'sysdeps/i386/Makefile')
-rw-r--r--sysdeps/i386/Makefile35
1 files changed, 35 insertions, 0 deletions
diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
index ba0d21f13f..56027703ce 100644
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -20,3 +20,38 @@ CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
 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.
+ifeq ($(subdir),math)
+sysdep-CFLAGS += -mpreferred-stack-boundary=4
+else
+ifeq ($(subdir),csu)
+sysdep-CFLAGS += -mpreferred-stack-boundary=4
+else
+sysdep-CFLAGS += -mpreferred-stack-boundary=2
+# Likewise, any function which calls user callbacks
+uses-callbacks += -mpreferred-stack-boundary=4
+endif
+endif
+
+# And a couple of other routines
+ifeq ($(subdir),stdlib)
+CFLAGS-exit.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
+endif