aboutsummaryrefslogtreecommitdiffstats
path: root/core/uclibc/libpthreads-no-omit-framepointer.patch
blob: 3fe258ca6aa52445e9c476f87352a66a345b8247 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--- uClibc-0.9.30/libpthread/linuxthreads.old/Makefile.in.orig	Thu Nov 13 09:23:12 2008
+++ uClibc-0.9.30/libpthread/linuxthreads.old/Makefile.in	Thu Nov 13 09:25:02 2008
@@ -59,6 +59,19 @@
 libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
 libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
 
+ifeq ($(TARGET_ARCH),i386)
+# Most files must not be compiled without frame pointer since we need
+# the frame base address which is stored in %ebp unless the frame pointer
+# is optimized out.
+CFLAGS-cancel.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
+CFLAGS-condvar.c += -fno-omit-frame-pointer
+CFLAGS-join.c += -fno-omit-frame-pointer
+CFLAGS-manager.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
+CFLAGS-pthread.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
+CFLAGS-ptlongjmp.c += -fno-omit-frame-pointer
+CFLAGS-semaphore.c += -fno-omit-frame-pointer
+endif
+
 libpthread-static-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SPEC_SRC))
 libpthread-shared-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.oS,$(libpthread_SPEC_SRC))