--- Begin Message ---
Package: src:gcc-6
Version: 6.4.0-9
Please add mips r6 support to gcc-6, and it also contains a little fix
for mipsn32.
This patch also works with gcc-7 with a little modification.
I will submit for gcc-7 soon.
--
YunQiang Su
diff --git a/debian/libstdc++6.symbols.mips64r6
b/debian/libstdc++6.symbols.mips64r6
new file mode 100644
index 0000000..7aa71da
--- /dev/null
+++ b/debian/libstdc++6.symbols.mips64r6
@@ -0,0 +1,7 @@
+libstdc++.so.6 libstdc++6 #MINVER#
+#include "libstdc++6.symbols.64bit"
+#include "libstdc++6.symbols.128bit"
+#include "libstdc++6.symbols.excprop"
+#include "libstdc++6.symbols.money.ldbl"
+ _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1
+ _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1
diff --git a/debian/libstdc++6.symbols.mips64r6el
b/debian/libstdc++6.symbols.mips64r6el
new file mode 100644
index 0000000..fcc4963
--- /dev/null
+++ b/debian/libstdc++6.symbols.mips64r6el
@@ -0,0 +1,10 @@
+libstdc++.so.6 libstdc++6 #MINVER#
+#include "libstdc++6.symbols.64bit"
+#include "libstdc++6.symbols.128bit"
+#include "libstdc++6.symbols.excprop"
+#include "libstdc++6.symbols.glibcxxmath"
+#include "libstdc++6.symbols.money.ldbl"
+ _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1
+ _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1
+ _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.9.0
+ _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.9.0
diff --git a/debian/libstdc++6.symbols.mipsr6 b/debian/libstdc++6.symbols.mipsr6
new file mode 100644
index 0000000..885c8d1
--- /dev/null
+++ b/debian/libstdc++6.symbols.mipsr6
@@ -0,0 +1,7 @@
+libstdc++.so.6 libstdc++6 #MINVER#
+#include "libstdc++6.symbols.32bit"
+ __gxx_personality_v0@CXXABI_1.3 4.1.1
+#include "libstdc++6.symbols.excprop"
+#include "libstdc++6.symbols.glibcxxmath"
+ _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0
+ _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0
diff --git a/debian/libstdc++6.symbols.mipsr6el
b/debian/libstdc++6.symbols.mipsr6el
new file mode 100644
index 0000000..70ed99b
--- /dev/null
+++ b/debian/libstdc++6.symbols.mipsr6el
@@ -0,0 +1,8 @@
+libstdc++.so.6 libstdc++6 #MINVER#
+#include "libstdc++6.symbols.32bit"
+ __gxx_personality_v0@CXXABI_1.3 4.1.1
+#include "libstdc++6.symbols.excprop"
+#include "libstdc++6.symbols.glibcxxmath"
+#include "libstdc++6.symbols.money.ldbl"
+ _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0
+ _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0
diff --git a/debian/rules.conf b/debian/rules.conf
index a34bed7..2c2c0a2 100644
--- a/debian/rules.conf
+++ b/debian/rules.conf
@@ -284,7 +284,12 @@ LIBC_DEV_DEP := $(LIBC_DEP)-dev
# this is about Debian archs name, *NOT* GNU target triplet
biarch_deb_map := \
i386=amd64 amd64=i386 \
- mips=mips64 mipsel=mips64 \
+ mips=mips64 mipsel=mips64el \
+ mipsn32=mips mipsn32el=mipsel \
+ mips64=mips mips64el=mipsel \
+ mipsr6=mips64r6 mipsr6el=mips64r6el \
+ mipsn32r6=mipsr6 mipsn32r6el=mipsr6el \
+ mips64r6=mipsr6 mips64r6el=mipsr6el \
powerpc=ppc64 ppc64=powerpc \
sparc=sparc64 sparc64=sparc\
s390=s390x s390x=s390 \
@@ -312,7 +317,7 @@ ifneq (,$(findstring yes,$(biarch64) $(biarch32)
$(biarchn32) $(biarchx32)$(biar
endif
endif
# mips*
- ifneq (,$(findstring $(DEB_TARGET_ARCH),mips mipsel mipsn32 mipsn32el mips64
mips64el))
+ ifneq (,$(findstring $(DEB_TARGET_ARCH),mips mipsel mipsn32 mipsn32el mips64
mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el))
ifeq ($(biarchn32)$(biarch32),yesyes)
LIBC_BIARCH_DEV_DEP := libc6-dev-mips32$(LS)$(AQ) (>= $(libc_ver)),
libc6-dev-mipsn32$(LS)$(AQ) (>= $(libc_ver))
endif
@@ -352,7 +357,7 @@ ifneq ($(DEB_CROSS),yes)
ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic
lucid maverick natty oneiric))
LIBC_BUILD_DEP += , libc6-dev (>= 2.13-31) [armel armhf]
endif
- LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386 x32], libc6-dev-sparc64
[sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x
[s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64
[powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64
kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el s390x sparc64 x32], libn32gcc1
[mips mipsel mips64 mips64el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el
powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el],
libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32
mipsn32el mips64 mips64el],
+ LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386 x32], libc6-dev-sparc64
[sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x
[s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64
[powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64
kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6
mips64r6el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el mipsr6
mipsr6el mips64r6 mips64r6el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el
mipsr6 mipsr6el mipsn32r6 mipsn32r6el powerpc sparc s390 x32], libc6-dev-mips64
[mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el],
libc6-dev-mipsn32 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6
mips64r6el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el mipsn32r6
mipsn32r6el mips64r6 mips64r6el],
ifneq (,$(findstring amd64,$(biarchx32archs)))
LIBC_BIARCH_BUILD_DEP += libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386],
endif
@@ -432,7 +437,7 @@ endif
ifneq ($(DEB_CROSS),yes)
# all archs for which to create b-d's
-any_archs = alpha amd64 armel armhf arm64 i386 mips mipsel mips64 mips64el
powerpc ppc64 ppc64el m68k sh4 sparc64 s390x x32
+any_archs = alpha amd64 armel armhf arm64 i386 mips mipsel mips64 mips64el
mipsn32 mipsn32el mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el
powerpc ppc64 ppc64el m68k sh4 sparc64 s390x x32
arch_gnutype_map = \
alpha=alpha-linux-gnu \
amd64=x86-64-linux-gnu \
@@ -442,8 +447,16 @@ arch_gnutype_map = \
i386=i686-linux-gnu \
mips=mips-linux-gnu \
mipsel=mipsel-linux-gnu \
+ mipsn32=mips64-linux-gnuabin32 \
+ mipsn32el=mips64el-linux-gnuabin32 \
mips64=mips64-linux-gnuabi64 \
mips64el=mips64el-linux-gnuabi64 \
+ mipsr6=mipsisa32r6-linux-gnu \
+ mipsr6el=mipsisa32r6el-linux-gnu \
+ mipsn32r6=mipsisa64r6-linux-gnuabin32 \
+ mipsn32r6el=mipsisa64r6el-linux-gnuabin32 \
+ mips64r6=mipsisa64r6-linux-gnuabi64 \
+ mips64r6el=mipsisa64r6el-linux-gnuabi64 \
powerpc=powerpc-linux-gnu \
ppc64=powerpc64-linux-gnu \
ppc64el=powerpc64le-linux-gnu \
diff --git a/debian/rules.defs b/debian/rules.defs
index bf23bc8..e7f3e56 100644
--- a/debian/rules.defs
+++ b/debian/rules.defs
@@ -475,6 +475,12 @@ multiarch_xarch_map = \
mipsn32el=mipsel-linux-gnu,mips64el-linux-gnuabi64 \
mips64=mips-linux-gnu,mips64-linux-gnuabin32 \
mips64el=mipsel-linux-gnu,mips64el-linux-gnuabin32 \
+ mipsr6=mipsisa64r6-linux-gnuabin32,mipsisa64r6-linux-gnuabi64 \
+ mipsr6el=mipsisa64r6el-linux-gnuabin32,mipsisa64r6el-linux-gnuabi64 \
+ mipsn32r6=mipsisa32r6-linux-gnu,mipsisa64r6-linux-gnuabi64 \
+ mipsn32r6el=mipsisa32r6el-linux-gnu,mipsisa64r6el-linux-gnuabi64 \
+ mips64r6=mipsisa32r6-linux-gnu,mipsisa64r6-linux-gnuabin32 \
+ mips64r6el=mipsisa32r6el-linux-gnu,mipsisa64r6el-linux-gnuabin32 \
x32=x86_64-linux-gnu,i386-linux-gnu \
kfreebsd-amd64=i386-kfreebsd-gnu
xarch_multiarch_names = $(subst $(COMMA),$(SPACE),$(patsubst
$(DEB_TARGET_ARCH)=%,%, \
@@ -506,6 +512,18 @@ multilib_multiarch_map = \
mips64/n32=mips64-linux-gnuabin32 \
mips64el/32=mipsel-linux-gnu \
mips64el/n32=mips64el-linux-gnuabin32 \
+ mipsr6/n32=mipsisa64r6-linux-gnuabin32 \
+ mipsr6/64=mipsisa64r6-linux-gnuabi64 \
+ mipsr6el/n32=mipsisa64r6el-linux-gnuabin32 \
+ mipsr6el/64=mipsisa64r6el-linux-gnuabi64 \
+ mipsn32r6/32=mipsisa32r6-linux-gnu \
+ mipsn32r6/64=mipsisa64r6-linux-gnuabi64 \
+ mipsn32r6el/32=mipsisa32r6el-linux-gnu \
+ mipsn32r6el/64=mipsisa64r6el-linux-gnuabi64 \
+ mips64r6/32=mipsisa32r6-linux-gnu \
+ mips64r6/n32=mipsisa64r6-linux-gnuabin32 \
+ mips64r6el/32=mipsisa32r6el-linux-gnu \
+ mips64r6el/n32=mipsisa64r6el-linux-gnuabin32 \
x32/32=i386-linux-gnu \
x32/64=x86_64-linux-gnu \
kfreebsd-amd64/32=i386-kfreebsd-gnu
@@ -539,6 +557,18 @@ multilib_arch_map = \
mips64/n32=mipsn32 \
mips64el/32=mipsel \
mips64el/n32=mipsn32el \
+ mipsr6/n32=mipsn32r6 \
+ mipsr6/64=mips64r6 \
+ mipsr6el/n32=mipsn32r6el \
+ mipsr6el/64=mips64r6el \
+ mipsn32r6/32=mipsr6 \
+ mipsn32r6/64=mips64r6 \
+ mipsn32r6el/32=mipsr6el \
+ mipsn32r6el/64=mips64r6el \
+ mips64r6/32=mipsr6 \
+ mips64r6/n32=mipsn32r6 \
+ mips64r6el/32=mipsr6el \
+ mips64r6el/n32=mipsn32r6el \
x32/32=i386 \
x32/64=amd64 \
kfreebsd-amd64/32=kfreebsd-i386
@@ -692,8 +722,8 @@ ifneq (,$(filter $(distrelease),lucid))
endif
# disable building gnat cross compilers on 32bit archs targeting 64bit archs
ifneq (,$(filter $(build_type), build-cross cross-build-cross))
- ifneq (,$(filter $(DEB_HOST_ARCH), armhf armel i386 mips mipsel powerpc))
- ifneq (,$(filter $(DEB_TARGET_ARCH), alpha amd64 arm64 mips64 mips64el
ppc64 ppc64el s390x sparc64))
+ ifneq (,$(filter $(DEB_HOST_ARCH), armhf armel i386 mips mipsel mipsr6
mipsr6el powerpc))
+ ifneq (,$(filter $(DEB_TARGET_ARCH), alpha amd64 arm64 mips64 mips64el
mips64r6 mips64r6el ppc64 ppc64el s390x sparc64))
with_ada := disabled on 32bit archs targeting 64bit archs
endif
endif
@@ -854,6 +884,7 @@ ifeq ($(with_java),yes)
java_cpu_map = armel=arm armhf=arm arm64=aarch64 hppa=parisc \
i686=i386 i586=i386 i486=i386 x32=x32 \
mipsel=mips mips64=mips mips64el=mips mipsn32=mips mipsn32el=mips \
+ mipsr6el=mips mips64r6=mips mips64r6el=mips mipsn32r6=mips
mipsn32r6el=mips \
powerpc=ppc ppc64el=ppc64le sh4=sh x32=x32
java_cpu = $(patsubst $(DEB_TARGET_ARCH_CPU)=%,%, \
$(filter $(DEB_TARGET_ARCH_CPU)=%,$(java_cpu_map)))
@@ -1032,6 +1063,7 @@ ifeq ($(with_d),yes)
libphobos_no_cpus := alpha avr arm64 hppa ia64 m68k \
mips mipsel mips64 mips64el mipsn32 mipsn32el \
+ mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el \
powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64
libphobos_no_systems := gnu kfreebsd-gnu
ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(libphobos_no_cpus)))
@@ -1300,7 +1332,9 @@ endif
with_pie :=
ifeq ($(distribution),Debian)
ifeq (,$(filter $(distrelease),wheezy squeeze jessie))
- pie_archs = amd64 arm64 armel armhf i386 mips mipsel mips64el \
+ pie_archs = amd64 arm64 armel armhf i386 \
+ mips mipsel mips64 mips64el mipsn32 mipsn32el \
+ mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el \
ppc64el s390x sparc sparc64 kfreebsd-amd64 kfreebsd-i386
endif
ifeq (,$(filter $(distrelease),wheezy squeeze jessie stretch))
@@ -1571,7 +1605,9 @@ export debian_extra_langs
# multilib
biarch_map := i686=x86_64 powerpc=powerpc64 sparc=sparc64 sparc64=sparc
s390=s390x s390x=s390 \
x86_64=i686 powerpc64=powerpc mips=mips64 mipsel=mips64el \
- mips64=mips mips64el=mipsel mipsn32=mips mipsn32el=mipsel
+ mips64=mips mips64el=mipsel mipsn32=mips mipsn32el=mipsel \
+ mipsr6=mips64r6 mipsr6el=mips64r6el mips64r6=mipsr6
mips64r6el=mipsr6el \
+ mipsn32r6=mipsr6 mipsn32r6el=mipsr6el
ifneq (,$(filter $(derivative),Ubuntu))
ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid))
biarch_map := $(subst i686=,i486=,$(biarch_map))
@@ -1721,9 +1757,9 @@ define gen_biarch
export TARGET64_MACHINE
endif
endef
-biarch32archs :=
/amd64/ppc64/kfreebsd-amd64/s390x/sparc64/x32/mipsn32/mipsn32el/mips64/mips64el/
-biarch64archs := /i386/powerpc/sparc/s390/mips/mipsel/mipsn32/mipsn32el/x32/
-biarchn32archs := /mips/mipsel/mips64/mips64el/
+biarch32archs :=
/amd64/ppc64/kfreebsd-amd64/s390x/sparc64/x32/mipsn32/mipsn32el/mips64/mips64el/mipsn32r2/mipsn32r2el/mips64r2/mips64r2el/
+biarch64archs :=
/i386/powerpc/sparc/s390/mips/mipsel/mipsn32/mipsn32el/mipsr6/mipsr6el/mipsn32r6/mipsn32r6el/x32/
+biarchn32archs :=
/mips/mipsel/mips64/mips64el/mipsr6/mipsr6el/mips64r6/mips64r6el/
ifeq ($(derivative),Ubuntu)
ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid maverick
natty))
biarchhfarchs := /armel/
diff --git a/debian/rules2 b/debian/rules2
index 63b52f8..b67c844 100644
--- a/debian/rules2
+++ b/debian/rules2
@@ -702,6 +702,71 @@ ifneq (,$(findstring
mips64-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
endif
endif
+ifneq (,$(findstring mipsisa32r6-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa32r6el-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ endif
+ endif
+endif
+
+#FIXME: howto for mipsn32?
+ifneq (,$(findstring mipsisa64r6el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa64r6-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa64r6el-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa64r6-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE)))
ifeq (,$(filter yes,$(biarch32) $(biarchn32) $(biarch64)))
CONFARGS += --disable-multilib
--- End Message ---