Commits

Elliott Hughes  committed d3f00c1

Remove useless x86 options that were always hardcoded on.

ARCH_X86_HAVE_MMX, ARCH_X86_HAVE_SSE, ARCH_X86_HAVE_SSE2,
and ARCH_X86_HAVE_SSE3 were all always on. There are no longer any makefiles
or code that are conditional on any of these, so let's just remove them
rather than encourage anyone to mess with knobs that don't work.

Change-Id: I5ee095e8041eecff4554ad4801894fbfca69093f

  • Participants
  • Parent commits 9a78828

Comments (0)

Files changed (8)

File core/combo/TARGET_linux-x86.mk

 			-fno-use-cxa-atexit
 
 TARGET_GLOBAL_CFLAGS += $(arch_variant_cflags)
+TARGET_GLOBAL_CFLAGS += -mmmx
+TARGET_GLOBAL_CFLAGS += -msse
+TARGET_GLOBAL_CFLAGS += -DUSE_SSE2 -msse2
+TARGET_GLOBAL_CFLAGS += -msse3
 
-ifeq ($(ARCH_X86_HAVE_MMX),true)
-    TARGET_GLOBAL_CFLAGS += -DUSE_MMX -mmmx
-endif
-ifeq ($(ARCH_X86_HAVE_SSE),true)
-    TARGET_GLOBAL_CFLAGS += -DUSE_SSE -msse
-endif
-ifeq ($(ARCH_X86_HAVE_SSE2),true)
-    TARGET_GLOBAL_CFLAGS += -DUSE_SSE2 -msse2
-endif
-ifeq ($(ARCH_X86_HAVE_SSE3),true)
-    TARGET_GLOBAL_CFLAGS += -DUSE_SSE3 -msse3
-endif
 ifeq ($(ARCH_X86_HAVE_SSSE3),true)   # yes, really SSSE3, not SSE3!
     TARGET_GLOBAL_CFLAGS += -DUSE_SSSE3 -mssse3
 endif
 	-Wl,--end-group \
 	$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
 endef
