[oe] uclibc build failure on armv4t with -mthumb (internal compiler error)
David Huggins-Daines
dhuggins at cs.cmu.edu
Fri Apr 3 20:54:59 UTC 2009
I'm having trouble building uclibc in thumb mode for armv4t. It is
getting an internal compiler error when compiling ldso. The error
message is:
NOTE: make STRIPTOOL=true LD=arm-angstrom-linux-uclibcgnueabi-ld
LOCALE_DATA_FILENAME=uClibc-locale-030818.arm.tgz CC=ccache
arm-angstrom-linux-uclibcgnueabi-gcc -march=armv4t -mtune=arm920t
-mthumb-interwork -mthumb
HOSTCFLAGS=-I/home/dhuggins/Projects/TeRK/oe/tmp/staging/x86_64-linux/usr/include
CC ldso/ldso/ldso.oS
ldso/ldso/dl-elf.c: In function '_dl_dprintf':
ldso/ldso/dl-elf.c:913: error: unable to find a register to spill in
class 'LO_REGS'
ldso/ldso/dl-elf.c:913: error: this is the insn:
(insn 121 120 122 6 (set (reg/f:SI 406)
(plus:SI (reg/f:SI 25 sfp)
(reg:SI 405))) 5 {*thumb_addsi3} (nil)
(expr_list:REG_DEAD (reg:SI 405)
(nil)))
ldso/ldso/dl-elf.c:913: confused by earlier errors, bailing out
make: *** [ldso/ldso/ldso.oS] Error 1
FATAL: oe_runmake failed
I'm using the stable/2009 branch and this is GCC 4.2.4-r5
I believe there were some patches for this recently (in particular,
building ldso with -O0) but I'm still getting the error - note that it
is in a different function than the one seen earlier.
I worked around this by forcing ldso to compile with the ARM instruction
set, but I'm not sure if this is the right approach or not.
More information about the Openembedded-devel
mailing list