-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi All,
I was trying to compile the kernel tree located at:
http://git.linaro.org/gitweb?p=people/amitk/linux-linaro-pmwg.git%3Ba=summar...
for a beagleboardXM but the compilation fails with the error
/tmp/ccnUvsew.s: Assembler messages: /tmp/ccnUvsew.s:298: Error: r13 not allowed here -- `bic r7,sp,#8128' /tmp/ccnUvsew.s:567: Error: r13 not allowed here -- `bic r3,sp,#8128' /tmp/ccnUvsew.s:642: Error: r13 not allowed here -- `bic r3,sp,#8128' /tmp/ccnUvsew.s:808: Error: r13 not allowed here -- `bic r4,sp,#8128' /tmp/ccnUvsew.s:1459: Error: r13 not allowed here -- `bic r3,sp,#8128'
I suspected the problem was related to the thumb instruction, I disabled it in the config but I have still the error.
Any ideas ?
Thanks
-- Daniel
- -- http://www.linaro.org/ Linaro.org ? Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro Facebook | http://twitter.com/#!/linaroorg Twitter | http://www.linaro.org/linaro-blog/ Blog
On Mon, Jul 25, 2011 at 12:55:54PM +0200, Daniel Lezcano wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi All,
I was trying to compile the kernel tree located at:
http://git.linaro.org/gitweb?p=people/amitk/linux-linaro-pmwg.git%3Ba=summar...
What branch and what tag or head commit were you building?
for a beagleboardXM but the compilation fails with the error
/tmp/ccnUvsew.s: Assembler messages: /tmp/ccnUvsew.s:298: Error: r13 not allowed here -- `bic r7,sp,#8128' /tmp/ccnUvsew.s:567: Error: r13 not allowed here -- `bic r3,sp,#8128' /tmp/ccnUvsew.s:642: Error: r13 not allowed here -- `bic r3,sp,#8128' /tmp/ccnUvsew.s:808: Error: r13 not allowed here -- `bic r4,sp,#8128' /tmp/ccnUvsew.s:1459: Error: r13 not allowed here -- `bic r3,sp,#8128'
I suspected the problem was related to the thumb instruction, I disabled it in the config but I have still the error.
Your suspicions are correct -- use of sp as a general-purpose register operand is much more restricted in Thumb-2 than in ARM. (Most of those fancy uses of sp are deprecated in ARM also, since ARMv7.)
(Possibly, you disabled CONFIG_ARM_THUMB instead of CONFIG_THUMB2_KERNEL. CONFIG_ARM_THUMB just controls whether Thumb binaries in userspace are supported. However, we do want all code to be buildable in Thumb-2 for ARMv7-capable platforms.)
It looks like the above code comes from the the act_mm macro in arch/arm/mm/proc-macros.S, which only seems to be used for fairly old processors, so I wouldn't expect to see a problem when building for Beagle xM (or using omap2plus_defconfig).
Are you sure you're building with the correct kernel config? What file is being built when you get these errors?
Cheers ---Dave
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 07/26/2011 03:02 PM, Dave Martin wrote:
On Mon, Jul 25, 2011 at 12:55:54PM +0200, Daniel Lezcano wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi All,
I was trying to compile the kernel tree located at:
http://git.linaro.org/gitweb?p=people/amitk/linux-linaro-pmwg.git%3Ba=summar...
What branch and what tag or head commit were you building?
for a beagleboardXM but the compilation fails with the error
/tmp/ccnUvsew.s: Assembler messages: /tmp/ccnUvsew.s:298: Error: r13 not allowed here -- `bic r7,sp,#8128' /tmp/ccnUvsew.s:567: Error: r13 not allowed here -- `bic r3,sp,#8128' /tmp/ccnUvsew.s:642: Error: r13 not allowed here -- `bic r3,sp,#8128' /tmp/ccnUvsew.s:808: Error: r13 not allowed here -- `bic r4,sp,#8128' /tmp/ccnUvsew.s:1459: Error: r13 not allowed here -- `bic r3,sp,#8128'
I suspected the problem was related to the thumb instruction, I disabled it in the config but I have still the error.
Your suspicions are correct -- use of sp as a general-purpose register operand is much more restricted in Thumb-2 than in ARM. (Most of those fancy uses of sp are deprecated in ARM also, since ARMv7.)
(Possibly, you disabled CONFIG_ARM_THUMB instead of CONFIG_THUMB2_KERNEL. CONFIG_ARM_THUMB just controls whether Thumb binaries in userspace are supported. However, we do want all code to be buildable in Thumb-2 for ARMv7-capable platforms.)
You are right, I disabled the wrong option :)
I successfully compiled the kernel.
Do I need a more recent version for my cross compiler if I want thumb2 enabled ?
Thanks a lot for your help !
-- Daniel
- -- http://www.linaro.org/ Linaro.org ? Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro Facebook | http://twitter.com/#!/linaroorg Twitter | http://www.linaro.org/linaro-blog/ Blog