From f0a4b900ead2f2cef6d64dc808fd4236d7748319 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 9 Jan 2011 15:45:50 -0800 Subject: [PATCH] uclibc_git.bb: Add patches for sub arch variant removal. * Also Bump to latest revision Signed-off-by: Khem Raj --- .../uclibc-git/detect-bx-availibility.patch | 75 ++++++ .../uclibc/uclibc-git/include-arm-asm.h.patch | 65 ++++++ .../remove-eabi-oabi-selection.patch | 116 ++++++++++ .../uclibc-git/remove-sub-arch-variants.patch | 215 ++++++++++++++++++ .../uclibc/uclibc-git/reorder-use-BX.patch | 72 ++++++ .../uclibc-git/select-force-thumb.patch | 172 ++++++++++++++ .../transform-eabi-oabi-choice.patch | 75 ++++++ recipes/uclibc/uclibc_git.bb | 9 +- 8 files changed, 798 insertions(+), 1 deletion(-) create mode 100755 recipes/uclibc/uclibc-git/detect-bx-availibility.patch create mode 100755 recipes/uclibc/uclibc-git/include-arm-asm.h.patch create mode 100755 recipes/uclibc/uclibc-git/remove-eabi-oabi-selection.patch create mode 100755 recipes/uclibc/uclibc-git/remove-sub-arch-variants.patch create mode 100755 recipes/uclibc/uclibc-git/reorder-use-BX.patch create mode 100755 recipes/uclibc/uclibc-git/select-force-thumb.patch create mode 100755 recipes/uclibc/uclibc-git/transform-eabi-oabi-choice.patch diff --git a/recipes/uclibc/uclibc-git/detect-bx-availibility.patch b/recipes/uclibc/uclibc-git/detect-bx-availibility.patch new file mode 100755 index 0000000000..43d19fcf10 --- /dev/null +++ b/recipes/uclibc/uclibc-git/detect-bx-availibility.patch @@ -0,0 +1,75 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313307agb; + Sat, 8 Jan 2011 16:45:20 -0800 (PST) +Received: by 10.227.141.78 with SMTP id l14mr16920947wbu.128.1294533919168; + Sat, 08 Jan 2011 16:45:19 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id w30si33755908wbd.17.2011.01.08.16.45.18; + Sat, 08 Jan 2011 16:45:19 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClHDo; Sun, 09 Jan 2011 01:45:18 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 6/7] ARM: detect BX availibility at build time +Date: Sun, 9 Jan 2011 01:45:09 +0100 +Message-Id: <1294533910-19305-7-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +The "use BX" option is now a suggestion that BX be used if available. +Use a macro to detect if BX is available at build time. If so, and +the user requested it be used, then use it. Otherwise, error out. + +Macro courtesy Khem RAJ: + http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + extra/Configs/Config.arm | 4 +++- + libc/sysdeps/linux/arm/bits/arm_asm.h | 9 ++++++++- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm +index 227b90c..9aa9e56 100644 +--- a/extra/Configs/Config.arm ++++ b/extra/Configs/Config.arm +@@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE + config USE_BX + bool "Use BX in function return" + help +- Use BX instruction for THUMB aware architectures. ++ Say 'y' to use BX to return from functions on your thumb-aware ++ processor. Say 'y' if you need to use interworking. Say 'n' if not. ++ It is safe to say 'y' even if you're not doing interworking. +diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h b/libc/sysdeps/linux/arm/bits/arm_asm.h +index 1d87df6..921c9a3 100644 +--- a/libc/sysdeps/linux/arm/bits/arm_asm.h ++++ b/libc/sysdeps/linux/arm/bits/arm_asm.h +@@ -24,5 +24,12 @@ + #define THUMB1_ONLY 1 + #endif + +-#endif /* _ARM_ASM_H */ ++#if defined(__USE_BX__) ++# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \ ++ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \ ++ ) ++# error Use of BX was requested, but is not available on the target processor. ++# endif /* ARCH level */ ++#endif /* __USE_BX__ */ + ++#endif /* _ARM_ASM_H */ +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc-git/include-arm-asm.h.patch b/recipes/uclibc/uclibc-git/include-arm-asm.h.patch new file mode 100755 index 0000000000..55c312e2ca --- /dev/null +++ b/recipes/uclibc/uclibc-git/include-arm-asm.h.patch @@ -0,0 +1,65 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313304agb; + Sat, 8 Jan 2011 16:45:19 -0800 (PST) +Received: by 10.227.155.75 with SMTP id r11mr17188266wbw.3.1294533918432; + Sat, 08 Jan 2011 16:45:18 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id k3si33753340wbx.29.2011.01.08.16.45.17; + Sat, 08 Jan 2011 16:45:18 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClHDf; Sun, 09 Jan 2011 01:45:17 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 5/7] ARM: #include where __USE_BX__ is used +Date: Sun, 9 Jan 2011 01:45:08 +0100 +Message-Id: <1294533910-19305-6-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +The check for __USE_BX__ will be available in bits/arm_asm.h, +so the latter must be included wherever the former is used. + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + ldso/ldso/arm/dl-startup.h | 1 + + libc/sysdeps/linux/arm/sysdep.h | 1 + + 2 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/ldso/ldso/arm/dl-startup.h b/ldso/ldso/arm/dl-startup.h +index a95389d..2dfdaff 100644 +--- a/ldso/ldso/arm/dl-startup.h ++++ b/ldso/ldso/arm/dl-startup.h +@@ -7,6 +7,7 @@ + */ + + #include ++#include + + #if !defined(__thumb__) + __asm__( +diff --git a/libc/sysdeps/linux/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h +index 013f88c..e498695 100644 +--- a/libc/sysdeps/linux/arm/sysdep.h ++++ b/libc/sysdeps/linux/arm/sysdep.h +@@ -21,6 +21,7 @@ + #define _LINUX_ARM_SYSDEP_H 1 + + #include ++#include + + #include + /* For Linux we can use the system call table in the header file +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc-git/remove-eabi-oabi-selection.patch b/recipes/uclibc/uclibc-git/remove-eabi-oabi-selection.patch new file mode 100755 index 0000000000..cc735a5502 --- /dev/null +++ b/recipes/uclibc/uclibc-git/remove-eabi-oabi-selection.patch @@ -0,0 +1,116 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313309agb; + Sat, 8 Jan 2011 16:45:20 -0800 (PST) +Received: by 10.216.173.7 with SMTP id u7mr612034wel.50.1294533919433; + Sat, 08 Jan 2011 16:45:19 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id e10si33752027wer.68.2011.01.08.16.45.19; + Sat, 08 Jan 2011 16:45:19 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClJDu; Sun, 09 Jan 2011 01:45:18 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 7/7] ARM: remove EABI/OABI selection +Date: Sun, 9 Jan 2011 01:45:10 +0100 +Message-Id: <1294533910-19305-8-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +Rely on the compiler to be properly setup for the default ABI. + +When installing-headers, there are two cases: +- NPTL: no issue, a cross-compiler is already expected +- LinuxThreads: no issue, EABI/OABI has no impact on installed headers. + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + extra/Configs/Config.arm | 11 ----------- + libc/sysdeps/linux/arm/Makefile.arch | 9 +++++++-- + libc/sysdeps/linux/arm/bits/huge_val.h | 4 ++-- + 3 files changed, 9 insertions(+), 15 deletions(-) + +diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm +index 9aa9e56..85f2515 100644 +--- a/extra/Configs/Config.arm ++++ b/extra/Configs/Config.arm +@@ -12,17 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH + default y + select ARCH_ANY_ENDIAN + +-config CONFIG_ARM_EABI +- bool "Build for EABI" +- help +- If you say 'y' here, functions and constants required by the +- ARM EABI will be built into the library. You should say 'y' +- if your compiler uses the ARM EABI, in which case you will also +- need a kernel supporting the EABI system call interface. +- +- If you say 'n' here, then the library will be built for the +- old Linux ABI. +- + config COMPILE_IN_THUMB_MODE + bool "Build using Thumb mode" + select USE_BX +diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch +index b53c539..14279e0 100644 +--- a/libc/sysdeps/linux/arm/Makefile.arch ++++ b/libc/sysdeps/linux/arm/Makefile.arch +@@ -24,7 +24,12 @@ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y) + CSRC += posix_fadvise.c posix_fadvise64.c + endif + +-ifeq ($(CONFIG_ARM_EABI),y) ++# Is our compiler set up for EABI ? ++IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM /dev/null \ ++ |sed -r -e '/^\#[[:space:]]*define[[:space:]]+__ARM_EABI__([[:space:]]+1)?$$/!d; s/.+/y/;' \ ++ ) ++ ++ifeq ($(IS_EABI),y) + CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \ + aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \ + aeabi_memmove.c aeabi_memset.c find_exidx.c +@@ -37,7 +42,7 @@ else + CSRC += syscall.c + endif + +-ifeq ($(CONFIG_ARM_EABI),y) ++ifeq ($(IS_EABI),y) + libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \ + $(ARCH_OUT)/aeabi_sighandlers.o + libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \ +diff --git a/libc/sysdeps/linux/arm/bits/huge_val.h b/libc/sysdeps/linux/arm/bits/huge_val.h +index a215f3c..745e0bb 100644 +--- a/libc/sysdeps/linux/arm/bits/huge_val.h ++++ b/libc/sysdeps/linux/arm/bits/huge_val.h +@@ -32,7 +32,7 @@ + # define HUGE_VAL (__extension__ 0x1.0p2047) + #elif defined __GNUC__ + +-#ifndef __CONFIG_ARM_EABI__ ++#ifndef __ARM_EABI__ + # define HUGE_VAL \ + (__extension__ \ + ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \ +@@ -50,7 +50,7 @@ + + typedef union { unsigned char __c[8]; double __d; } __huge_val_t; + +-#ifndef __CONFIG_ARM_EABI__ ++#ifndef __ARM_EABI__ + # if __BYTE_ORDER == __BIG_ENDIAN + # define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 } + # endif +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc-git/remove-sub-arch-variants.patch b/recipes/uclibc/uclibc-git/remove-sub-arch-variants.patch new file mode 100755 index 0000000000..920a66900d --- /dev/null +++ b/recipes/uclibc/uclibc-git/remove-sub-arch-variants.patch @@ -0,0 +1,215 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313303agb; + Sat, 8 Jan 2011 16:45:18 -0800 (PST) +Received: by 10.227.98.158 with SMTP id q30mr1255804wbn.151.1294533917314; + Sat, 08 Jan 2011 16:45:17 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id r3si33749838wbr.54.2011.01.08.16.45.16; + Sat, 08 Jan 2011 16:45:17 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClGDS; Sun, 09 Jan 2011 01:45:16 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 3/7] ARM: remove sub-arch/variants selection from menuconfig +Date: Sun, 9 Jan 2011 01:45:06 +0100 +Message-Id: <1294533910-19305-4-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +Rely on the compiler to be correctly set up to generate +appropriate code for the target variant. + +This exposes the Thumb option, as it is no longer auto-selected. +The "Use BX" no longer depends on supported CPU to be selected, +so it now defaults to 'n' as it shall work by default on CPUs +that do not have BX. + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + Rules.mak | 19 ------- + extra/Configs/Config.arm | 125 ++-------------------------------------------- + 2 files changed, 5 insertions(+), 139 deletions(-) + +diff --git a/Rules.mak b/Rules.mak +index 2a16908..09741a6 100644 +--- a/Rules.mak ++++ b/Rules.mak +@@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm) + OPTIMIZATION+=-fstrict-aliasing + CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian + CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian +- CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+= +- CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3 +- CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3 +- CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t +- CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t +- CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t +- CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t +- CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te +- CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t +- CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6 +- CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6 +- CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6 +- CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4 +- CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4 +- CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110) +- CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale +- CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt +- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 +- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 + CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb + endif + +diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm +index c9c40d4..6c75a00 100644 +--- a/extra/Configs/Config.arm ++++ b/extra/Configs/Config.arm +@@ -30,129 +30,14 @@ config CONFIG_ARM_EABI + + endchoice + +-choice +- prompt "Target Processor Type" +- default CONFIG_GENERIC_ARM +- help +- This is the processor type of your CPU. This information is used for +- optimizing purposes. To build a library that will run on all ARMCPU +- types (albeit not optimally fast), you can specify "Generic Arm" here. +- If you pick anything other than "Generic Arm", there is no guarantee +- that uClibc will even run on anything other than the selected +- processor type. +- +- Here are the settings recommended for greatest speed: +- - "Generic Arm" select this if your compiler is already setup to +- optimize things properly, or if you want to run on pretty much +- everything, or you just don't much care. +- - For anything else, pick the ARM core type that best matches the +- cpu you will be using on your device. +- +- If you don't know what to do, choose "Generic Arm". +- +-config CONFIG_GENERIC_ARM +- bool "Generic Arm" +- +-config CONFIG_ARM610 +- bool "Arm 610" +- select ARCH_HAS_MMU +- +-config CONFIG_ARM710 +- bool "Arm 710" +- select ARCH_HAS_MMU +- +-config CONFIG_ARM7TDMI +- bool "Arm 7TDMI" +- select ARCH_HAS_NO_MMU +- select HAS_THUMB +- +-config CONFIG_ARM720T +- bool "Arm 720T" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM920T +- bool "Arm 920T" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM922T +- bool "Arm 922T" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM926T +- bool "Arm 926T" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM10T +- bool "Arm 10T" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM1136JF_S +- bool "Arm 1136JF-S" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM1176JZ_S +- bool "Arm 1176JZ-S" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM1176JZF_S +- bool "Arm 1176JZF-S" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM_CORTEX_M3 +- bool "Arm Cortex-M3" +- select ARCH_HAS_NO_MMU +- select FORCE_THUMB +- +-config CONFIG_ARM_CORTEX_M1 +- bool "Arm Cortex-M1" +- select ARCH_HAS_NO_MMU +- select FORCE_THUMB +- +-config CONFIG_ARM_SA110 +- bool "Intel StrongArm SA-110" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM_SA1100 +- bool "Intel StrongArm SA-1100" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM_XSCALE +- bool "Intel Xscale" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-config CONFIG_ARM_IWMMXT +- bool "Intel Xscale With WMMX PXA27x" +- select ARCH_HAS_MMU +- select HAS_THUMB +- +-endchoice +- +-config HAS_THUMB +- bool +- +-config FORCE_THUMB +- bool +- select HAS_THUMB +- select COMPILE_IN_THUMB_MODE +- select USE_BX +- + config COMPILE_IN_THUMB_MODE +- bool ++ bool "Build using Thumb mode" ++ select USE_BX ++ help ++ Say 'y' here to force building uClibc in thumb mode. ++ Say 'n' to use your compiler's default mode. + + config USE_BX + bool "Use BX in function return" +- default y +- depends on HAS_THUMB + help + Use BX instruction for THUMB aware architectures. +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc-git/reorder-use-BX.patch b/recipes/uclibc/uclibc-git/reorder-use-BX.patch new file mode 100755 index 0000000000..d780b4c54d --- /dev/null +++ b/recipes/uclibc/uclibc-git/reorder-use-BX.patch @@ -0,0 +1,72 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313299agb; + Sat, 8 Jan 2011 16:45:16 -0800 (PST) +Received: by 10.227.134.5 with SMTP id h5mr1312651wbt.75.1294533915992; + Sat, 08 Jan 2011 16:45:15 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id m42si33753731wej.65.2011.01.08.16.45.15; + Sat, 08 Jan 2011 16:45:15 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClEDA; Sun, 09 Jan 2011 01:45:15 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 1/7] ARM: reorder "Use BX" option +Date: Sun, 9 Jan 2011 01:45:04 +0100 +Message-Id: <1294533910-19305-2-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +"Use BX" is not available on all CPUs, so the option depends on +a correct CPU to be chosen . It is weird that e BX" then appears +_above_ the CPU selection, not below. + +Move the "Use BX" after the CPU selection. + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + extra/Configs/Config.arm | 14 +++++++------- + 1 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm +index b060ace..3b90e67 100644 +--- a/extra/Configs/Config.arm ++++ b/extra/Configs/Config.arm +@@ -30,13 +30,6 @@ config CONFIG_ARM_EABI + + endchoice + +-config USE_BX +- bool "Use BX in function return" +- default y +- depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710 +- help +- Use BX instruction for THUMB aware architectures. +- + choice + prompt "Target Processor Type" + default CONFIG_GENERIC_ARM +@@ -131,3 +124,10 @@ config CONFIG_ARM_IWMMXT + select ARCH_HAS_MMU + + endchoice ++ ++config USE_BX ++ bool "Use BX in function return" ++ default y ++ depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710 ++ help ++ Use BX instruction for THUMB aware architectures. +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc-git/select-force-thumb.patch b/recipes/uclibc/uclibc-git/select-force-thumb.patch new file mode 100755 index 0000000000..b19408f1b2 --- /dev/null +++ b/recipes/uclibc/uclibc-git/select-force-thumb.patch @@ -0,0 +1,172 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313301agb; + Sat, 8 Jan 2011 16:45:17 -0800 (PST) +Received: by 10.216.186.82 with SMTP id v60mr20017574wem.56.1294533916559; + Sat, 08 Jan 2011 16:45:16 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id o13si33755824wee.56.2011.01.08.16.45.16; + Sat, 08 Jan 2011 16:45:16 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClFDL; Sun, 09 Jan 2011 01:45:16 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 2/7] ARM: introduce blind options to select & force THUMB mode +Date: Sun, 9 Jan 2011 01:45:05 +0100 +Message-Id: <1294533910-19305-3-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +Add three new blind options to set use of Thumb mode: +- COMPILE_IN_THUMB_MODE + - if set, CFLAGS will contain -mthumb + - if unset, the compiler's default is used +- HAS_THUMB + - CPUS with Thumb instruction set can select this + - use of BX depends on this +- FORCE_THUMB + - CPUs that are Thumb-only must select this + - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX + +Also, remove leading space in Rules.mak. + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + Rules.mak | 7 ++++--- + extra/Configs/Config.arm | 31 ++++++++++++++++++++++++++++--- + 2 files changed, 32 insertions(+), 6 deletions(-) + +diff --git a/Rules.mak b/Rules.mak +index eecdc64..2a16908 100644 +--- a/Rules.mak ++++ b/Rules.mak +@@ -348,9 +348,10 @@ ifeq ($(TARGET_ARCH),arm) + CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110) + CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale +- CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt +- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb +- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb ++ CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt ++ CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 ++ CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 ++ CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb + endif + + ifeq ($(TARGET_ARCH),mips) +diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm +index 3b90e67..c9c40d4 100644 +--- a/extra/Configs/Config.arm ++++ b/extra/Configs/Config.arm +@@ -64,70 +64,95 @@ config CONFIG_ARM710 + config CONFIG_ARM7TDMI + bool "Arm 7TDMI" + select ARCH_HAS_NO_MMU ++ select HAS_THUMB + + config CONFIG_ARM720T + bool "Arm 720T" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM920T + bool "Arm 920T" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM922T + bool "Arm 922T" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM926T + bool "Arm 926T" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM10T + bool "Arm 10T" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM1136JF_S + bool "Arm 1136JF-S" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM1176JZ_S + bool "Arm 1176JZ-S" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM1176JZF_S + bool "Arm 1176JZF-S" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM_CORTEX_M3 + bool "Arm Cortex-M3" + select ARCH_HAS_NO_MMU +- select USE_BX ++ select FORCE_THUMB + + config CONFIG_ARM_CORTEX_M1 + bool "Arm Cortex-M1" + select ARCH_HAS_NO_MMU +- select USE_BX ++ select FORCE_THUMB + + config CONFIG_ARM_SA110 + bool "Intel StrongArm SA-110" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM_SA1100 + bool "Intel StrongArm SA-1100" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM_XSCALE + bool "Intel Xscale" + select ARCH_HAS_MMU ++ select HAS_THUMB + + config CONFIG_ARM_IWMMXT + bool "Intel Xscale With WMMX PXA27x" + select ARCH_HAS_MMU ++ select HAS_THUMB + + endchoice + ++config HAS_THUMB ++ bool ++ ++config FORCE_THUMB ++ bool ++ select HAS_THUMB ++ select COMPILE_IN_THUMB_MODE ++ select USE_BX ++ ++config COMPILE_IN_THUMB_MODE ++ bool ++ + config USE_BX + bool "Use BX in function return" + default y +- depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710 ++ depends on HAS_THUMB + help + Use BX instruction for THUMB aware architectures. +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc-git/transform-eabi-oabi-choice.patch b/recipes/uclibc/uclibc-git/transform-eabi-oabi-choice.patch new file mode 100755 index 0000000000..cef8042ed0 --- /dev/null +++ b/recipes/uclibc/uclibc-git/transform-eabi-oabi-choice.patch @@ -0,0 +1,75 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.90.86.4 with SMTP id j4cs313305agb; + Sat, 8 Jan 2011 16:45:19 -0800 (PST) +Received: by 10.216.153.210 with SMTP id f60mr573848wek.114.1294533918335; + Sat, 08 Jan 2011 16:45:18 -0800 (PST) +Return-Path: +Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) + by mx.google.com with ESMTP id n4si33737071wej.152.2011.01.08.16.45.17; + Sat, 08 Jan 2011 16:45:18 -0800 (PST) +Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; +Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr +Received: from roazhon.bzh.lan ([90.32.245.227]) + by mwinf5d24 with ME + id tClC1f0024v5z3u03ClGDX; Sun, 09 Jan 2011 01:45:17 +0100 +From: "Yann E. MORIN" +To: uclibc@uclibc.org +Cc: Khem Raj , + Bernhard Reutner-Fischer , + Carmelo AMOROSO +Subject: [PATCH 4/7] ARM: transform the EABI/OABI choice into a boolean +Date: Sun, 9 Jan 2011 01:45:07 +0100 +Message-Id: <1294533910-19305-5-git-send-email-yann.morin.1998@anciens.enib.fr> +X-Mailer: git-send-email 1.7.1 +In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> +References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> + +The CONFIG_ARM_OABI option is never used. + +Signed-off-by: "Yann E. MORIN" +Cc: Khem Raj +Cc: Bernhard Reutner-Fischer +Cc: Carmelo AMOROSO +--- + extra/Configs/Config.arm | 23 ++++++++--------------- + 1 files changed, 8 insertions(+), 15 deletions(-) + +diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm +index 6c75a00..227b90c 100644 +--- a/extra/Configs/Config.arm ++++ b/extra/Configs/Config.arm +@@ -12,23 +12,16 @@ config FORCE_OPTIONS_FOR_ARCH + default y + select ARCH_ANY_ENDIAN + +-choice +- prompt "Target ABI" +- default CONFIG_ARM_OABI ++config CONFIG_ARM_EABI ++ bool "Build for EABI" + help +- If you choose "EABI" here, functions and constants required by the +- ARM EABI will be built into the library. You should choose "EABI" ++ If you say 'y' here, functions and constants required by the ++ ARM EABI will be built into the library. You should say 'y' + if your compiler uses the ARM EABI, in which case you will also +- need a kernel supporting the EABI system call interface, or "OABI" +- for a compiler using the old Linux ABI. +- +-config CONFIG_ARM_OABI +- bool "OABI" +- +-config CONFIG_ARM_EABI +- bool "EABI" +- +-endchoice ++ need a kernel supporting the EABI system call interface. ++ ++ If you say 'n' here, then the library will be built for the ++ old Linux ABI. + + config COMPILE_IN_THUMB_MODE + bool "Build using Thumb mode" +-- +1.7.1 + diff --git a/recipes/uclibc/uclibc_git.bb b/recipes/uclibc/uclibc_git.bb index b514618c8c..0e44c4fee8 100644 --- a/recipes/uclibc/uclibc_git.bb +++ b/recipes/uclibc/uclibc_git.bb @@ -7,7 +7,7 @@ # on whether the base patches apply to the selected (SRCDATE) svn release. # UCLIBC_BASE ?= "0.9.32" -SRCREV="4d81f2a74578f819285b131c682e8d2f6c315c4e" +SRCREV="8764f2e75c875757529aa81e5cd96e17e6f6e5e4" PR_append = "+gitr${SRCPV}" DEFAULT_PREFERENCE = "-1" #DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take @@ -31,5 +31,12 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ file://uclibc-arm-ftruncate64.patch \ file://uclibc_enable_log2_test.patch \ file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \ + file://reorder-use-BX.patch \ + file://select-force-thumb.patch \ + file://remove-sub-arch-variants.patch \ + file://transform-eabi-oabi-choice.patch \ + file://include-arm-asm.h.patch \ + file://detect-bx-availibility.patch \ + file://remove-eabi-oabi-selection.patch \ " S = "${WORKDIR}/git" -- 2.39.5