Bug#623964: ARM -mcpu=all and -march=all options are broken
Package: binutils
Version: 2.21.51.20110419-2
Severity: grave
GNU as documentation says about the -mcpu option for ARM:
The special name `all' may be used to allow the assembler to
accept instructions valid for any ARM processor.
However, this no longer works, resulting in failure to build Linux on
ARM:
AS arch/arm/boot/compressed/head.o
/build/buildd-linux-2.6_2.6.38-4-armel-xrLbTR/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/boot/compressed/head.S: Assembler messages:
/build/buildd-linux-2.6_2.6.38-4-armel-xrLbTR/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/boot/compressed/head.S:135: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
/build/buildd-linux-2.6_2.6.38-4-armel-xrLbTR/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/boot/compressed/head.S:142: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
/build/buildd-linux-2.6_2.6.38-4-armel-xrLbTR/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/boot/compressed/head.S:144: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2'
The command line is:
gcc-4.4 -Wp,-MD,arch/arm/boot/compressed/.head.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.4.6/include -I/home/benh/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/include -Iinclude -I/home/benh/linux-2.6-2.6.38/debian/build/source_armel_none/include -include include/generated/autoconf.h -D__KERNEL__ -mlittle-endian -I/home/benh/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/mach-kirkwood/include -I/home/benh/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/plat-orion/include -D__ASSEMBLY__ -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=xscale -include asm/unified.h -msoft-float -Wa,-march=all -DTEXT_OFFSET=0x00008000 -c -o arch/arm/boot/compressed/head.o /home/benh/linux-2.6-2.6.38/debian/build/source_armel_none/arch/arm/boot/compressed/head.S
Changing '-march=all' (which is not explicitly documented) to
'-mcpu=all' makes no difference.
This regression appears to have happened since binutils
2.21.0.20110327-2, as that appears to have been used to build
linux-2.6 version 2.6.38-3.
Ben.
-- System Information:
Debian Release: wheezy/sid
APT prefers proposed-updates
APT policy: (500, 'proposed-updates'), (500, 'oldstable-proposed-updates'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (x86_64)
Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages binutils depends on:
ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib
ii libgcc1 1:4.6.0-5 GCC support library
ii libstdc++6 4.6.0-5 The GNU Standard C++ Library v3
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
binutils recommends no packages.
Versions of packages binutils suggests:
pn binutils-doc <none> (no description available)
-- no debconf information
Reply to: