[MIPS] Unite mipsel and mips64el 4.9 gcc toolchains

Use 4.9 mips64el toolchain for both 64- and 32-bit builds.
Tell ld when 32-bit links are required.
Override 4.9's changed defaults for mips floating point
register use, to get same assembler rules as 4.8 and earlier.

Also: drop unused  soft-fp build targets, cleanout redundant
compiler options, and remove extraneous Android.mk file.

(cherry picked from commit 6670e24aed)

Change-Id: I34d2f8fc6113c9d1670e3acff1aff48634b9fe1b
This commit is contained in:
Duane Sand 2014-07-22 14:34:00 -07:00 committed by Ying Wang
parent 9e6ba597ba
commit 3c4fcd8451
17 changed files with 29 additions and 167 deletions

View File

@ -3,7 +3,7 @@ include $(BUILD_SYSTEM)/clang/mips.mk
CLANG_CONFIG_mips_TARGET_TRIPLE := mipsel-linux-android
CLANG_CONFIG_mips_TARGET_TOOLCHAIN_PREFIX := \
$($(clang_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/$(CLANG_CONFIG_mips_TARGET_TRIPLE)/bin
$($(clang_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/mips64el-linux-android/bin
CLANG_CONFIG_mips_TARGET_EXTRA_ASFLAGS := \
$(CLANG_CONFIG_EXTRA_ASFLAGS) \

View File

@ -7,18 +7,17 @@ CLANG_CONFIG_mips_EXTRA_LDFLAGS :=
# Include common unknown flags
CLANG_CONFIG_mips_UNKNOWN_CFLAGS := \
$(CLANG_CONFIG_UNKNOWN_CFLAGS) \
-EL \
-mips32 \
-mips32r2 \
-mhard-float \
-mfp32 \
-mfp64 \
-mfpxx \
-modd-spreg \
-mno-odd-spreg \
-fno-strict-volatile-bitfields \
-fgcse-after-reload \
-frerun-cse-after-loop \
-frename-registers \
-march=mips32r2 \
-mtune=mips32r2 \
-march=mips32 \
-mtune=mips32 \
-msynci \
-mno-fused-madd

View File

@ -9,18 +9,10 @@ CLANG_CONFIG_mips64_EXTRA_LDFLAGS :=
# Include common unknown flags
CLANG_CONFIG_mips64_UNKNOWN_CFLAGS := \
$(CLANG_CONFIG_UNKNOWN_CFLAGS) \
-EL \
-mips32 \
-mips32r2 \
-mhard-float \
-fno-strict-volatile-bitfields \
-fgcse-after-reload \
-frerun-cse-after-loop \
-frename-registers \
-march=mips32r2 \
-mtune=mips32r2 \
-march=mips32 \
-mtune=mips32 \
-msynci \
-mno-fused-madd

View File

@ -38,7 +38,7 @@ endif
$(combo_2nd_arch_prefix)TARGET_NDK_GCC_VERSION := 4.8
ifeq ($(strip $(TARGET_GCC_VERSION_EXP)),)
$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := 4.8
$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := 4.9
else
$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := $(TARGET_GCC_VERSION_EXP)
endif
@ -53,8 +53,8 @@ include $(BUILD_SYSTEM)/combo/fdo.mk
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
$(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/mips/mipsel-linux-android-$($(combo_2nd_arch_prefix)TARGET_GCC_VERSION)
$(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/bin/mipsel-linux-android-
$(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/mips/mips64el-linux-android-$($(combo_2nd_arch_prefix)TARGET_GCC_VERSION)
$(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/bin/mips64el-linux-android-
endif
$(combo_2nd_arch_prefix)TARGET_CC := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
@ -97,24 +97,6 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += \
-include $(android_config_h) \
-I $(dir $(android_config_h))
# This warning causes dalvik not to build with gcc 4.6+ and -Werror.
# We cannot turn it off blindly since the option is not available
# in gcc-4.4.x.
ifneq ($(filter 4.6 4.6.% 4.7 4.7.% 4.8, $($(combo_2nd_arch_prefix)TARGET_GCC_VERSION)),)
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable \
-fno-strict-volatile-bitfields
endif
# This is to avoid the dreaded warning compiler message:
# note: the mangling of 'va_list' has changed in GCC 4.4
#
# The fact that the mangling changed does not affect the NDK ABI
# very fortunately (since none of the exposed APIs used va_list
# in their exported C++ functions). Also, GCC 4.5 has already
# removed the warning from the compiler.
#
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -Wno-psabi
ifneq ($(ARCH_MIPS_PAGE_SHIFT),)
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -DPAGE_SHIFT=$(ARCH_MIPS_PAGE_SHIFT)
endif

View File

@ -38,7 +38,7 @@ endif
TARGET_NDK_GCC_VERSION := 4.8
ifeq ($(strip $(TARGET_GCC_VERSION_EXP)),)
TARGET_GCC_VERSION := 4.8
TARGET_GCC_VERSION := 4.9
else
TARGET_GCC_VERSION := $(TARGET_GCC_VERSION_EXP)
endif
@ -100,24 +100,6 @@ TARGET_GLOBAL_CFLAGS += \
-include $(android_config_h) \
-I $(dir $(android_config_h))
# This warning causes dalvik not to build with gcc 4.6+ and -Werror.
# We cannot turn it off blindly since the option is not available
# in gcc-4.4.x.
ifneq ($(filter 4.6 4.6.% 4.7 4.7.% 4.8, $(TARGET_GCC_VERSION)),)
TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable \
-fno-strict-volatile-bitfields
endif
# This is to avoid the dreaded warning compiler message:
# note: the mangling of 'va_list' has changed in GCC 4.4
#
# The fact that the mangling changed does not affect the NDK ABI
# very fortunately (since none of the exposed APIs used va_list
# in their exported C++ functions). Also, GCC 4.5 has already
# removed the warning from the compiler.
#
TARGET_GLOBAL_CFLAGS += -Wno-psabi
ifneq ($(ARCH_MIPS_PAGE_SHIFT),)
TARGET_GLOBAL_CFLAGS += -DPAGE_SHIFT=$(ARCH_MIPS_PAGE_SHIFT)
endif

View File

@ -4,11 +4,9 @@
ARCH_MIPS_HAS_FPU :=true
ARCH_HAVE_ALIGNED_DOUBLES :=true
arch_variant_cflags := \
-EL \
-march=mips32 \
-mtune=mips32 \
-mips32 \
-mhard-float
-mfp32 \
-modd-spreg \
arch_variant_ldflags := \
-EL
-Wl,-melf32ltsmip

View File

@ -1,12 +0,0 @@
# Configuration for Android on MIPS.
# Generating binaries for MIPS32/soft-float/little-endian
arch_variant_cflags := \
-EL \
-march=mips32 \
-mtune=mips32 \
-mips32 \
-msoft-float
arch_variant_ldflags := \
-EL

View File

@ -5,13 +5,11 @@
ARCH_MIPS_HAS_FPU :=true
ARCH_HAVE_ALIGNED_DOUBLES :=true
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-mhard-float \
-mfp32 \
-modd-spreg \
-mno-fused-madd \
-Wa,-mmxu
arch_variant_ldflags := \
-EL
-Wl,-melf32ltsmip

View File

@ -4,12 +4,10 @@
ARCH_MIPS_HAS_FPU :=true
ARCH_HAVE_ALIGNED_DOUBLES :=true
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-mhard-float \
-mfp32 \
-modd-spreg \
-msynci
arch_variant_ldflags := \
-EL
-Wl,-melf32ltsmip

View File

@ -1,13 +0,0 @@
# Configuration for Android on MIPS.
# Generating binaries for MIPS32R2/soft-float/little-endian
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-msoft-float \
-msynci
arch_variant_ldflags := \
-EL

View File

@ -6,13 +6,11 @@ ARCH_MIPS_DSP_REV :=1
ARCH_MIPS_HAS_FPU :=true
ARCH_HAVE_ALIGNED_DOUBLES :=true
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-mhard-float \
-mfp32 \
-modd-spreg \
-mdsp \
-msynci
arch_variant_ldflags := \
-EL
-Wl,-melf32ltsmip

View File

@ -1,17 +0,0 @@
# Configuration for Android on MIPS.
# Generating binaries for MIPS32R2/soft-float/little-endian/dsp
ARCH_MIPS_HAS_DSP :=true
ARCH_MIPS_DSP_REV :=1
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-msoft-float \
-mdsp \
-msynci
arch_variant_ldflags := \
-EL

View File

@ -6,13 +6,11 @@ ARCH_MIPS_DSP_REV :=2
ARCH_MIPS_HAS_FPU :=true
ARCH_HAVE_ALIGNED_DOUBLES :=true
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-mhard-float \
-mfp32 \
-modd-spreg \
-mdspr2 \
-msynci
arch_variant_ldflags := \
-EL
-Wl,-melf32ltsmip

View File

@ -1,17 +0,0 @@
# Configuration for Android on MIPS.
# Generating binaries for MIPS32R2/soft-float/little-endian/dsp
ARCH_MIPS_HAS_DSP :=true
ARCH_MIPS_DSP_REV :=2
arch_variant_cflags := \
-EL \
-march=mips32r2 \
-mtune=mips32r2 \
-mips32r2 \
-msoft-float \
-mdspr2 \
-msynci
arch_variant_ldflags := \
-EL

View File

@ -1,14 +1,10 @@
# Configuration for Android on mips64r2.
# This target is for temporary use only, until mips64r6 is supported by Android's qemu.
ARCH_MIPS_HAS_FPU :=true
ARCH_HAVE_ALIGNED_DOUBLES :=true
arch_variant_cflags := \
-EL \
-march=mips64r2 \
-mtune=mips64r2 \
-mips64r2 \
-mhard-float \
-msynci
arch_variant_ldflags := \
-EL

View File

@ -137,9 +137,7 @@ function setpaths()
arm64) toolchaindir=aarch64/aarch64-linux-android-$targetgccversion/bin;
toolchaindir2=arm/arm-linux-androideabi-$targetgccversion2/bin
;;
mips) toolchaindir=mips/mipsel-linux-android-$targetgccversion/bin
;;
mips64) toolchaindir=mips/mips64el-linux-android-$targetgccversion/bin
mips|mips64) toolchaindir=mips/mips64el-linux-android-$targetgccversion/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
@ -1002,8 +1000,7 @@ function gdbclient()
case "$ARCH" in
arm) GDB=arm-linux-androideabi-gdb;;
arm64) GDB=arm-linux-androideabi-gdb; GDB64=aarch64-linux-android-gdb;;
mips) GDB=mipsel-linux-android-gdb;;
mips64) GDB=mipsel-linux-android-gdb;;
mips|mips64) GDB=mips64el-linux-android-gdb;;
x86) GDB=x86_64-linux-android-gdb;;
x86_64) GDB=x86_64-linux-android-gdb;;
*) echo "Unknown arch $ARCH"; return 1;;

View File

@ -1,17 +0,0 @@
#
# Copyright (C) 2011 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_PATH := $(call my-dir)