diff options
-rw-r--r-- | Rules.mak | 43 | ||||
-rw-r--r-- | extra/Configs/Config.alpha | 7 | ||||
-rw-r--r-- | extra/Configs/Config.arm | 14 | ||||
-rw-r--r-- | extra/Configs/Config.cris | 4 | ||||
-rw-r--r-- | extra/Configs/Config.h8300 | 10 | ||||
-rw-r--r-- | extra/Configs/Config.i386 | 23 | ||||
-rw-r--r-- | extra/Configs/Config.i386.default | 1 | ||||
-rw-r--r-- | extra/Configs/Config.i960 | 10 | ||||
-rw-r--r-- | extra/Configs/Config.in.arch | 5 | ||||
-rw-r--r-- | extra/Configs/Config.m68k | 6 | ||||
-rw-r--r-- | extra/Configs/Config.mips | 7 | ||||
-rw-r--r-- | extra/Configs/Config.mipsel | 7 | ||||
-rw-r--r-- | extra/Configs/Config.powerpc | 7 | ||||
-rw-r--r-- | extra/Configs/Config.sh | 18 | ||||
-rw-r--r-- | extra/Configs/Config.sparc | 4 | ||||
-rw-r--r-- | extra/Configs/Config.v850e | 11 |
16 files changed, 51 insertions, 126 deletions
@@ -94,20 +94,45 @@ export LC_COLLATE 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 @@ -115,7 +140,7 @@ WARNINGS+=-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing 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) diff --git a/extra/Configs/Config.alpha b/extra/Configs/Config.alpha index 3a13d9826..0f55c3252 100644 --- a/extra/Configs/Config.alpha +++ b/extra/Configs/Config.alpha @@ -11,21 +11,14 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string - default "" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" source "extra/Configs/Config.in.arch" diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index e11ec1008..f458f23a1 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -11,21 +11,14 @@ config HAVE_ELF 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" @@ -66,13 +59,6 @@ config ARCH_HAS_NO_MMU bool default y if CONFIG_ARM7TDMI -config CPU_CFLAGS - string - default "" if CONFIG_GENERIC_ARM - default "-march=arm7tdmi" if CONFIG_ARM7TDMI - default "-march=strongarm" if CONFIG_STRONGARM - default "$(call check_gcc,-march=xscale,-march=strongarm)" if CONFIG_XSCALE - source "extra/Configs/Config.in.arch" endmenu diff --git a/extra/Configs/Config.cris b/extra/Configs/Config.cris index 983570f78..4d3514689 100644 --- a/extra/Configs/Config.cris +++ b/extra/Configs/Config.cris @@ -11,10 +11,6 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string default "-fpic -mlinux -D__USE_WEAK_ALIASES" diff --git a/extra/Configs/Config.h8300 b/extra/Configs/Config.h8300 index e3a63a5af..8c17d89a9 100644 --- a/extra/Configs/Config.h8300 +++ b/extra/Configs/Config.h8300 @@ -11,26 +11,24 @@ config HAVE_ELF bool default n -config C_SYMBOL_PREFIX - string - default "_" - config ARCH_CFLAGS string default "-mh -mint32 -fsigned-char" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" config ARCH_HAS_NO_MMU bool default y +config ARCH_HAS_C_SYMBOL_PREFIX + bool + default y + source "extra/Configs/Config.in.arch" endmenu diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386 index 463da8e2b..55f609bb6 100644 --- a/extra/Configs/Config.i386 +++ b/extra/Configs/Config.i386 @@ -11,21 +11,14 @@ config HAVE_ELF 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" @@ -100,22 +93,6 @@ config CONFIG_CYRIXIII 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 diff --git a/extra/Configs/Config.i386.default b/extra/Configs/Config.i386.default index b563f47c3..bc215596f 100644 --- a/extra/Configs/Config.i386.default +++ b/extra/Configs/Config.i386.default @@ -27,7 +27,6 @@ HAS_FPU=y # DO_C99_MATH is not set WARNINGS="-Wall" KERNEL_SOURCE="/usr/src/linux" -C_SYMBOL_PREFIX="" UCLIBC_UCLINUX_BROKEN_MUNMAP=y HAVE_ELF=y # HAVE_DOT_HIDDEN is not set diff --git a/extra/Configs/Config.i960 b/extra/Configs/Config.i960 index 4ffafdf01..ac35628c2 100644 --- a/extra/Configs/Config.i960 +++ b/extra/Configs/Config.i960 @@ -11,26 +11,24 @@ config HAVE_ELF bool default n -config C_SYMBOL_PREFIX - string - default "_" - config ARCH_CFLAGS string default "-mh -mint32 -fsigned-char" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" config ARCH_HAS_NO_MMU bool default y +config ARCH_HAS_C_SYMBOL_PREFIX + bool + default y + source "extra/Configs/Config.in.arch" endmenu diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch index 6e9f5fb82..1e7b1129a 100644 --- a/extra/Configs/Config.in.arch +++ b/extra/Configs/Config.in.arch @@ -82,3 +82,8 @@ config EXCLUDE_BRK depends on !UCLIBC_HAS_MMU default y +config C_SYMBOL_PREFIX + string + default "_" if ARCH_HAS_C_SYMBOL_PREFIX + default "" if !ARCH_HAS_C_SYMBOL_PREFIX + diff --git a/extra/Configs/Config.m68k b/extra/Configs/Config.m68k index ca36c0cd0..48c70fe54 100644 --- a/extra/Configs/Config.m68k +++ b/extra/Configs/Config.m68k @@ -11,21 +11,15 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string default "-Wa,--bitwise-or -I$(KERNEL_SOURCE)/include" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" config HAVE_ELF bool diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips index 72f7f6d50..8ede6f26f 100644 --- a/extra/Configs/Config.mips +++ b/extra/Configs/Config.mips @@ -11,21 +11,14 @@ config HAVE_ELF 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 Endianness" diff --git a/extra/Configs/Config.mipsel b/extra/Configs/Config.mipsel index 3a13d9826..0f55c3252 100644 --- a/extra/Configs/Config.mipsel +++ b/extra/Configs/Config.mipsel @@ -11,21 +11,14 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string - default "" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" source "extra/Configs/Config.in.arch" diff --git a/extra/Configs/Config.powerpc b/extra/Configs/Config.powerpc index 3a13d9826..0f55c3252 100644 --- a/extra/Configs/Config.powerpc +++ b/extra/Configs/Config.powerpc @@ -11,21 +11,14 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string - default "" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" source "extra/Configs/Config.in.arch" diff --git a/extra/Configs/Config.sh b/extra/Configs/Config.sh index 5b7f1c907..bcd273487 100644 --- a/extra/Configs/Config.sh +++ b/extra/Configs/Config.sh @@ -11,21 +11,14 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string - default "" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" config HAVE_DOT_HIDDEN bool @@ -80,17 +73,6 @@ config ARCH_HAS_NO_MMU bool default y if CONFIG_SH2 || CONFIG_SH3 -config CPU_CFLAGS - string - default "-ml -m2" if CONFIG_SH2 && ARCH_LITTLE_ENDIAN - default "-mb -m2" if CONFIG_SH2 && ARCH_BIG_ENDIAN - default "-ml -m3" if CONFIG_SH3 && ARCH_LITTLE_ENDIAN - default "-mb -m3" if CONFIG_SH3 && ARCH_BIG_ENDIAN - default "-ml -m4" if CONFIG_SH4 && ARCH_LITTLE_ENDIAN - default "-mb -m4" if CONFIG_SH4 && ARCH_BIG_ENDIAN - default "-ml -m5" if CONFIG_SH5 && ARCH_LITTLE_ENDIAN - default "-mb -m5" if CONFIG_SH5 && ARCH_BIG_ENDIAN - source "extra/Configs/Config.in.arch" endmenu diff --git a/extra/Configs/Config.sparc b/extra/Configs/Config.sparc index 983570f78..4d3514689 100644 --- a/extra/Configs/Config.sparc +++ b/extra/Configs/Config.sparc @@ -11,10 +11,6 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "" - config ARCH_CFLAGS string default "-fpic -mlinux -D__USE_WEAK_ALIASES" diff --git a/extra/Configs/Config.v850e b/extra/Configs/Config.v850e index 176e43e14..c0a7226ed 100644 --- a/extra/Configs/Config.v850e +++ b/extra/Configs/Config.v850e @@ -11,21 +11,14 @@ config HAVE_ELF bool default y -config C_SYMBOL_PREFIX - string - default "_" - config ARCH_CFLAGS string - default "" config ARCH_LDFLAGS string - default "" config LIBGCC_CFLAGS string - default "" config HAVE_ELF bool @@ -35,6 +28,10 @@ config ARCH_HAS_NO_MMU bool default y +config ARCH_HAS_C_SYMBOL_PREFIX + bool + default y + source "extra/Configs/Config.in.arch" endmenu |