diff --git a/debian/control b/debian/control
index b737778..ffecbec 100644
--- a/debian/control
+++ b/debian/control
@@ -138,7 +138,7 @@ Description: Transitional package to ensure multiarch compatibility
  be removed once nothing on the system depends on it.
 
 Package: libc6
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32 
 Section: libs
 Priority: required
 Multi-Arch: same
@@ -163,7 +163,7 @@ Description: Embedded GNU C Library: Shared libraries
  and the standard math library, as well as many others.
 
 Package: libc6-dev
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32 
 Section: libdevel
 Priority: optional
 Multi-Arch: same
@@ -179,7 +179,7 @@ Description: Embedded GNU C Library: Development Libraries and Header Files
  and link programs which use the standard C library.
 
 Package: libc6-dbg
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32 
 Section: debug
 Priority: extra
 Multi-Arch: same
@@ -190,7 +190,7 @@ Description: Embedded GNU C Library: detached debugging symbols
  library.
 
 Package: libc6-prof
-Architecture: amd64 arm armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+Architecture: amd64 arm armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
 Section: libdevel
 Priority: extra
 Multi-Arch: same
@@ -200,7 +200,7 @@ Description: Embedded GNU C Library: Profiling Libraries
  with gprof.
 
 Package: libc6-pic
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32 
 Section: libdevel
 Priority: optional
 Multi-Arch: same
@@ -215,7 +215,7 @@ Description: Embedded GNU C Library: PIC archive library
 
 Package: libc6-udeb
 XC-Package-Type: udeb
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32 
 Section: debian-installer
 Priority: extra
 Provides: libc6, libc-udeb, ${locale-compat:Depends}
@@ -694,8 +694,32 @@ Description: Embedded GNU C Library: 64bit Development Libraries for PowerPC64
  which use the standard C library. This is the 64bit version of the
  library, meant for PowerPC64 systems.
 
+Package: libc6-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libs
+Priority: optional
+Depends: libc6 (= ${binary:Version}), ${misc:Depends}
+Description: Embedded GNU C Library: o32 Shared libraries for MIPS64
+ This package includes shared versions of the standard C library and the
+ standard math library, as well as many others. This is the o32 version
+ of the library, meant for MIPS64 systems.
+
+Package: libc6-dev-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libdevel
+Priority: optional
+Provides: lib32c-dev
+Conflicts: libc6-dev (<< 2.13-14)
+Replaces: libc6-dev (<< 2.13-11)
+Depends: libc6-dev (= ${binary:Version}), libc6-mips32 (= ${binary:Version}), ${misc:Depends}
+Recommends: gcc-multilib
+Description: Embedded GNU C Library: o32 Development Libraries for MIPS64
+ Contains the symlinks and object files needed to compile and link programs
+ which use the standard C library. This is the o32 version of the
+ library, meant for MIPS64 systems.
+
 Package: libc6-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
 Section: libs
 Priority: optional
 Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -705,13 +729,13 @@ Description: Embedded GNU C Library: n32 Shared libraries for MIPS64
  of the library, meant for MIPS64 systems.
 
 Package: libc6-dev-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
 Section: libdevel
 Priority: optional
 Provides: libn32c-dev
 Conflicts: libc6-dev (<< 2.13-14)
 Replaces: libc6-dev (<< 2.13-11)
-Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}), ${misc:Depends}
+Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends}
 Recommends: gcc-multilib
 Description: Embedded GNU C Library: n32 Development Libraries for MIPS64
  Contains the symlinks and object files needed to compile and link programs
@@ -719,7 +743,7 @@ Description: Embedded GNU C Library: n32 Development Libraries for MIPS64
  library, meant for MIPS64 systems.
 
 Package: libc6-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
 Section: libs
 Priority: optional
 Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -729,7 +753,7 @@ Description: Embedded GNU C Library: 64bit Shared libraries for MIPS64
  of the library, meant for MIPS64 systems.
 
 Package: libc6-dev-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
 Section: libdevel
 Priority: optional
 Provides: lib64c-dev
