uclibc-git: Update cpu to be arm926t in config for qemuarm
authorKhem Raj <raj.khem@gmail.com>
Wed, 21 Jul 2010 17:27:22 +0000 (10:27 -0700)
committerKhem Raj <raj.khem@gmail.com>
Wed, 21 Jul 2010 17:27:22 +0000 (10:27 -0700)
* Fix PIE execution when uclibc is compiled with thumb
* Update defconfig for armv5te architecture

Signed-off-by: Khem Raj <raj.khem@gmail.com>
recipes/uclibc/uclibc-git/armv5te/uClibc.machine
recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch [new file with mode: 0644]
recipes/uclibc/uclibc-git/qemuarm/uClibc.machine [new file with mode: 0644]
recipes/uclibc/uclibc_git.bb

index ec0385b..7154278 100644 (file)
@@ -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 (file)
index 0000000..3bb8889
--- /dev/null
@@ -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 (file)
index 0000000..7154278
--- /dev/null
@@ -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
index 333a98c..b2c9124 100644 (file)
@@ -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"