+2012-05-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.tgt: Support x86_64-*-linux-gnux32.
+
 2012-05-04  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/tc-i386.c (match_template): Add `instruction' to
 
   i386-*-linux*aout*)                  fmt=aout em=linux ;;
   i386-*-linux*oldld)                  fmt=aout em=linux ;;
   i386-*-linux*coff*)                  fmt=coff em=linux ;;
-  i386-*-linux-*)                      fmt=elf em=linux ;;
+  i386-*-linux-*)                      fmt=elf em=linux
+    case ${cpu}-${os} in
+      x86_64*-linux-gnux32)            arch=x86_64:32 ;;
+    esac ;;
   i386-*-lynxos*)                      fmt=elf em=lynx ;;
   i386-*-sysv[45]*)                    fmt=elf ;;
   i386-*-solaris*)                     fmt=elf em=solaris ;;
 
+2012-05-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.tgt: Support x86_64-*-linux-gnux32.
+
 2012-05-03  Sean Keys  <skeys@ipdatasys.com>
 
        * Makefile.am (ALL_EMULATIONS): Added new emulation for XGATE
 
                        targ64_extra_libpath=elf_x86_64
                        targ_extra_libpath=elf32_x86_64
                        tdir_i386linux=${targ_alias}aout ;;
+x86_64-*-linux-gnux32) targ_emul=elf32_x86_64
+                       targ_extra_emuls="elf_x86_64 elf_i386 i386linux elf_l1om"
+                       targ_extra_libpath="elf_i386 elf_x86_64 elf_l1om"
+                       tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
+                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
 x86_64-*-linux-*)      targ_emul=elf_x86_64
                        targ_extra_emuls="elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om"
                        targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
 
+2012-05-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-elf/eh1.d: Skip x86_64-*-linux-gnux32.
+       * ld-elf/eh2.d: Likewise.
+       * ld-elf/eh3.d: Likewise.
+       * ld-elf/eh4.d: Likewise.
+
+       * ld-elfvsb/elfvsb.exp: Xfail x86_64-*-linux-gnux32.
+       * ld-shared/shared.exp: Likewise.
+
+       * ld-ifunc/ifunc-3a-x86.d: Support x86_64-*-linux-gnux32.
+
 2012-04-24  Roland McGrath  <mcgrathr@google.com>
 
        * ld-x86-64/plt-nacl.pd: Fix expected nop padding.
 
 #as: --64
 #ld: -melf_x86_64 -Ttext 0x400078
 #readelf: -wf
+#notarget: x86_64-*-linux-gnux32
 #target: x86_64-*-*
 
 Contents of the .eh_frame section:
 
 #as: --64
 #ld: -melf_x86_64 -Ttext 0x400078
 #readelf: -wf
+#notarget: x86_64-*-linux-gnux32
 #target: x86_64-*-*
 
 Contents of the .eh_frame section:
 
 #as: --64
 #ld: -melf_x86_64 -Ttext 0x400078
 #readelf: -wf
+#notarget: x86_64-*-linux-gnux32
 #target: x86_64-*-*
 
 Contents of the .eh_frame section:
 
 #as: --64
 #ld: -melf_x86_64 -shared -Ttext 0x400
 #readelf: -wf
+#notarget: x86_64-*-linux-gnux32
 #target: x86_64-*-*
 
 Contents of the .eh_frame section:
 
            if { [is_elf64 $tmpdir/mainnp.o] } {
                setup_xfail "x86_64-*-linux*"
            }
+           setup_xfail "x86_64-*-linux-gnux32"
            if { ![istarget hppa*64*-*-linux*] } {
                setup_xfail "hppa*-*-linux*"
            }
            if { [is_elf64 $tmpdir/mainnp.o] } {
                setup_xfail "x86_64-*-linux*"
            }
+           setup_xfail "x86_64-*-linux-gnux32"
            if { ![istarget hppa*64*-*-linux*] } {
                setup_xfail "hppa*-*-linux*"
            }
                if { [is_elf64 $tmpdir/mainp.o] } {
                    setup_xfail "x86_64-*-linux*"
                }
+               setup_xfail "x86_64-*-linux-gnux32"
                if { ![istarget hppa*64*-*-linux*] } {
                    setup_xfail "hppa*-*-linux*"
                }
 
 #target: x86_64-*-* i?86-*-*
 
 #...
-[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x1b0|\+0x240|)@plt>
+[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x1b0|\+0x240|\+0x1a0|)@plt>
 #pass
 
        if { [is_elf64 $tmpdir/mainnp.o] } {
            setup_xfail "x86_64-*-linux*"
        }
+       setup_xfail "x86_64-*-linux-gnux32"
        setup_xfail "s390x-*-linux*"
        if [ string match $shared_needs_pic "yes" ] {
            setup_xfail "arm*-*-linux*"
        if { [is_elf64 $tmpdir/mainnp.o] } {
            setup_xfail "x86_64-*-linux*"
        }
+       setup_xfail "x86_64-*-linux-gnux32"
        setup_xfail "s390x-*-linux*"
        if [ string match $shared_needs_pic "yes" ] {
            setup_xfail "arm*-*-linux*"
            if { [is_elf64 $tmpdir/mainp.o] } {
                setup_xfail "x86_64-*-linux*"
            }
+           setup_xfail "x86_64-*-linux-gnux32"
            setup_xfail "s390x-*-linux*"
            if [ string match $shared_needs_pic "yes" ] {
                setup_xfail "arm*-*-linux*"