aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mips
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mips')
-rw-r--r--sysdeps/mips/Implies1
-rw-r--r--sysdeps/mips/bits/endian.h7
-rw-r--r--sysdeps/mips/mips32/Implies2
-rw-r--r--sysdeps/mips/mips32/Makefile3
-rw-r--r--sysdeps/mips/mips64/n32/Makefile4
-rw-r--r--sysdeps/mips/mips64/n32/el/bits/endian.h8
-rw-r--r--sysdeps/mips/mips64/n64/Makefile4
-rw-r--r--sysdeps/mips/mips64/n64/el/bits/endian.h8
-rw-r--r--sysdeps/mips/mipsel/bits/endian.h8
9 files changed, 19 insertions, 26 deletions
diff --git a/sysdeps/mips/Implies b/sysdeps/mips/Implies
index 9f60963329..8c18cb3034 100644
--- a/sysdeps/mips/Implies
+++ b/sysdeps/mips/Implies
@@ -1,4 +1,3 @@
-wordsize-32
# MIPS uses IEEE 754 floating point.
ieee754/flt-32
ieee754/dbl-64
diff --git a/sysdeps/mips/bits/endian.h b/sysdeps/mips/bits/endian.h
index 40321a2866..9586104ccd 100644
--- a/sysdeps/mips/bits/endian.h
+++ b/sysdeps/mips/bits/endian.h
@@ -5,4 +5,9 @@
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
-#define __BYTE_ORDER __BIG_ENDIAN
+#if __MIPSEB
+# define __BYTE_ORDER __BIG_ENDIAN
+#endif
+#if __MIPSEL
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
diff --git a/sysdeps/mips/mips32/Implies b/sysdeps/mips/mips32/Implies
new file mode 100644
index 0000000000..fab98d7312
--- /dev/null
+++ b/sysdeps/mips/mips32/Implies
@@ -0,0 +1,2 @@
+mips
+wordsize-32
diff --git a/sysdeps/mips/mips32/Makefile b/sysdeps/mips/mips32/Makefile
new file mode 100644
index 0000000000..dec0b024c3
--- /dev/null
+++ b/sysdeps/mips/mips32/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(filter -mabi=32,$(CC)),)
+CC += -mabi=32
+endif
diff --git a/sysdeps/mips/mips64/n32/Makefile b/sysdeps/mips/mips64/n32/Makefile
index 26f38570d7..a84d2a51bd 100644
--- a/sysdeps/mips/mips64/n32/Makefile
+++ b/sysdeps/mips/mips64/n32/Makefile
@@ -1,2 +1,6 @@
# `long double' is a distinct type we support.
long-double-fcts = yes
+
+ifeq ($(filter -mabi=n32,$(CC)),)
+CC += -mabi=n32
+endif
diff --git a/sysdeps/mips/mips64/n32/el/bits/endian.h b/sysdeps/mips/mips64/n32/el/bits/endian.h
deleted file mode 100644
index 2241190a70..0000000000
--- a/sysdeps/mips/mips64/n32/el/bits/endian.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* The MIPS architecture has selectable endianness.
- This file is for a machine using little-endian mode. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/mips/mips64/n64/Makefile b/sysdeps/mips/mips64/n64/Makefile
index 26f38570d7..a823f32b53 100644
--- a/sysdeps/mips/mips64/n64/Makefile
+++ b/sysdeps/mips/mips64/n64/Makefile
@@ -1,2 +1,6 @@
# `long double' is a distinct type we support.
long-double-fcts = yes
+
+ifeq ($(filter -mabi=64,$(CC)),)
+CC += -mabi=64
+endif
diff --git a/sysdeps/mips/mips64/n64/el/bits/endian.h b/sysdeps/mips/mips64/n64/el/bits/endian.h
deleted file mode 100644
index 2241190a70..0000000000
--- a/sysdeps/mips/mips64/n64/el/bits/endian.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* The MIPS architecture has selectable endianness.
- This file is for a machine using little-endian mode. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/mips/mipsel/bits/endian.h b/sysdeps/mips/mipsel/bits/endian.h
deleted file mode 100644
index 2241190a70..0000000000
--- a/sysdeps/mips/mipsel/bits/endian.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* The MIPS architecture has selectable endianness.
- This file is for a machine using little-endian mode. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN