On Thu, 5 Jul 2018 at 10:59, Thomas Petazzoni thomas.petazzoni@bootlin.com wrote:
Hello,
On Thu, 5 Jul 2018 10:55:26 +0200, Christophe Lyon wrote:
/tmp/cceTVltl.s: Assembler messages: /tmp/cceTVltl.s:14: Error: selected processor does not support ARM opcodes /tmp/cceTVltl.s:19: Error: attempt to use an ARM instruction on a Thumb-only processor -- `sub r4,pc,#8' /tmp/cceTVltl.s:20: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r1,.L__ROFIXUP_LIST__' /tmp/cceTVltl.s:21: Error: attempt to use an ARM instruction on a Thumb-only processor -- `add r1,r1,r4' /tmp/cceTVltl.s:22: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r2,.L__ROFIXUP_END__' /tmp/cceTVltl.s:23: Error: attempt to use an ARM instruction on a Thumb-only processor -- `add r2,r2,r4' /tmp/cceTVltl.s:24: Error: attempt to use an ARM instruction on a Thumb-only processor -- `movs r0,r8' /tmp/cceTVltl.s:25: Error: attempt to use an ARM instruction on a Thumb-only processor -- `moveq r0,r7' /tmp/cceTVltl.s:26: Error: attempt to use an ARM instruction on a Thumb-only processor -- `push {r7,r8,r9,r10}' /tmp/cceTVltl.s:27: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bl __self_reloc' /tmp/cceTVltl.s:28: Error: attempt to use an ARM instruction on a Thumb-only processor -- `pop {r7,r8,r9,r10}' /tmp/cceTVltl.s:29: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r1,r7' /tmp/cceTVltl.s:30: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r2,r8' /tmp/cceTVltl.s:31: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r3,r9' /tmp/cceTVltl.s:32: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r4,sp' /tmp/cceTVltl.s:33: Error: attempt to use an ARM instruction on a Thumb-only processor -- `sub r5,sp,#8' /tmp/cceTVltl.s:34: Error: attempt to use an ARM instruction on a Thumb-only processor -- `sub sp,sp,#16' /tmp/cceTVltl.s:35: Error: attempt to use an ARM instruction on a Thumb-only processor -- `str r4,[sp,#4]' /tmp/cceTVltl.s:36: Error: attempt to use an ARM instruction on a Thumb-only processor -- `str r5,[sp,#0]' /tmp/cceTVltl.s:37: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r9,r0' /tmp/cceTVltl.s:38: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r4,r9' /tmp/cceTVltl.s:39: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bl _dl_start' /tmp/cceTVltl.s:40: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r10,.L_dl_fini_gotofffuncdesc' /tmp/cceTVltl.s:41: Error: attempt to use an ARM instruction on a Thumb-only processor -- `add r10,r10,r4' /tmp/cceTVltl.s:42: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r5,[sp,#8]' /tmp/cceTVltl.s:43: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r9,[sp,#12]' /tmp/cceTVltl.s:44: Error: attempt to use an ARM instruction on a Thumb-only processor -- `add sp,sp,#16' /tmp/cceTVltl.s:45: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bx r5' /tmp/cceTVltl.s:47: Error: attempt to use an ARM instruction on a Thumb-only processor -- `b .loopforever' make[2]: *** [ldso/ldso/ldso.oS] Error 1 make[1]: *** [/home/test/outputs/arm-fdpic/build/uclibc-1.0.30/.stamp_built] Error 2 make: *** [_all] Error 2
Any idea ?
Thanks for checking that. I did build with a GCC defaulting to Thumb mode, but it still uses a CPU that supports ARM mode, so I missed these problems.
Thanks for your quick feedback.
So you mean that you tested building for a Cortex-A platform and not Cortex-M ?
Yes, the original work was actually for Cortex-R.
Since this FDPIC work is mainly intended for noMMU platforms, my first test was to build a toolchain targeting Cortex-M, which only support Thumb 2.
That was a good thing to do :)
Best regards,
Thomas
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com