diff options
author | Khem Raj <raj.khem@gmail.com> | 2011-05-26 22:42:51 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-27 16:55:16 +0100 |
commit | 7cab66c9d2863e47db29aa01c4023dd1c9879fa2 (patch) | |
tree | 550f45e555803db3d347b54a592ea1d30f32035c /meta/recipes-core/uclibc/uclibc-git | |
parent | e94e86c2d7cc30943be8e46ee02270bfb732b485 (diff) | |
download | poky-7cab66c9d2863e47db29aa01c4023dd1c9879fa2.tar.gz |
uclibc_git.bb: Fix compilation on arm when using thumb instruction set
(From OE-Core rev: 7011d80c6cabc304e06237d167143d577fdd2570)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/uclibc/uclibc-git')
-rw-r--r-- | meta/recipes-core/uclibc/uclibc-git/append_UCLIBC_EXTRA_CFLAGS.patch | 33 | ||||
-rw-r--r-- | meta/recipes-core/uclibc/uclibc-git/compile-arm-fork-with-O2.patch | 21 |
2 files changed, 54 insertions, 0 deletions
diff --git a/meta/recipes-core/uclibc/uclibc-git/append_UCLIBC_EXTRA_CFLAGS.patch b/meta/recipes-core/uclibc/uclibc-git/append_UCLIBC_EXTRA_CFLAGS.patch new file mode 100644 index 0000000000..edcb4e324b --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/append_UCLIBC_EXTRA_CFLAGS.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | UCLIBC_EXTRA_CFLAGS is currently added before the OPTIMIZATION flags | ||
2 | and OPTIMIZATION is chosen to be Os by default. But in OE we pass the optimisation | ||
3 | flags through UCLIBC_EXTRA_CFLAGS but they are not effective since -Os is | ||
4 | specified at last. So we need to change the order of these option flags | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | diff --git a/Rules.mak b/Rules.mak | ||
11 | index 65fe47c..eca7f40 100644 | ||
12 | --- a/Rules.mak | ||
13 | +++ b/Rules.mak | ||
14 | @@ -585,9 +574,6 @@ CFLAGS := -include $(top_srcdir)include/libc-symbols.h \ | ||
15 | -nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \ | ||
16 | -I$(top_srcdir)libc/sysdeps/linux \ | ||
17 | -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) | ||
18 | -ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"") | ||
19 | -CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS)) | ||
20 | -endif | ||
21 | |||
22 | # We need this to be checked within libc-symbols.h | ||
23 | ifneq ($(HAVE_SHARED),y) | ||
24 | @@ -633,6 +619,9 @@ LDFLAGS += -Wl,-s | ||
25 | else | ||
26 | STRIPTOOL := true -Stripping_disabled | ||
27 | endif | ||
28 | +ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"") | ||
29 | +CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS)) | ||
30 | +endif | ||
31 | |||
32 | ifeq ($(DOMULTI),y) | ||
33 | # we try to compile all sources at once into an object (IMA), but | ||
diff --git a/meta/recipes-core/uclibc/uclibc-git/compile-arm-fork-with-O2.patch b/meta/recipes-core/uclibc/uclibc-git/compile-arm-fork-with-O2.patch new file mode 100644 index 0000000000..429f27dfc4 --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/compile-arm-fork-with-O2.patch | |||
@@ -0,0 +1,21 @@ | |||
1 | When compiling in thumb mode for arm with -Os gcc gives up since it can not find registers | ||
2 | to spill. So we use -O2 option for compiling fork.c It may be addressable is gcc. | ||
3 | |||
4 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch | ||
9 | index 329d8a9..41e3646 100644 | ||
10 | --- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch | ||
11 | +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch | ||
12 | @@ -30,3 +30,9 @@ CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread | ||
13 | # This macro should be alternatively implemented in THUMB | ||
14 | # assembly. | ||
15 | ASFLAGS-vfork.S = -marm | ||
16 | + | ||
17 | +# For arm fork.c does not compile with -Os when in compiling | ||
18 | +# in thumb1 mode | ||
19 | +ifeq ($(COMPILE_IN_THUMB_MODE),y) | ||
20 | +CFLAGS-fork.c = -O2 | ||
21 | +endif | ||