diff options
author | Khem Raj <raj.khem@gmail.com> | 2010-07-21 10:27:22 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2010-07-21 10:27:22 -0700 |
commit | dc1f15bcd4740094ce7a02d1d6e0389469870788 (patch) | |
tree | d6744fea4a64a8a550fdee39883f8c83bef336e5 | |
parent | e7adac34e40afeb0c0ae5fe3d1207d9bf10dfabc (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.machine | 16 | ||||
-rw-r--r-- | recipes/uclibc/uclibc-git/fix-thumb1-PIE.patch | 58 | ||||
-rw-r--r-- | recipes/uclibc/uclibc-git/qemuarm/uClibc.machine | 76 | ||||
-rw-r--r-- | 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 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" |