This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: arm-elf thumb-2 issue in newlib or gas?


info.gnu@rt-labs.com wrote:
Hello

I configure arm-elf with thumb-2 support but ran into problem when I came to
Newlib

$ ../newlib-1.16.0/configure --target=arm-elf
--prefix=/proj/crossgcc/arm-elf --disable-nls
--disable-newlib-supplied-syscalls --disable-newlib-mb
--disable-newlib-io-pos-args --disable-newlib-io-long-long
--disable-newlib-io-long-double --disable-newlib-iconv
--enable-newlib-multithread


arm-elf-gcc
-B/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib/ -isystem
/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib/targ-include
-isystem /proj/buildcross/build/newlib-1.16.0/newlib/libc/include
-B/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/libgloss/arm
-L/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/libgloss/libnosys
-L/proj/buildcross/build/newlib-1.16.0/libgloss/arm -mthumb -march=armv7
-O2 -D__NO_SYSCALLS__ -fno-builtin -mthumb -march=armv7 -c -o
lib_a-setjmp.o `test -f 'setjmp.S' || echo
'../../../../../../../../newlib-1.16.0/newlib/libc/machine/arm/'`setjmp.S
../../../../../../../../newlib-1.16.0/newlib/libc/machine/arm/setjmp.S:
Assembler messages:
../../../../../../../../newlib-1.16.0/newlib/libc/machine/arm/setjmp.S:123:
Error: SP not allowed in register list -- `stmea a1!,{v1-v7,fp,ip,sp,lr}'
../../../../../../../../newlib-1.16.0/newlib/libc/machine/arm/setjmp.S:145:
Error: SP not allowed in register list -- `ldmfd a1!,{v1-v7,fp,ip,sp,lr}'
make[9]: *** [lib_a-setjmp.o] Error 1
make[9]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib/libc/machin
e/arm'
make[8]: *** [all-recursive] Error 1
make[8]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib/libc/machin
e'
make[7]: *** [all-recursive] Error 1
make[7]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib/libc'
make[6]: *** [all-recursive] Error 1
make[6]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib'
make[5]: *** [all] Error 2
make[5]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/thumb/thumb2/newlib'
make[4]: *** [multi-do] Error 1
make[4]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/newlib'
make[3]: *** [all-multi] Error 2
make[3]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/newlib'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/proj/buildcross/build/build_newlib/arm-elf/newlib'
make[1]: *** [all-target-newlib] Error 2
make[1]: Leaving directory `/proj/buildcross/build/build_newlib'
make: *** [all] Error 2


What is the correct solution, what I can see it is an issue in either
setjmp.S using SP or the gas function triggering error for SP, or im a
missing something else?


Nope, that seems to be about right. I would suggest you post to the gcc list to see if the error is correct for the given compiler arguments. There are __thumb__ and __thumb2__ flagged sections already in setjmp.S and the particular insns above are not singled out.

-- Jeff J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]