diff options
author | YunQiang Su <wzssyqa@gmail.com> | 2017-02-28 18:35:40 +0800 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2017-02-28 11:35:40 +0100 |
commit | caf49b95b3a6efe9455078098c729d83b08e5206 (patch) | |
tree | 2a01d72327c8a55e50abdfc8e084ea8e1f3b2ba2 | |
parent | 8999954f44dba07d7c268bcf5ab4cb26ba41cc7f (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.h | 14 |
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 |