ARFLAGS:=r
-# Some nice architecture specific optimizations
-ifndef OPTIMIZATION
-
# use '-Os' optimization if available, else use -O2, allow Config to override
OPTIMIZATION:=
OPTIMIZATION+=$(call check_gcc,-Os,-O2)
-ifeq ($(strip $(TARGET_ARCH)),arm)
- OPTIMIZATION+=-fstrict-aliasing
-endif
+
+# Some nice CPU specific optimizations
ifeq ($(strip $(TARGET_ARCH)),i386)
OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,)
- OPTIMIZATION+=$(call check_gcc,-falign-functions=0 -falign-jumps=0 -falign-loops=0,\
- -malign-functions=0 -malign-jumps=0 -malign-loops=0)
+ OPTIMIZATION+=$(call check_gcc,-falign-jumps=0 -falign-loops=0,-malign-jumps=0 -malign-loops=0)
+ CPU_CFLAGS-$(CONFIG_386):="-march=i386"
+ CPU_CFLAGS-$(CONFIG_486):="-march=i486"
+ CPU_CFLAGS-$(CONFIG_586):="-march=i586"
+ CPU_CFLAGS-$(CONFIG_586MMX):="$(call check_gcc,-march=pentium-mmx,-march=i586)"
+ CPU_CFLAGS-$(CONFIG_686):="-march=i686"
+ CPU_CFLAGS-$(CONFIG_PENTIUMIII):="$(call check_gcc,-march=pentium3,-march=i686)"
+ CPU_CFLAGS-$(CONFIG_PENTIUM4):="$(call check_gcc,-march=pentium4,-march=i686)"
+ CPU_CFLAGS-$(CONFIG_K6):="$(call check_gcc,-march=k6,-march=i586)"
+ CPU_CFLAGS-$(CONFIG_K7):="$(call check_gcc,-march=athlon,-malign-functions=4 -march=i686)"
+ CPU_CFLAGS-$(CONFIG_CRUSOE):="-march=i686 -malign-functions=0 -malign-jumps=0 -malign-loops=0"
+ CPU_CFLAGS-$(CONFIG_WINCHIPC6):="$(call check_gcc,-march=winchip-c6,-march=i586)"
+ CPU_CFLAGS-$(CONFIG_WINCHIP2):="$(call check_gcc,-march=winchip2,-march=i586)"
+ CPU_CFLAGS-$(CONFIG_CYRIXIII):="$(call check_gcc,-march=c3,-march=i586)"
endif
+
+ifeq ($(strip $(TARGET_ARCH)),arm)
+ OPTIMIZATION+=-fstrict-aliasing
+ CPU_CFLAGS-$(CONFIG_GENERIC_ARM):=
+ CPU_CFLAGS-$(CONFIG_ARM7TDMI):="-march=arm7tdmi"
+ CPU_CFLAGS-$(CONFIG_STRONGARM):="-march=strongarm"
+ CPU_CFLAGS-$(CONFIG_XSCALE):="$(call check_gcc,-march=xscale,-march=strongarm)"
+endif
+
+ifeq ($(strip $(TARGET_ARCH)),sh)
+ OPTIMIZATION+=-fstrict-aliasing
+ CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN):="-ml"
+ CPU_CFLAGS-$(ARCH_BIG_ENDIAN):="-mb"
+ CPU_CFLAGS-$(CONFIG_SH2)+="-m2"
+ CPU_CFLAGS-$(CONFIG_SH3)+="-m3"
+ CPU_CFLAGS-$(CONFIG_SH4)+="-m4"
+ CPU_CFLAGS-$(CONFIG_SH5)+="-m5"
endif
# Add a bunch of extra pedantic annoyingly strict checks
CFLAGS:=$(WARNINGS) $(OPTIMIZATION) -fno-builtin -nostdinc $(CPUFLAGS) \
- -I$(TOPDIR)include -iwithprefix include -I. -D_LIBC $(CPU_CFLAGS) $(ARCH_CFLAGS)
+ -I$(TOPDIR)include -iwithprefix include -I. -D_LIBC $(CPU_CFLAGS-y) $(ARCH_CFLAGS)
NATIVE_CFLAGS:=-O2 -Wall
ifeq ($(strip $(DODEBUG)),y)
bool
default y
-config C_SYMBOL_PREFIX
- string
- default ""
-
config ARCH_CFLAGS
string
- default ""
config ARCH_LDFLAGS
string
- default ""
config LIBGCC_CFLAGS
string
- default ""
choice
prompt "Target Processor Type"
endchoice
-config CPU_CFLAGS
- string
- default "-march=i386" if CONFIG_386
- default "-march=i486" if CONFIG_486
- default "-march=i586" if CONFIG_586
- default "$(call check_gcc,-march=pentium-mmx,-march=i586)" if CONFIG_586MMX
- default "-march=i686" if CONFIG_686
- default "$(call check_gcc,-march=pentium3,-march=i686)" if CONFIG_PENTIUMIII
- default "$(call check_gcc,-march=pentium4,-march=i686)" if CONFIG_PENTIUM4
- default "$(call check_gcc,-march=k6,-march=i586)" if CONFIG_K6
- default "$(call check_gcc,-march=athlon,-march=i686 -malign-functions=4)" if CONFIG_K7
- default "-march=i686 -malign-functions=0 -malign-jumps=0 -malign-loops=0" if CONFIG_CRUSOE
- default "$(call check_gcc,-march=winchip-c6,-march=i586)" if CONFIG_WINCHIPC6
- default "$(call check_gcc,-march=winchip2,-march=i586)" if CONFIG_WINCHIP2
- default "$(call check_gcc,-march=c3,-march=i586)" if CONFIG_CYRIXIII
-
source "extra/Configs/Config.in.arch"
endmenu