diff options
author | Mike Frysinger <vapier@gentoo.org> | 2013-05-19 01:09:07 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2013-05-19 01:09:07 -0400 |
commit | 54a97c4dc41a9baa097b503ac6ff01992c1c8899 (patch) | |
tree | befad2f5e4831c503c8c4f42226a0a77ead46009 | |
parent | 71c10c484e7dc113396cccb7e503befb759c6346 (diff) |
i386: punt all config options that just control -march
You can set these yourself in your CFLAGS, and our list is incomplete
and pointless (we agreed some time ago to stop doing this).
We keep around CONFIG_[3456]86 because it is used to select between
different optimized subdirs of handcoded assembly.
Also take this opportunity to up the default to i686. If you're using
an older cpu, then you can handle changing this yourself.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | Rules.mak | 32 | ||||
-rw-r--r-- | extra/Configs/Config.i386 | 77 | ||||
-rw-r--r-- | extra/Configs/Config.in | 6 |
3 files changed, 12 insertions, 103 deletions
@@ -331,7 +331,9 @@ ifeq ($(TARGET_ARCH),i386) $(eval $(call check-gcc-var,-fomit-frame-pointer)) OPTIMIZATION += $(CFLAG_-fomit-frame-pointer) -ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586)$(CONFIG_586MMX),y) +ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586),y) + # TODO: Change this to a gcc version check. This bug + # should be fixed with at least gcc-4.3. # Non-SSE capable processor. # NB: this may make SSE insns segfault! # -O1 -march=pentium3, -Os -msse etc are known to be affected. @@ -350,18 +352,6 @@ endif # -falign-jumps: reachable only by a jump # Generic: no alignment at all (smallest code) GCC_FALIGN=$(call check_gcc,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,-malign-jumps=1 -malign-loops=1) -ifeq ($(CONFIG_K7),y) - # Align functions to four bytes, use default for jumps and loops (why?) - GCC_FALIGN=$(call check_gcc,-falign-functions=4 -falign-labels=1,-malign-functions=4) -endif -ifeq ($(CONFIG_CRUSOE),y) - # Use compiler's default for functions, jumps and loops (why?) - GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0) -endif -ifeq ($(CONFIG_CYRIXIII),y) - # Use compiler's default for functions, jumps and loops (why?) - GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0) -endif OPTIMIZATION+=$(GCC_FALIGN) # Putting each function and data object into its own section @@ -386,22 +376,6 @@ $(eval $(call check-ld-var,--sort-section=alignment)) CPU_LDFLAGS-y+=-m32 CPU_CFLAGS-y+=-m32 - CPU_CFLAGS-$(CONFIG_386)+=-march=i386 - CPU_CFLAGS-$(CONFIG_486)+=-march=i486 - CPU_CFLAGS-$(CONFIG_ELAN)+=-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_PENTIUMII)+=$(call check_gcc,-march=pentium2,-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,-march=i686) - CPU_CFLAGS-$(CONFIG_CRUSOE)+=-march=i686 - 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=i486) - CPU_CFLAGS-$(CONFIG_NEHEMIAH)+=$(call check_gcc,-march=c3-2,-march=i686) endif ifeq ($(TARGET_ARCH),sparc) diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386 index 63383ced2..c928ac1a2 100644 --- a/extra/Configs/Config.i386 +++ b/extra/Configs/Config.i386 @@ -17,41 +17,12 @@ config FORCE_OPTIONS_FOR_ARCH choice prompt "Target x86 Processor Family" - default CONFIG_486 + default CONFIG_686 help This is the processor type of your CPU. This information is used for - optimizing purposes. To build a library that will run on all x86 CPU - types (albeit not optimally fast), you can specify "386" here. If - you pick anything other than "386", there is no guarantee that uClibc - will even run on anything other than the selected processor type. - - Here are the settings recommended for greatest speed: - - "Generic 386" select this if your compiler is already setup to - optimize things properly. - - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI - 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels - will run on a 386 class machine. - - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or - SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. - - "586" for Intel Pentium and other generic Pentium CPUs - - "Pentium-MMX" for the Intel Pentium MMX. - - "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II. - - "Pentium-III" for the Intel Pentium III - and Celerons based on the Coppermine core. - - "Pentium-4" for the Intel Pentium 4. - - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D). - - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird). - - "Elan" for the AMD Elan. - - "Crusoe" for the Transmeta Crusoe series. - - "Winchip-C6" for original IDT Winchip. - - "Winchip-2/Winchip-2A/Winchip-3" for IDT Winchip CPUs - - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3. - - "VIA C3-2 Nehemiah" model 9 and above. - - If you don't know what to do, choose "386". - -config CONFIG_GENERIC_386 - bool "Generic 386" + selecting different handcoded optimization functions. Nowadays, most + people have an i686 CPU. If you don't, you most likely know what this + means and can pick the right one for your processor. config CONFIG_386 bool "386" @@ -60,45 +31,9 @@ config CONFIG_486 bool "486" config CONFIG_586 - bool "Pentium/586/K5/5x86/6x86/6x86MX" - -config CONFIG_586MMX - bool "Pentium-MMX" + bool "586" config CONFIG_686 - bool "Pentium-Pro" - -config CONFIG_PENTIUMII - bool "Celeron/Pentium-II" - -config CONFIG_PENTIUMIII - bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" - -config CONFIG_PENTIUM4 - bool "Pentium-4/Celeron(P4-based)/Xeon" - -config CONFIG_K6 - bool "K6/K6-II/K6-III" - -config CONFIG_K7 - bool "Athlon/Duron/K7" - -config CONFIG_ELAN - bool "Elan" - -config CONFIG_CRUSOE - bool "Crusoe" - -config CONFIG_WINCHIPC6 - bool "Winchip-C6" - -config CONFIG_WINCHIP2 - bool "Winchip-2/Winchip-2A/Winchip-3" - -config CONFIG_CYRIXIII - bool "CyrixIII/VIA-C3" - -config CONFIG_NEHEMIAH - bool "VIA C3-2 (Nehemiah)" + bool "686" endchoice diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 3737d854c..e1120ac28 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -239,10 +239,10 @@ config TARGET_SUBARCH default "e500" if CONFIG_E500 default "classic" if CONFIG_CLASSIC default "sh4" if CONFIG_SH4 - default "" if CONFIG_GENERIC_386 || CONFIG_386 + default "" if CONFIG_386 default "i486" if CONFIG_486 - default "i586" if CONFIG_586 || CONFIG_586MMX - default "i686" if TARGET_ARCH = "i386" + default "i586" if CONFIG_586 + default "i686" if CONFIG_686 default "" source "extra/Configs/Config.in.arch" |