summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunQiang Su <wzssyqa@gmail.com>2017-02-28 18:35:40 +0800
committerLennart Poettering <lennart@poettering.net>2017-02-28 11:35:40 +0100
commitcaf49b95b3a6efe9455078098c729d83b08e5206 (patch)
tree2a01d72327c8a55e50abdfc8e084ea8e1f3b2ba2
parent8999954f44dba07d7c268bcf5ab4cb26ba41cc7f (diff)
Fix MIPS N64 and N32 LIB_ARCH_TUPLE (#5469)
* Fix MIPS N64 and N32 LIB_ARCH_TUPLE For mips, we have 3 major ABIs, they are N64, N32 and O32. Both N32 and N64 defined __mips64__, and only N64 defined __LP64__.
-rw-r--r--src/basic/architecture.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/basic/architecture.h b/src/basic/architecture.h
index b0a7de5dc9..46883719d1 100644
--- a/src/basic/architecture.h
+++ b/src/basic/architecture.h
@@ -124,13 +124,21 @@ int uname_architecture(void);
#elif defined(__sparc__)
# define native_architecture() ARCHITECTURE_SPARC
# define LIB_ARCH_TUPLE "sparc-linux-gnu"
-#elif defined(__mips64__)
+#elif defined(__mips64) && defined(__LP64__)
# if __BYTE_ORDER == __BIG_ENDIAN
# define native_architecture() ARCHITECTURE_MIPS64
-# error "Missing LIB_ARCH_TUPLE for MIPS64"
+# define LIB_ARCH_TUPLE "mips64-linux-gnuabi64"
# else
# define native_architecture() ARCHITECTURE_MIPS64_LE
-# error "Missing LIB_ARCH_TUPLE for MIPS64_LE"
+# define LIB_ARCH_TUPLE "mips64el-linux-gnuabi64"
+# endif
+#elif defined(__mips64)
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define native_architecture() ARCHITECTURE_MIPS64
+# define LIB_ARCH_TUPLE "mips64-linux-gnuabin32"
+# else
+# define native_architecture() ARCHITECTURE_MIPS64_LE
+# define LIB_ARCH_TUPLE "mips64el-linux-gnuabin32"
# endif
#elif defined(__mips__)
# if __BYTE_ORDER == __BIG_ENDIAN