diff -urN debian/rules /usr/src/glibc/debian/rules
--- debian/rules	2015-03-18 11:08:54.000000000 +0000
+++ /usr/src/glibc/debian/rules	2015-05-10 07:31:39.000000000 +0000
@@ -140,8 +140,12 @@
 endif
 endif
 
+ifeq ($(DEB_STAGE),stage2)
+  DEB_BUILD_PROFILES+=stage2
+endif
+
 ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
-  DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev
+  DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev $(libc)
   DEB_INDEP_REGULAR_PACKAGES = 
   DEB_UDEB_PACKAGES = 
 else
diff -urN debian/rules.d/build.mk /usr/src/glibc/debian/rules.d/build.mk
--- debian/rules.d/build.mk	2015-03-19 20:28:42.000000000 +0000
+++ /usr/src/glibc/debian/rules.d/build.mk	2015-05-10 07:31:39.000000000 +0000
@@ -160,10 +160,19 @@
 	    cross-compiling=yes install_root=$(CURDIR)/debian/tmp-$(curpass)	\
 	    install-bootstrap-headers=yes install-headers )
 
-	install -d $(CURDIR)/debian/tmp-$(curpass)/lib
-	install -m 644 $(DEB_BUILDDIR)/csu/crt[1in].o $(CURDIR)/debian/tmp-$(curpass)/lib
-	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
-	        -o $(CURDIR)/debian/tmp-$(curpass)/lib/libc.so
+	install -d $(CURDIR)/debian/tmp-$(curpass)/$(call xx,libdir)
+	install -m 644 $(DEB_BUILDDIR)/csu/crt[1in].o $(CURDIR)/debian/tmp-$(curpass)/$(call xx,libdir)
+	$(call xx,CC) -nostdlib -nostartfiles -shared -x c /dev/null \
+	        -o $(CURDIR)/debian/tmp-$(curpass)/$(call xx,libdir)/libc.so
+	if [ $(curpass) = libc ]; then \
+	  mkdir -p debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	  mv debian/tmp-$(curpass)/usr/include/bits debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	  mv debian/tmp-$(curpass)/usr/include/gnu debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	  mv debian/tmp-$(curpass)/usr/include/sys debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	  mv debian/tmp-$(curpass)/usr/include/fpu_control.h debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	  mv debian/tmp-$(curpass)/usr/include/a.out.h debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	  mv debian/tmp-$(curpass)/usr/include/ieee754.h debian/tmp-$(curpass)/usr/include/$(DEB_HOST_MULTIARCH); \
+	fi
 else
 	: # FIXME: why just needed for ARM multilib?
 	case "$(curpass)" in \
diff -urN debian/rules.d/debhelper.mk /usr/src/glibc/debian/rules.d/debhelper.mk
--- debian/rules.d/debhelper.mk	2015-03-19 22:15:39.000000000 +0000
+++ /usr/src/glibc/debian/rules.d/debhelper.mk	2015-05-10 12:12:25.937141495 +0000
@@ -109,7 +109,8 @@
 	./debian/shlibs-add-udebs $(curpass)
 
 	dh_installdeb -p$(curpass)
-	dh_shlibdeps -p$(curpass)
+	[ -n "$$(echo $(curpass) | grep 'mips32')" ] && o32_libs="-l$(CURDIR)/debian/$(curpass)/libo32/"; \
+	   dh_shlibdeps $$o32_libs  -p$(curpass)
 	dh_gencontrol -p$(curpass)
 	if [ $(curpass) = nscd ] ; then \
 		sed -i -e "s/\(Depends:.*libc[0-9.]\+\)-[a-z0-9]\+/\1/" debian/nscd/DEBIAN/control ; \
@@ -179,7 +180,7 @@
 
 	# Generate common substvars files.
 	: > tmp.substvars
-ifeq ($(filter stage2,$(DEB_BUILD_PROFILES)),)
+ifeq ($(filter stage1 stage2,$(DEB_BUILD_PROFILES)),)
 	echo 'libgcc:Depends=libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa]' >> tmp.substvars
 endif
 
@@ -197,9 +198,20 @@
 	slibdir=$(call xx,slibdir) ; \
 	rtlddir=$(call xx,rtlddir) ; \
 	curpass=$(curpass) ; \
-	templates="libc-dev" ;\
-	pass="" ; \
-	suffix="" ;\
+	templates="libc-dev" ; \
+	case "$$curpass:$$slibdir" in \
+	  libc:*) \
+	    suffix="" \
+	    pass="" \
+	    ;; \
+	  *:/lib32 | *:/lib64 | *:/libo32 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \
+	    suffix="-$(curpass)" \
+	    pass="-alt" \
+	    ;; \
+	  *:*) \
+	    templates="" ; \
+	    ;; \
+	esac ; \
 	for t in $$templates ; do \
 	  for s in debian/$$t$$pass.* ; do \
 	    t=`echo $$s | sed -e "s#libc\(.*\)$$pass#$(libc)\1$$suffix#"` ; \
@@ -210,10 +222,11 @@
 	    sed -e "s#RTLDDIR#$$rtlddir#g" -i $$t; \
 	    sed -e "s#SLIBDIR#$$slibdir#g" -i $$t; \
 	    sed -e "s#LIBDIR#$$libdir#g" -i $$t; \
+	    sed -e "s#MULTIARCHDIR#$$DEB_HOST_MULTIARCH#g" -i $$t ; \
 	  done ; \
-	done
+	done; \
+	sed -e "/.*.a /d" -i debian/$(libc)-dev$$suffix.install
 
-	sed -e "/$$libdir.*.a /d" -i debian/$(libc)-dev.install
 else
 $(patsubst %,debhelper_%,$(GLIBC_PASSES)) :: debhelper_% : $(stamp)debhelper_%
 $(stamp)debhelper_%: $(stamp)debhelper-common $(stamp)install_%
diff -urN debian/sysdeps/linux.mk /usr/src/glibc/debian/sysdeps/linux.mk
--- debian/sysdeps/linux.mk	2015-03-16 16:03:45.000000000 +0000
+++ /usr/src/glibc/debian/sysdeps/linux.mk	2015-05-10 22:20:49.109875755 +0000
@@ -16,7 +16,7 @@
 endif
 
 ifndef LINUX_SOURCE
-  ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+  ifeq ($(shell dpkg-query --status linux-libc-dev-$(DEB_HOST_ARCH)-cross 2>/dev/null),)
     LINUX_HEADERS := /usr/include
   else
     LINUX_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include
