Hi, I try to compile a bootloader "vivi" for my strongARM embedded system. However, when i run "make"
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc
-I/root/cheong/gsl/linuette/vivi/include -I/opt/host/armv4l/include/
-Wall -Wstrict-prototypes -O2 -fPIC -fomit-frame-pointer -mapcs-32
-mshort-load-bytes -msoft-float -c -o init/main.o init/main.c
as: ????? `-mapcs-32' make: *** [init/main.o] Error 1
So what is the problem from "-mapcs-32"? As I refer to arm-opion for my gcc-2.95.2
It should supported this options!
My gcc compiler is "armv4l-unknown-linux-gcc" and my Makefile under the vivi/arch/Makefile is like this:
-------------------------------------------------------------- # Select CPU dependent flags. Note that order of declaration is important; # the options further down the list override previous items. # # Note! For APCS-26 YOU MUST HAVE AN APCS-26 LIBGCC.A # apcs-y :=-mapcs-32
# This selects which instruction set is used. arch-y := arch-$(CONFIG_CPU_32v4) :=-march=armv4
# This selects how we optimise for the processor. tune-y := tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes
-msoft-float AFLAGS +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float
ifeq ($(CONFIG_CPU_32),y) PROCESSOR = armv TEXTADDR = 0x00000000 endif LDSCRIPT = arch/vivi.lds.in
ifeq ($(CONFIG_ARCH_SA1100),y) MACHINE = sa1100 TEXTADDR = 0x00000000 endif
ifeq ($(CONFIG_ARCH_S3C2400),y) MACHINE = s3c2400 ifeq ($(CONFIG_S3C2400_GAMEPARK),y) TEXTADDR = 0x00000000 ifeq ($(CONFIG_S3C2400_GAMEPARK_OSSWITCH),y) TEXTADDR = 0x00100000 endif ifeq ($(CONFIG_S3C2400_GAMEPARK_ON_RAM),y) TEXTADDR = 0x0C000000 endif else TEXTADDR = 0x00000000 endif endif
... ....