[git commit] i386: punt all config options that just control -march

Mike Frysinger vapier at gentoo.org
Sun May 19 05:09:07 UTC 2013


commit: http://git.uclibc.org/uClibc/commit/?id=54a97c4dc41a9baa097b503ac6ff01992c1c8899
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

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 at gentoo.org>
---
 Rules.mak                 |   32 ++-----------------
 extra/Configs/Config.i386 |   77 +++-----------------------------------------
 extra/Configs/Config.in   |    6 ++--
 3 files changed, 12 insertions(+), 103 deletions(-)

diff --git a/Rules.mak b/Rules.mak
index 2c8fabc..792b794 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -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 63383ce..c928ac1 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 3737d85..e1120ac 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"


More information about the uClibc-cvs mailing list