diff --git a/debian/control.in/main b/debian/control.in/main
index d43c07e..0e97f53 100644
--- a/debian/control.in/main
+++ b/debian/control.in/main
@@ -3,7 +3,7 @@ Section: libs
 Priority: required
 Build-Depends: gettext, dpkg-dev (>= 1.16.0), bzip2, xz-utils, file, quilt,
  autoconf, gawk, debhelper (>= 7.4.3), rdfind, symlinks,
- linux-libc-dev (>= 3.2.1) [linux-any], linux-libc-dev (>= 3.4) [amd64 i386 x32],
+ linux-libc-dev (>= 3.2.1) [linux-any], linux-libc-dev (>= 3.4) [amd64 i386 x32], linux-libc-dev (>= 3.10) [mips64 mips64el],
  libaudit-dev [linux-any], libcap-dev [linux-any], libselinux-dev [linux-any],
  mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20120520-2~) [hurd-i386], gnumach-dev (>= 2:1.3.99.dfsg.git20120923~) [hurd-i386],
  kfreebsd-kernel-headers [kfreebsd-any],
@@ -11,6 +11,7 @@ Build-Depends: gettext, dpkg-dev (>= 1.16.0), bzip2, xz-utils, file, quilt,
  g++-4.6 [ia64],
  g++-4.7 (>= 4.7.3-4) [kfreebsd-amd64],
  g++-4.7 (>= 4.7.2-11), g++-4.7-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 s390x sparc sparc64 x32]
+ g++-4.8, g++-4.8-multilib [mipsn32 mipsn32el mips64 mips64el]
 Build-Depends-Indep: perl, po-debconf (>= 1.0)
 Build-Conflicts: binutils-gold
 Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
diff --git a/debian/control.in/mips32 b/debian/control.in/mips32
new file mode 100644
index 0000000..0985435
--- /dev/null
+++ b/debian/control.in/mips32
@@ -0,0 +1,24 @@
+Package: libc6-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libs
+Priority: optional
+Depends: libc6 (= ${binary:Version}), ${misc:Depends}
+Description: Embedded GNU C Library: o32 Shared libraries for MIPS64
+ This package includes shared versions of the standard C library and the
+ standard math library, as well as many others. This is the o32 version
+ of the library, meant for MIPS64 systems.
+
+Package: libc6-dev-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libdevel
+Priority: optional
+Provides: lib32c-dev
+Conflicts: libc6-dev (<< 2.13-14)
+Replaces: libc6-dev (<< 2.13-11)
+Depends: libc6-dev (= ${binary:Version}), libc6-mips32 (= ${binary:Version}), ${misc:Depends}
+Recommends: gcc-multilib
+Description: Embedded GNU C Library: o32 Development Libraries for MIPS64
+ Contains the symlinks and object files needed to compile and link programs
+ which use the standard C library. This is the o32 version of the
+ library, meant for MIPS64 systems.
+
diff --git a/debian/control.in/mips64 b/debian/control.in/mips64
index de28a13..8d04821 100644
--- a/debian/control.in/mips64
+++ b/debian/control.in/mips64
@@ -1,5 +1,5 @@
 Package: libc6-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
 Section: libs
 Priority: optional
 Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -9,7 +9,7 @@ Description: Embedded GNU C Library: 64bit Shared libraries for MIPS64
  of the library, meant for MIPS64 systems.
 
 Package: libc6-dev-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
 Section: libdevel
 Priority: optional
 Provides: lib64c-dev
diff --git a/debian/control.in/mipsn32 b/debian/control.in/mipsn32
index 2887b60..edcff50 100644
--- a/debian/control.in/mipsn32
+++ b/debian/control.in/mipsn32
@@ -1,5 +1,5 @@
 Package: libc6-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
 Section: libs
 Priority: optional
 Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -9,13 +9,13 @@ Description: Embedded GNU C Library: n32 Shared libraries for MIPS64
  of the library, meant for MIPS64 systems.
 
 Package: libc6-dev-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
 Section: libdevel
 Priority: optional
 Provides: libn32c-dev
 Conflicts: libc6-dev (<< 2.13-14)
 Replaces: libc6-dev (<< 2.13-11)
-Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}), ${misc:Depends}
+Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends}
 Recommends: gcc-multilib
 Description: Embedded GNU C Library: n32 Development Libraries for MIPS64
  Contains the symlinks and object files needed to compile and link programs
