gcc assembler seems to use x86_64 even when '--32' specified

view story

http://stackoverflow.com – I am building 32-bit linux kernel on 64-bit linux host. (version 2.6.9 both on host and the target). I am doing the following: make ARCH=i386 CFLAGS='-m32 -Iinclude/asm/mach-default' ASFLAGS='-march=i386 --32' even I specified the ASFLAGS for make, I still got the following warning and errors: AS usr/initramfs_data.o LD usr/built-in.o ld: warning: i386:x86-64 architecture of input file `usr/initramfs_data.o' is incompatible with i386 output <snip> AS arch/i386/kernel/entry.o arch/i386/kernel/entry.S: Assembler messages: arch/i386/kernel/entry.S:145: Error: su (HowTos)