OSDN Git Service

Clean up of X86 build flags
[android-x86/build.git] / core / combo / TARGET_linux-x86.mk
index 6629cbd..500cbfc 100644 (file)
@@ -25,7 +25,9 @@ TARGET_AR := $(HOST_AR)
 TARGET_GLOBAL_CFLAGS := $(HOST_GLOBAL_CFLAGS) -m32
 TARGET_GLOBAL_LDFLAGS := $(HOST_GLOBAL_LDFLAGS) -m32 -lpthread
 TARGET_NO_UNDEFINED_LDFLAGS := $(HOST_NO_UNDEFINED_LDFLAGS)
+ifeq ($(strip $(TARGET_ARCH_VARIANT)),)
 TARGET_ARCH_VARIANT := x86
+endif
 else #simulator
 
 # Provide a default variant.
@@ -36,7 +38,7 @@ endif
 # You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
 ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
 TARGET_TOOLS_PREFIX := \
-       prebuilt/$(HOST_PREBUILT_TAG)/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu-
+       prebuilt/$(HOST_PREBUILT_TAG)/toolchain/i686-android-linux-4.4.3/bin/i686-android-linux-
 endif
 
 TARGET_CC := $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
@@ -44,11 +46,12 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
 TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
 TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
 TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
 
 ifneq ($(wildcard $(TARGET_CC)),)
 TARGET_LIBGCC := \
-       $(shell $(TARGET_CC) -m32 -print-file-name=libgcc.a) \
-        $(shell $(TARGET_CC) -m32 -print-file-name=libgcc_eh.a)
+       $(shell $(TARGET_CC) -m32 -print-file-name=libgcc.a)
 endif
 
 TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
@@ -72,14 +75,50 @@ endif
 KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
 
 TARGET_GLOBAL_CFLAGS += \
-                       -march=i686 \
-                       -m32 \
+                       -O2 \
+                       -Ulinux \
+                       -Wa,--noexecstack \
+                       -Werror=format-security \
+                       -Wstrict-aliasing=2 \
                        -fPIC \
+                       -ffunction-sections \
+                       -finline-functions \
+                       -finline-limit=300 \
+                       -fno-inline-functions-called-once \
+                       -fno-short-enums \
+                       -fstrict-aliasing \
+                       -funswitch-loops \
+                       -funwind-tables \
                        -include $(call select-android-config-h,target_linux-x86)
 
+# Needs to be fixed later
+#TARGET_GLOBAL_CFLAGS += \
+#                      -fstack-protector
+
+# Needs to be added for RELEASE
+#TARGET_GLOBAL_CFLAGS += \
+#                      -DNDEBUG
+
+
+# Fix this after ssp.c is fixed for x86
+# TARGET_GLOBAL_CFLAGS += -fstack-protector
+
 TARGET_GLOBAL_CPPFLAGS += \
                        -fno-use-cxa-atexit
 
+ifeq ($(TARGET_ARCH_VARIANT),x86-atom)
+    TARGET_GLOBAL_CFLAGS += -march=atom -mstackrealign -DUSE_SSSE3 -DUSE_SSE2 -mfpmath=sse
+else
+    TARGET_GLOBAL_CFLAGS += -march=i686
+endif
+
+TARGET_GLOBAL_CFLAGS += -mbionic
+TARGET_GLOBAL_CFLAGS += -D__ANDROID__
+
+TARGET_GLOBAL_LDFLAGS += -m32
+TARGET_GLOBAL_LDFLAGS += -Wl,-z,noexecstack
+TARGET_GLOBAL_LDFLAGS += -Wl,--gc-sections
+
 TARGET_C_INCLUDES := \
        $(libc_root)/arch-x86/include \
        $(libc_root)/include \
@@ -97,7 +136,7 @@ TARGET_CRTEND_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_android.o
 TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
 TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
 
-TARGET_STRIP_MODULE:=true
+TARGET_STRIP_MODULE:=true
 
 TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
 
@@ -107,7 +146,7 @@ $(TARGET_CXX) \
        $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
         -nostdlib -Wl,-soname,$(notdir $@) \
         -shared -Bsymbolic \
-       -fPIC -march=i686 \
+       $(TARGET_GLOBAL_CFLAGS) \
        $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
        $(PRIVATE_TARGET_CRTBEGIN_SO_O) \
        $(PRIVATE_ALL_OBJECTS) \
@@ -157,7 +196,4 @@ $(TARGET_CXX) \
        $(TARGET_CRTEND_O)
 endef
 
-TARGET_GLOBAL_CFLAGS += -m32
-TARGET_GLOBAL_LDFLAGS += -m32
-
 endif #simulator