summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2010-07-21 10:27:22 -0700
committerKhem Raj <raj.khem@gmail.com>2010-07-21 10:27:22 -0700
commitdc1f15bcd4740094ce7a02d1d6e0389469870788 (patch)
treed6744fea4a64a8a550fdee39883f8c83bef336e5
parente7adac34e40afeb0c0ae5fe3d1207d9bf10dfabc (diff)
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@gmail.com>
-rw-r--r--recipes/uclibc/uclibc-git/armv5te/uClibc.machine16
-rw-r--r--recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch58
-rw-r--r--recipes/uclibc/uclibc-git/qemuarm/uClibc.machine76
-rw-r--r--recipes/uclibc/uclibc_git.bb1
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 ec0385bc0f..7154278f88 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 0000000000..3bb88891df
--- /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 0000000000..7154278f88
--- /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 333a98cea3..b2c91244be 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"