diff --git a/debian/patches/series b/debian/patches/series
index 4eab7dc..6c7d3a4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,5 @@
+locale-include-makeconfig.diff
+mipsn32-ask-for-2.6.35.diff
 svn-updates.diff
 
 locale/check-unknown-symbols.diff
diff --git a/debian/rules b/debian/rules
index 0e656f7..b5f2f13 100755
--- a/debian/rules
+++ b/debian/rules
@@ -182,6 +182,7 @@ NODEBUG_libc6-amd64 = 1
 NODEBUG_libc6-i386 = 1
 NODEBUG_libc6-x32 = 1
 NODEBUG_libc6-mipsn32 = 1
+NODEBUG_libc6-mips32 = 1
 NODEBUG_libc6-powerpc = 1
 NODEBUG_libc6-ppc64 = 1
 NODEBUG_libc6-s390 = 1
diff --git a/debian/rules.d/control.mk b/debian/rules.d/control.mk
index 5be693d..636d0d5 100644
--- a/debian/rules.d/control.mk
+++ b/debian/rules.d/control.mk
@@ -1,7 +1,7 @@
 libc_packages := libc6 libc6.1 libc0.1 libc0.3
 libc0_1_archs := kfreebsd-amd64 kfreebsd-i386
 libc0_3_archs := hurd-i386
