From 7cab66c9d2863e47db29aa01c4023dd1c9879fa2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 26 May 2011 22:42:51 -0700 Subject: uclibc_git.bb: Fix compilation on arm when using thumb instruction set (From OE-Core rev: 7011d80c6cabc304e06237d167143d577fdd2570) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- .../uclibc-git/append_UCLIBC_EXTRA_CFLAGS.patch | 33 ++++++++++++++++++++++ .../uclibc-git/compile-arm-fork-with-O2.patch | 21 ++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 meta/recipes-core/uclibc/uclibc-git/append_UCLIBC_EXTRA_CFLAGS.patch create mode 100644 meta/recipes-core/uclibc/uclibc-git/compile-arm-fork-with-O2.patch (limited to 'meta/recipes-core/uclibc/uclibc-git') 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 @@ +UCLIBC_EXTRA_CFLAGS is currently added before the OPTIMIZATION flags +and OPTIMIZATION is chosen to be Os by default. But in OE we pass the optimisation +flags through UCLIBC_EXTRA_CFLAGS but they are not effective since -Os is +specified at last. So we need to change the order of these option flags + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +diff --git a/Rules.mak b/Rules.mak +index 65fe47c..eca7f40 100644 +--- a/Rules.mak ++++ b/Rules.mak +@@ -585,9 +574,6 @@ CFLAGS := -include $(top_srcdir)include/libc-symbols.h \ + -nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \ + -I$(top_srcdir)libc/sysdeps/linux \ + -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) +-ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"") +-CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS)) +-endif + + # We need this to be checked within libc-symbols.h + ifneq ($(HAVE_SHARED),y) +@@ -633,6 +619,9 @@ LDFLAGS += -Wl,-s + else + STRIPTOOL := true -Stripping_disabled + endif ++ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"") ++CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS)) ++endif + + ifeq ($(DOMULTI),y) + # 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 @@ +When compiling in thumb mode for arm with -Os gcc gives up since it can not find registers +to spill. So we use -O2 option for compiling fork.c It may be addressable is gcc. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch +index 329d8a9..41e3646 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch +@@ -30,3 +30,9 @@ CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread + # This macro should be alternatively implemented in THUMB + # assembly. + ASFLAGS-vfork.S = -marm ++ ++# For arm fork.c does not compile with -Os when in compiling ++# in thumb1 mode ++ifeq ($(COMPILE_IN_THUMB_MODE),y) ++CFLAGS-fork.c = -O2 ++endif -- cgit v1.2.3-54-g00ecf