-
-# Special check for x86 NDK ABI compatibility.
-# The TARGET_CPU_ABI variable should be defined in BoardConfig.mk to 'x86'
-# *only* if the platform image is compatible with the NDK x86 ABI.
-#
-# We perform a small check here to ensure that nothing bad can happen.
-#
-ifeq ($(TARGET_CPU_ABI),x86)
-  ifneq (true-true-true-true,$(ARCH_X86_HAVE_MMX)-$(ARCH_X86_HAVE_SSE)-$(ARCH_X86_HAVE_SSE2)-$(ARCH_X86_HAVE_SSE3))
-    $(info ERROR: Your x86 platform image is not compatible with the NDK x86 ABI)
-    $(info As such, you should *not* define TARGET_CPU_ABI to 'x86' in your BoardConfig.mk)
-    $(info to ensure that your device will not be mistakenly listed as compatible by
-    $(info the Android Market. Also, it is likely that the image will fail the CTS tests)
-    $(info Please undefine TARGET_CPU_ABI in your BoardConfig.mk, or select the value 'none')
-    $(info The corresponding image will still be able to run Dalvik-based Android applications)
-    $(error Aborting build! Please fix your BoardConfig.mk)
-  endif
-endif

File core/combo/TARGET_linux-x86_64.mk

 			-mstackrealign \
 			-mfpmath=sse
 
-ARCH_X86_HAVE_MMX  := true
-ARCH_X86_HAVE_SSE  := true
-ARCH_X86_HAVE_SSE2 := true
-ARCH_X86_HAVE_SSE3 := true
-
 ifeq ($(ARCH_X86_HAVE_SSSE3),true)   # yes, really SSSE3, not SSE3!
     TARGET_GLOBAL_CFLAGS += -DUSE_SSSE3 -mssse3
 endif

File core/combo/arch/x86/haswell.mk

 # Configuration for Linux on x86.
 # Generating binaries for Haswell processors.
 #
-ARCH_X86_HAVE_MMX    := true
-ARCH_X86_HAVE_SSE    := true
-ARCH_X86_HAVE_SSE2   := true
-ARCH_X86_HAVE_SSE3   := true
 ARCH_X86_HAVE_SSSE3  := true
 ARCH_X86_HAVE_SSE4   := true
 ARCH_X86_HAVE_SSE4_1 := true

File core/combo/arch/x86/ivybridge.mk

 # Configuration for Linux on x86.
 # Generating binaries for Ivy Bridge processors.
 #
-ARCH_X86_HAVE_MMX    := true
-ARCH_X86_HAVE_SSE    := true
-ARCH_X86_HAVE_SSE2   := true
-ARCH_X86_HAVE_SSE3   := true
 ARCH_X86_HAVE_SSSE3  := true
 ARCH_X86_HAVE_SSE4   := true
 ARCH_X86_HAVE_SSE4_1 := true

File core/combo/arch/x86/sandybridge.mk

 # Configuration for Linux on x86.
 # Generating binaries for SandyBridge processors.
 #
-ARCH_X86_HAVE_MMX    := true
-ARCH_X86_HAVE_SSE    := true
-ARCH_X86_HAVE_SSE2   := true
-ARCH_X86_HAVE_SSE3   := true
 ARCH_X86_HAVE_SSSE3  := true
 ARCH_X86_HAVE_SSE4_1 := true
 ARCH_X86_HAVE_SSE4_2 := true

File core/combo/arch/x86/x86-atom.mk

 #
 # See build/core/combo/arch/x86/x86.mk for differences.
 #
-ARCH_X86_HAVE_MMX   := true
-ARCH_X86_HAVE_SSE   := true
-ARCH_X86_HAVE_SSE2  := true
-ARCH_X86_HAVE_SSE3  := true
 ARCH_X86_HAVE_SSSE3 := true
 ARCH_X86_HAVE_MOVBE := true
 ARCH_X86_HAVE_POPCNT := false   # popcnt is not supported by current Atom CPUs

File core/combo/arch/x86/x86.mk

 # This file contains feature macro definitions specific to the
-# base 'x86' platform ABI. This one must *strictly* match the NDK x86 ABI
-# which mandates specific CPU extensions to be available.
+# base 'x86' platform ABI.
 #
 # It is also used to build full_x86-eng / sdk_x86-eng platform images that
 # are run in the emulator under KVM emulation (i.e. running directly on
 # the host development machine's CPU).
-#
-
-# If your target device doesn't support the four following features, then
-# it cannot be compatible with the NDK x86 ABI. You should define a new
-# target arch variant (e.g. "x86-mydevice") and a corresponding file
-# under build/core/combo/arch/x86/
-#
-ARCH_X86_HAVE_MMX   := true
-ARCH_X86_HAVE_SSE   := true
-ARCH_X86_HAVE_SSE2  := true
-ARCH_X86_HAVE_SSE3  := true
 
 # These features are optional and shall not be included in the base platform
-# Otherwise, they sdk_x86-eng system images might fail to run on some
+# Otherwise, sdk_x86-eng system images might fail to run on some
 # developer machines.
-#
-
 ARCH_X86_HAVE_SSSE3 := false
 ARCH_X86_HAVE_MOVBE := false
 ARCH_X86_HAVE_POPCNT := false

File core/combo/arch/x86_64/x86_64.mk

 # This file contains feature macro definitions specific to the
-# base 'x86_64' platform ABI. This one must *strictly* match the NDK x86_64 ABI
-# which mandates specific CPU extensions to be available.
+# base 'x86_64' platform ABI.
 #
 # It is also used to build full_x86_64-eng / sdk_x86_64-eng  platform images
 # that are run in the emulator under KVM emulation (i.e. running directly on
 # the host development machine's CPU).
-#
-
-# These features are optional and shall not be included in the base platform
-# Otherwise, they sdk_x86_64-eng system images might fail to run on some
-# developer machines.
-#
 
 ARCH_X86_HAVE_SSSE3 := true
-ARCH_X86_HAVE_MOVBE := false
+ARCH_X86_HAVE_MOVBE := false # Only supported on Atom.
 ARCH_X86_HAVE_POPCNT := true
 
+
 # CFLAGS for this arch
 arch_variant_cflags := \
     -march=x86-64
-