[oe-commits] Khem Raj : uclibc-git: Update cpu to be arm926t in config for qemuarm

git version control git at git.openembedded.org
Wed Jul 21 17:30:04 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: dc1f15bcd4740094ce7a02d1d6e0389469870788
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=dc1f15bcd4740094ce7a02d1d6e0389469870788

Author: Khem Raj <raj.khem at gmail.com>
Date:   Wed Jul 21 10:27:22 2010 -0700

uclibc-git: Update cpu to be arm926t in config for qemuarm

* Fix PIE execution when uclibc is compiled with thumb
* Update defconfig for armv5te architecture

Signed-off-by: Khem Raj <raj.khem at gmail.com>

---

 recipes/uclibc/uclibc-git/armv5te/uClibc.machine |   16 +++--
 recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch   |   58 ++++++++++++++++
 recipes/uclibc/uclibc-git/qemuarm/uClibc.machine |   76 ++++++++++++++++++++++
 recipes/uclibc/uclibc_git.bb                     |    1 +
 4 files changed, 146 insertions(+), 5 deletions(-)

diff --git a/recipes/uclibc/uclibc-git/armv5te/uClibc.machine b/recipes/uclibc/uclibc-git/armv5te/uClibc.machine
index ec0385b..7154278 100644
--- a/recipes/uclibc/uclibc-git/armv5te/uClibc.machine
+++ b/recipes/uclibc/uclibc-git/armv5te/uClibc.machine
@@ -1,9 +1,11 @@
 #
 # Automatically generated make config: don't edit
-# Sun May 13 11:16:02 2007
+# Version: 0.9.32-git
+# Mon Jul 19 01:34:29 2010
 #
 # TARGET_alpha is not set
 TARGET_arm=y
+# TARGET_avr32 is not set
 # TARGET_bfin is not set
 # TARGET_cris is not set
 # TARGET_e1 is not set
@@ -25,6 +27,7 @@ TARGET_arm=y
 # TARGET_v850 is not set
 # TARGET_vax is not set
 # TARGET_x86_64 is not set
+# TARGET_xtensa is not set
 
 #
 # Target Architecture Features and Options
@@ -41,14 +44,16 @@ USE_BX=y
 # CONFIG_ARM720T is not set
 # CONFIG_ARM920T is not set
 # CONFIG_ARM922T is not set
-# CONFIG_ARM926T is not set
+CONFIG_ARM926T=y
 # CONFIG_ARM10T is not set
 # CONFIG_ARM1136JF_S is not set
 # CONFIG_ARM1176JZ_S is not set
 # CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_CORTEX_M3 is not set
+# CONFIG_ARM_CORTEX_M1 is not set
 # CONFIG_ARM_SA110 is not set
 # CONFIG_ARM_SA1100 is not set
-CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_XSCALE is not set
 # CONFIG_ARM_IWMMXT is not set
 TARGET_SUBARCH=""
 
@@ -65,6 +70,7 @@ UCLIBC_HAS_FLOATS=y
 # UCLIBC_HAS_FPU is not set
 UCLIBC_HAS_SOFT_FLOAT=y
 DO_C99_MATH=y
-KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+# DO_XSI_MATH is not set
+# UCLIBC_HAS_FENV is not set
+KERNEL_HEADERS="/usr/include"
 HAVE_DOT_CONFIG=y
-
diff --git a/recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch b/recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch
new file mode 100644
index 0000000..3bb8889
--- /dev/null
+++ b/recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch
@@ -0,0 +1,58 @@
+diff --git a/Rules.mak b/Rules.mak
+index f6fa818..fe03c81 100644
+--- a/Rules.mak
++++ b/Rules.mak
+@@ -339,7 +339,7 @@ ifeq ($(TARGET_ARCH),arm)
+ 	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=arm9tdmi -march=armv5t
++	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
+@@ -598,7 +598,7 @@ endif
+ 
+ LDFLAGS:=$(LDFLAGS_NOSTRIP) -Wl,-z,defs
+ ifeq ($(DODEBUG),y)
+-CFLAGS += -O0 -g3 -DDEBUG
++CFLAGS += -O0 -g -DDEBUG
+ else
+ CFLAGS += $(OPTIMIZATION)
+ endif
+diff --git a/libc/sysdeps/linux/arm/crt1.S b/libc/sysdeps/linux/arm/crt1.S
+index 18e3686..f2d9507 100644
+--- a/libc/sysdeps/linux/arm/crt1.S
++++ b/libc/sysdeps/linux/arm/crt1.S
+@@ -133,7 +133,6 @@ _start:
+ 
+ #ifdef __PIC__
+ 	ldr r4, .L_GOT
+-.L_GOT_OFF:
+ 	adr r5, .L_GOT
+ 	add r4, r5, r4
+ 
+@@ -201,8 +200,8 @@ _start:
+ 
+ #ifdef __PIC__
+ 	ldr sl, .L_GOT
+-.L_GOT_OFF:
+-	add sl, pc, sl
++	adr a4, .L_GOT
++	add sl, sl, a4
+ 
+ 	ldr ip, .L_GOT+4	/* _fini */
+ 	ldr a1, [sl, ip]
+@@ -238,11 +237,7 @@ _start:
+ 
+ #ifdef __PIC__
+ .L_GOT:
+-#ifdef __thumb__
+-	.word	_GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+4)
+-#else /* __thumb2__ */
+-	.word	_GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8)
+-#endif
++	.word _GLOBAL_OFFSET_TABLE_ - .L_GOT
+ 	.word _fini(GOT)
+ 	.word _init(GOT)
+ 	.word main(GOT)
diff --git a/recipes/uclibc/uclibc-git/qemuarm/uClibc.machine b/recipes/uclibc/uclibc-git/qemuarm/uClibc.machine
new file mode 100644
index 0000000..7154278
--- /dev/null
+++ b/recipes/uclibc/uclibc-git/qemuarm/uClibc.machine
@@ -0,0 +1,76 @@
+#
+# Automatically generated make config: don't edit
+# Version: 0.9.32-git
+# Mon Jul 19 01:34:29 2010
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+CONFIG_ARM926T=y
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_CORTEX_M3 is not set
+# CONFIG_ARM_CORTEX_M1 is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+# DO_XSI_MATH is not set
+# UCLIBC_HAS_FENV is not set
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
diff --git a/recipes/uclibc/uclibc_git.bb b/recipes/uclibc/uclibc_git.bb
index 333a98c..b2c9124 100644
--- a/recipes/uclibc/uclibc_git.bb
+++ b/recipes/uclibc/uclibc_git.bb
@@ -31,5 +31,6 @@ 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://fix-thumb1-PIE.patch \
 	"
 S = "${WORKDIR}/git"





More information about the Openembedded-commits mailing list