-libc6_archs   := amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32
+libc6_archs   := amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el mipsn32 mipsn32el powerpc powerpcspe ppc64 sparc sparc64 s390 s390x sh4 x32 
 libc6_1_archs := alpha ia64
 
 control_deps := $(wildcard debian/control.in/*) $(addprefix debian/control.in/, $(libc_packages))
@@ -34,6 +34,7 @@ $(stamp)control: debian/rules.d/control.mk $(control_deps)
 	cat debian/control.in/amd64		>> $@T
 	cat debian/control.in/powerpc		>> $@T
 	cat debian/control.in/ppc64		>> $@T
+	cat debian/control.in/mips32		>> $@T
 	cat debian/control.in/mipsn32		>> $@T
 	cat debian/control.in/mips64		>> $@T
 	cat debian/control.in/armhf		>> $@T
diff --git a/debian/rules.d/debhelper.mk b/debian/rules.d/debhelper.mk
index f488ea1..c51461e 100644
--- a/debian/rules.d/debhelper.mk
+++ b/debian/rules.d/debhelper.mk
@@ -208,12 +208,12 @@ $(stamp)debhelper_%: $(stamp)debhelper-common $(stamp)install_%
 	    sed -e "s#TMPDIR#debian/tmp-$$curpass#g" -i $$t; \
 	    sed -e "s#RTLDDIR#$$rtlddir#g" -i $$t; \
 	    sed -e "s#SLIBDIR#$$slibdir#g" -i $$t; \
+		sed -e "s#LIBDIR#$$libdir#g" -i $$t; \
 	  done ; \
 	done
 
 	egrep -v "LIBDIR.*.a " debian/$(libc)-dev.install >debian/$(libc)-dev.install-
 	mv debian/$(libc)-dev.install- debian/$(libc)-dev.install
-	sed -e "s#LIBDIR#lib#g" -i debian/$(libc)-dev.install
 else
 $(patsubst %,debhelper_%,$(EGLIBC_PASSES)) :: debhelper_% : $(stamp)debhelper_%
 $(stamp)debhelper_%: $(stamp)debhelper-common $(stamp)install_%
diff --git a/debian/sysdeps/mips64.mk b/debian/sysdeps/mips64.mk
new file mode 100644
index 0000000..1419f05
--- /dev/null
+++ b/debian/sysdeps/mips64.mk
@@ -0,0 +1,33 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib64
+
+CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)-4.8
+CXX = $(DEB_HOST_GNU_TYPE)-$(BASE_CXX)-4.8
+
+ifneq ($(DEB_BUILD_PROFILE),bootstrap)
+# build 32-bit (n32) alternative library
+EGLIBC_PASSES += mipsn32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32
+mipsn32_add-ons = ports nptl $(add-ons)
+mipsn32_configure_target = mips64-linux-gnuabin32
+mipsn32_CC = $(CC) -mabi=n32 -mno-plt
+mipsn32_CXX = $(CXX) -mabi=n32 -mno-plt
+libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver))
+mipsn32_rtlddir = /lib32
+mipsn32_slibdir = /lib32
+mipsn32_libdir = /usr/lib32
+mipsn32_extra_config_options := $(extra_config_options) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mips-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
+mips32_rtlddir = /lib
+mips32_slibdir = /lib
+mips32_libdir = /usr/lib
+mips32_extra_config_options := $(extra_config_options) --disable-profile
+endif
diff --git a/debian/sysdeps/mips64el.mk b/debian/sysdeps/mips64el.mk
new file mode 100644
index 0000000..61447df
--- /dev/null
+++ b/debian/sysdeps/mips64el.mk
@@ -0,0 +1,33 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib64
+
+CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)-4.8
+CXX = $(DEB_HOST_GNU_TYPE)-$(BASE_CXX)-4.8
+
+ifneq ($(DEB_BUILD_PROFILE),bootstrap)
+# build 32-bit (n32) alternative library
+EGLIBC_PASSES += mipsn32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32
+mipsn32_add-ons = ports nptl $(add-ons)
+mipsn32_configure_target = mips64el-linux-gnuabin32
+mipsn32_CC = $(CC) -mabi=n32 -mno-plt
+mipsn32_CXX = $(CXX) -mabi=n32 -mno-plt
+libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver))
+mipsn32_rtlddir = /lib32
+mipsn32_slibdir = /lib32
+mipsn32_libdir = /usr/lib32
+mipsn32_extra_config_options := $(extra_config_options) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mipsel-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
+mips32_rtlddir = /lib
+mips32_slibdir = /lib
+mips32_libdir = /usr/lib
+mips32_extra_config_options := $(extra_config_options) --disable-profile
+endif
diff --git a/debian/sysdeps/mipsn32.mk b/debian/sysdeps/mipsn32.mk
new file mode 100644
index 0000000..38d52a7
--- /dev/null
+++ b/debian/sysdeps/mipsn32.mk
@@ -0,0 +1,33 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib32
+
+CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)-4.8
+CXX = $(DEB_HOST_GNU_TYPE)-$(BASE_CXX)-4.8
+
+ifneq ($(DEB_BUILD_PROFILE),bootstrap)
+# build 64 alternative library
+EGLIBC_PASSES += mips64
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64
+mips64_add-ons = ports nptl $(add-ons)
+mips64_configure_target = mips64-linux-gnuabi64
+mips64_CC = $(CC) -mabi=64 -mno-plt
+mips64_CXX = $(CXX) -mabi=64 -mno-plt
+libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver))
+mips64_rtlddir = /lib64
+mips64_slibdir = /lib64
+mips64_libdir = /usr/lib64
+mips64_extra_config_options := $(extra_config_options) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mips-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
+mips32_rtlddir = /lib
+mips32_slibdir = /lib
+mips32_libdir = /usr/lib
+mips32_extra_config_options := $(extra_config_options) --disable-profile
+endif
diff --git a/debian/sysdeps/mipsn32el.mk b/debian/sysdeps/mipsn32el.mk
new file mode 100644
index 0000000..796a3ff
--- /dev/null
+++ b/debian/sysdeps/mipsn32el.mk
@@ -0,0 +1,33 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib32
+
+CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)-4.8
+CXX = $(DEB_HOST_GNU_TYPE)-$(BASE_CXX)-4.8
+
+ifneq ($(DEB_BUILD_PROFILE),bootstrap)
+# build 64 alternative library
+EGLIBC_PASSES += mips64
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64
+mips64_add-ons = ports nptl $(add-ons)
+mips64_configure_target = mips64el-linux-gnuabi64
+mips64_CC = $(CC) -mabi=64 -mno-plt
+mips64_CXX = $(CXX) -mabi=64 -mno-plt
+libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver))
+mips64_rtlddir = /lib64
+mips64_slibdir = /lib64
+mips64_libdir = /usr/lib64
+mips64_extra_config_options := $(extra_config_options) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mipsel-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
+mips32_rtlddir = /lib
+mips32_slibdir = /lib
+mips32_libdir = /usr/lib
+mips32_extra_config_options := $(extra_config_options) --disable-profile
+endif
