Commit 4d62f13f authored by Ivica Bogosavljevic's avatar Ivica Bogosavljevic Committed by Commit Bot

MIPS[64]: Add MIPS support to GN for V8

MIPS support was lacking in GN, only MIPS32 in combination with
CLANG was working properly.
This CL implements support for other flavors of MIPS, for
both CLANG and GCC compilers, in the context of V8 project that
needs it.

Bug: 
Change-Id: Iaa4b4314cafe1631c40d75c151a82d52aa851131
Reviewed-on: https://chromium-review.googlesource.com/677302Reviewed-by: default avatarDirk Pranke <dpranke@chromium.org>
Reviewed-by: default avatarMichael Achenbach <machenbach@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506889}
parent 23c0a487
......@@ -722,6 +722,14 @@ config("compiler_cpu_abi") {
cflags += [ "-m${mips_float_abi}-float" ]
} else if (current_cpu == "mips" && !is_nacl) {
if (is_clang) {
cflags += [ "--target=mips-linux-gnu" ]
ldflags += [ "--target=mips-linux-gnu" ]
} else {
cflags += [ "-EB" ]
ldflags += [ "-EB" ]
}
if (mips_arch_variant == "r6") {
cflags += [
"-mips32r6",
......@@ -756,16 +764,31 @@ config("compiler_cpu_abi") {
cflags += [ "-m${mips_float_abi}-float" ]
} else if (current_cpu == "mips64el") {
if (is_clang) {
if (is_android) {
cflags += [ "--target=mips64el-linux-android" ]
ldflags += [ "--target=mips64el-linux-android" ]
} else {
cflags += [ "--target=mips64el-linux-gnuabi64" ]
ldflags += [ "--target=mips64el-linux-gnuabi64" ]
}
} else {
cflags += [
"-EL",
"-mabi=64",
]
ldflags += [
"-EL",
"-mabi=64",
]
}
if (mips_arch_variant == "r6") {
if (is_clang) {
if (is_android) {
cflags += [
"--target=mips64el-linux-android",
"-march=mips64el",
"-mcpu=mips64r6",
]
ldflags += [ "--target=mips64el-linux-android" ]
}
cflags += [
"-march=mips64el",
"-mcpu=mips64r6",
]
} else {
cflags += [
"-mips64r6",
......@@ -793,12 +816,27 @@ config("compiler_cpu_abi") {
]
}
} else if (current_cpu == "mips64") {
if (is_clang) {
cflags += [ "--target=mips64-linux-gnuabi64" ]
ldflags += [ "--target=mips64-linux-gnuabi64" ]
} else {
cflags += [
"-EB",
"-mabi=64",
]
ldflags += [
"-EB",
"-mabi=64",
]
}
if (mips_arch_variant == "r6") {
cflags += [
"-mips64r6",
"-Wa,-mips64r6",
]
ldflags += [ "-mips64r6" ]
if (mips_use_msa == true) {
cflags += [
"-mmsa",
......
......@@ -178,12 +178,14 @@ clang_toolchain("clang_mips64el") {
}
gcc_toolchain("mipsel") {
cc = "mipsel-linux-gnu-gcc"
cxx = "mipsel-linux-gnu-g++"
ar = "mipsel-linux-gnu-ar"
toolprefix = "mipsel-linux-gnu-"
cc = "${toolprefix}gcc"
cxx = " ${toolprefix}g++"
ar = "${toolprefix}ar"
ld = cxx
readelf = "mipsel-linux-gnu-readelf"
nm = "mipsel-linux-gnu-nm"
readelf = "${toolprefix}readelf"
nm = "${toolprefix}nm"
toolchain_args = {
cc_wrapper = ""
......@@ -195,12 +197,14 @@ gcc_toolchain("mipsel") {
}
gcc_toolchain("mips64el") {
cc = "gcc"
cxx = "g++"
ar = "ar"
toolprefix = "mips64el-linux-gnuabi64-"
cc = "${toolprefix}gcc"
cxx = "${toolprefix}g++"
ar = "${toolprefix}ar"
ld = cxx
readelf = "readelf"
nm = "nm"
readelf = "${toolprefix}readelf"
nm = "${toolprefix}nm"
toolchain_args = {
cc_wrapper = ""
......@@ -244,12 +248,14 @@ gcc_toolchain("ppc64") {
}
gcc_toolchain("mips") {
cc = "gcc"
cxx = "g++"
toolprefix = "mips-linux-gnu-"
readelf = "readelf"
nm = "nm"
ar = "ar"
cc = "${toolprefix}gcc"
cxx = "${toolprefix}g++"
readelf = "${toolprefix}readelf"
nm = "${toolprefix}nm"
ar = "${toolprefix}ar"
ld = cxx
toolchain_args = {
......@@ -260,12 +266,14 @@ gcc_toolchain("mips") {
}
gcc_toolchain("mips64") {
cc = "gcc"
cxx = "g++"
toolprefix = "mips64-linux-gnuabi64-"
readelf = "readelf"
nm = "nm"
ar = "ar"
cc = "${toolprefix}gcc"
cxx = "${toolprefix}g++"
readelf = "${toolprefix}readelf"
nm = "${toolprefix}nm"
ar = "${toolprefix}ar"
ld = cxx
toolchain_args = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment