I'm having trouble building the Thumb2 kernel on, I actually believe this same code worked some time ago before a toolchain update. There are actually two problems described below. I get past the first with a config change but don't know how to fix the second one.
Start with mx51_defconfig, it builds uImage fine:
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mx51_defconfig $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage
Save the working .config to config1
$ cp .config config1
Edit .config and remove this line then run make oldconfig. $ CONFIG_THUMB2_KERNEL is not set
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig
Answer y to THUMB2_KERNEL and THUMB2_AVOID_R_ARM_THM_JUMP11 Save new Thumb2 enabled config to config2 Here is the diff:
$ diff -u config1 config2 --- config1 2011-08-21 14:50:23.014654705 -0600 +++ config2 2011-08-21 14:51:13.164654727 -0600 @@ -339,9 +339,10 @@ CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_HZ=100 -# CONFIG_THUMB2_KERNEL is not set +CONFIG_THUMB2_KERNEL=y +CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y +CONFIG_ARM_ASM_UNIFIED=y CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set CONFIG_HAVE_ARCH_PFN_VALID=y @@ -1417,7 +1418,6 @@ # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set @@ -1429,7 +1429,6 @@ # CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_C_RECORDMCOUNT=y
Attempt to build this:
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage
...
LD init/built-in.o LD .tmp_vmlinux1 arch/arm/kernel/built-in.o: In function `get_wchan': early_printk.c:(.text+0x1400): undefined reference to `unwind_frame' arch/arm/kernel/built-in.o: In function `walk_stackframe': early_printk.c:(.text+0x2832): undefined reference to `unwind_frame' make: *** [.tmp_vmlinux1] Error 1
Poke around a bit and it looks like setting ARM_UNWIND could make difference so try that. Edit .config the remove # CONFIG_ARM_UNWIND is not set then run make old config again.
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- oldconfig
Call the result config3
$ cp .config config3
So here is the cumulative diff
$ diff -u config1 config3 --- config1 2011-08-21 14:50:23.014654705 -0600 +++ config3 2011-08-21 14:54:29.584654811 -0600 @@ -339,9 +339,10 @@ CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_HZ=100 -# CONFIG_THUMB2_KERNEL is not set +CONFIG_THUMB2_KERNEL=y +CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y +CONFIG_ARM_ASM_UNIFIED=y CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set CONFIG_HAVE_ARCH_PFN_VALID=y @@ -1417,7 +1418,6 @@ # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set @@ -1429,7 +1429,6 @@ # CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_C_RECORDMCOUNT=y @@ -1443,7 +1442,7 @@ # CONFIG_KGDB is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set -# CONFIG_ARM_UNWIND is not set +CONFIG_ARM_UNWIND=y # CONFIG_DEBUG_USER is not set CONFIG_DEBUG_LL=y CONFIG_EARLY_PRINTK=y
Try building again.
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage
...
LD vmlinux SYSMAP System.map SYSMAP .tmp_System.map OBJCOPY arch/arm/boot/Image Kernel: arch/arm/boot/Image is ready AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
Here is my gcc version:
$ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.1-5ubuntu2~ppa1) 4.6.1 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
And as version: GNU assembler (GNU Binutils for Ubuntu) 2.21.52.20110707 Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `arm-linux-gnueabi'.
Three configs attached:
config1 -- original config from make mx51_defconfig config2 -- config after turning on thumb2 config3 -- config after setting ARM_UNWIND
Any help would be appreciated.
Thanks John
On Sun, 21 Aug 2011, John Rigby wrote:
I'm having trouble building the Thumb2 kernel on, I actually believe this same code worked some time ago before a toolchain update. There are actually two problems described below. I get past the first with a config change but don't know how to fix the second one.
[...]
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
Here is my gcc version:
$ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.1-5ubuntu2~ppa1) 4.6.1 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
And as version: GNU assembler (GNU Binutils for Ubuntu) 2.21.52.20110707 Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `arm-linux-gnueabi'.
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
To confirm, please try this:
echo -e ".arch armv7-a\n.thumb\nmrs r2, cpsr" | \ arm-linux-gnueabi-as - -o /dev/null
If that works then your assembler is fine. In that case the following should fail:
echo -e ".thumb\nmrs r2, cpsr" | \ arm-linux-gnueabi-gcc -march=armv7-a -x assembler -o /dev/null -c -
If for some reasons this works too, then the kernel build might be wrong. In that case, see the output of:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- V=1 \ arch/arm/boot/compressed/head.o
I have: arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.5.2-8ubuntu3) 4.5.2 GNU assembler (GNU Binutils for Ubuntu) 2.21.0.20110327 And that works for me just fine.
Nicolas
On Sun, Aug 21, 2011 at 7:54 PM, Nicolas Pitre nicolas.pitre@linaro.org wrote:
On Sun, 21 Aug 2011, John Rigby wrote:
I'm having trouble building the Thumb2 kernel on, I actually believe this same code worked some time ago before a toolchain update. There are actually two problems described below. I get past the first with a config change but don't know how to fix the second one.
[...]
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
Here is my gcc version:
$ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.1-5ubuntu2~ppa1) 4.6.1 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
And as version: GNU assembler (GNU Binutils for Ubuntu) 2.21.52.20110707 Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `arm-linux-gnueabi'.
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
To confirm, please try this:
echo -e ".arch armv7-a\n.thumb\nmrs r2, cpsr" | \ arm-linux-gnueabi-as - -o /dev/null
If that works then your assembler is fine. In that case the following should fail:
echo -e ".thumb\nmrs r2, cpsr" | \ arm-linux-gnueabi-gcc -march=armv7-a -x assembler -o /dev/null -c -
If for some reasons this works too, then the kernel build might be wrong. In that case, see the output of:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- V=1 \ arch/arm/boot/compressed/head.o
I have: arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.5.2-8ubuntu3) 4.5.2 GNU assembler (GNU Binutils for Ubuntu) 2.21.0.20110327 And that works for me just fine.
Thanks for the info, just before reading your response I found this problem in GNU assembler when you say -march=all:
http://sourceware.org/bugzilla/show_bug.cgi?id=12698
I have a workaround now by setting in -march=armv7-a in arch/arm/boot/compressed/Makefile instead of -march=all.
Meanwhile Ricardo is working on a fix to binutils in a ppa.
--john
Hi guys,
On Sun, Aug 21, 2011 at 9:29 PM, John Rigby john.rigby@linaro.org wrote:
On Sun, Aug 21, 2011 at 7:54 PM, Nicolas Pitre nicolas.pitre@linaro.org wrote:
On Sun, 21 Aug 2011, John Rigby wrote:
I'm having trouble building the Thumb2 kernel on, I actually believe this same code worked some time ago before a toolchain update. There are actually two problems described below. I get past the first with a config change but don't know how to fix the second one.
[...]
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
Here is my gcc version:
$ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.1-5ubuntu2~ppa1) 4.6.1 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
And as version: GNU assembler (GNU Binutils for Ubuntu) 2.21.52.20110707 Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `arm-linux-gnueabi'.
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
To confirm, please try this:
echo -e ".arch armv7-a\n.thumb\nmrs r2, cpsr" | \ arm-linux-gnueabi-as - -o /dev/null
If that works then your assembler is fine. In that case the following should fail:
echo -e ".thumb\nmrs r2, cpsr" | \ arm-linux-gnueabi-gcc -march=armv7-a -x assembler -o /dev/null -c -
If for some reasons this works too, then the kernel build might be wrong. In that case, see the output of:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- V=1 \ arch/arm/boot/compressed/head.o
I have: arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.5.2-8ubuntu3) 4.5.2 GNU assembler (GNU Binutils for Ubuntu) 2.21.0.20110327 And that works for me just fine.
Thanks for the info, just before reading your response I found this problem in GNU assembler when you say -march=all:
http://sourceware.org/bugzilla/show_bug.cgi?id=12698
I have a workaround now by setting in -march=armv7-a in arch/arm/boot/compressed/Makefile instead of -march=all.
Meanwhile Ricardo is working on a fix to binutils in a ppa.
Resurrecting this as I just hit exactly the same problem cross-compiling a kernel with the gcc 4.6.1 compiler from the "linaro toolchain backports" PPA.
make -f scripts/Makefile.build obj=arch/arm/boot/compressed arch/arm/boot/compressed/head.o arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/boot/compressed/.head.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.6.1/include -I/build/hub/linux-testing/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /build/hub/linux-testing/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-mx5/include -Iarch/arm/plat-mxc/include -D__ASSEMBLY__ -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -mthumb -Wa,-mimplicit-it=always -Wa,-mno-warn-deprecated -Wa,-mthumb -D__LINUX_ARM_ARCH__=7 -march=armv7-a -include asm/unified.h -msoft-float -Wa,-march=all -DTEXT_OFFSET=0x00008000 -c -o arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[1]: *** [arch/arm/boot/compressed/head.o] Error 1 make: *** [arch/arm/boot/compressed/head.o] Error 2
As far as I understand it (from that bug link John posted) that -march=armv7-a should have caused this error to never appear, but it's there.
I'm kind of languishing in gcc 4.4 hell right now and would quite like an updated toolchain for 4.6.2 or thereabouts (synced with the 2012.12 Linaro release). Is this available as a package or PPA somewhere or am I going to spend the night compilercompiling?
W dniu 21.02.2012 04:37, Matt Sealey pisze:
I'm kind of languishing in gcc 4.4 hell right now and would quite like an updated toolchain for 4.6.2 or thereabouts (synced with the 2012.12 Linaro release). Is this available as a package or PPA somewhere or am I going to spend the night compilercompiling?
I have to update toolchain backport ppa with something more up to date. Will do this week.
On Tue, Feb 21, 2012 at 1:03 AM, Marcin Juszkiewicz marcin.juszkiewicz@linaro.org wrote:
W dniu 21.02.2012 04:37, Matt Sealey pisze:
I'm kind of languishing in gcc 4.4 hell right now and would quite like an updated toolchain for 4.6.2 or thereabouts (synced with the 2012.12 Linaro release). Is this available as a package or PPA somewhere or am I going to spend the night compilercompiling?
I have to update toolchain backport ppa with something more up to date. Will do this week.
That would be much appreciated. Thanks in advance!
Oh.... just an FYI, after installing the existing 4.5 (doesn't work with C++ btw hrw, libstdc++6-4.5 won't install due to a version mismatch so that PPA definitely needs a kick) and then 4.6 to perform testing and hitting that error, rolling back to 4.5 and then 4.4, I still get that same error happening.
My binutils hasn't changed (2.21.53.20110810 from hrw), it just never happened with 4.4 before until I changed my symlinks and then put them back, what on earth is going on here? :(
neko@shinji:/etc$ sudo apt-get install gcc-4.4-arm-linux-gnueabi libc6-armel-cross libc6-dev-armel-cross cpp-4.4-arm-linux-gnueabi g++-4.4-arm-linux-gnueabi Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: gcc-4.4-arm-linux-gnueabi-base gcc-4.6-arm-linux-gnueabi-base libgcc1-armel-cross libgomp1-armel-cross libmpfr1ldbl libstdc++6-4.4-dev-armel-cross libstdc++6-armel-cross linux-libc-dev-armel-cross Suggested packages: gcc-4.4-locales gcc-4.4-doc libstdc++6-4.4-dbg-armel-cross libmudflap0-4.4-dev-armel-cross libgcc1-dbg-armel-cross libgomp1-dbg-armel-cross libmudflap0-dbg-armel-cross The following NEW packages will be installed: cpp-4.4-arm-linux-gnueabi g++-4.4-arm-linux-gnueabi gcc-4.4-arm-linux-gnueabi gcc-4.4-arm-linux-gnueabi-base gcc-4.6-arm-linux-gnueabi-base libc6-armel-cross libc6-dev-armel-cross libgcc1-armel-cross libgomp1-armel-cross libmpfr1ldbl libstdc++6-4.4-dev-armel-cross libstdc++6-armel-cross linux-libc-dev-armel-cross 0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/16.2 MB of archives. After this operation, 34.4 MB of additional disk space will be used. Do you want to continue [Y/n]?
Marcin: Why is gcc-4.6-arm-linux-gnueabi-base a dependency of gcc 4.4?
On Sun, Aug 21, 2011 at 09:54:56PM -0400, Nicolas Pitre wrote:
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
[...]
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
Right. And the original unwind-related missing symbols is a problem somewhere in configuration land?
On Mon, 22 Aug 2011, Christian Robottom Reis wrote:
On Sun, Aug 21, 2011 at 09:54:56PM -0400, Nicolas Pitre wrote:
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
[...]
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
Right. And the original unwind-related missing symbols is a problem somewhere in configuration land?
Yep. That one looks trivial.
Nicolas
On Mon, Aug 22, 2011 at 10:42:39AM -0300, Christian Robottom Reis wrote:
On Sun, Aug 21, 2011 at 09:54:56PM -0400, Nicolas Pitre wrote:
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
[...]
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
Right. And the original unwind-related missing symbols is a problem somewhere in configuration land?
We should turn on CONFIG_ARM_UNWIND in all the global configs if it's not already on.
Thumb-2 requires it in practice, but it does no harm for ARM either -- in principle it may reduce run-time stack usage in the kernel by a small amount (but don't quote me on that)
Cheers ---Dave
On Wed, Aug 31, 2011 at 03:03:21PM +0100, Dave Martin wrote:
On Mon, Aug 22, 2011 at 10:42:39AM -0300, Christian Robottom Reis wrote:
On Sun, Aug 21, 2011 at 09:54:56PM -0400, Nicolas Pitre wrote:
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
[...]
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
Right. And the original unwind-related missing symbols is a problem somewhere in configuration land?
We should turn on CONFIG_ARM_UNWIND in all the global configs if it's not already on.
Okay. So how does this get done?
On Wed, Aug 31, 2011 at 11:25 AM, Christian Robottom Reis kiko@linaro.org wrote:
On Wed, Aug 31, 2011 at 03:03:21PM +0100, Dave Martin wrote:
On Mon, Aug 22, 2011 at 10:42:39AM -0300, Christian Robottom Reis wrote:
On Sun, Aug 21, 2011 at 09:54:56PM -0400, Nicolas Pitre wrote:
AS arch/arm/boot/compressed/head.o arch/arm/boot/compressed/head.S: Assembler messages: arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr' arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2' make[2]: *** [arch/arm/boot/compressed/head.o] Error 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2 make: *** [uImage] Error 2
[...]
Looks to me like your assembler is broken, or gcc is not properly telling it about the actual architecture in use.
Right. And the original unwind-related missing symbols is a problem somewhere in configuration land?
We should turn on CONFIG_ARM_UNWIND in all the global configs if it's not already on.
Okay. So how does this get done?
Its on my plate.