--- /dev/null
+diff -urN binutils-2.17-orig/bfd/config.bfd binutils-2.17/bfd/config.bfd
+--- binutils-2.17-orig/bfd/config.bfd 2006-04-05 07:41:57.000000000 -0500
++++ binutils-2.17/bfd/config.bfd 2007-07-29 16:19:09.000000000 -0500
+@@ -545,6 +545,11 @@
+ targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
+ targ64_selvecs=bfd_elf64_x86_64_vec
+ ;;
++ i[5-7]86-*-polintos*)
++ targ_defvec=bfd_elf32_i386_vec
++ targ64_selvecs=bfd_elf64_x86_64_vec
++ want64=true
++ ;;
+ #ifdef BFD64
+ x86_64-*-elf*)
+ targ_defvec=bfd_elf64_x86_64_vec
+@@ -562,6 +567,10 @@
+ targ_defvec=bfd_elf64_x86_64_vec
+ targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
+ ;;
++ x86_64-*-polintos*)
++ targ_defvec=bfd_elf64_x86_64_vec
++ targ_selvecs=bfd_elf32_i386_vec
++ ;;
+ #endif
+ i[3-7]86-*-lynxos*)
+ targ_defvec=bfd_elf32_i386_vec
+diff -urN binutils-2.17-orig/config.guess binutils-2.17/config.guess
+--- binutils-2.17-orig/config.guess 2006-01-16 11:34:37.000000000 -0600
++++ binutils-2.17/config.guess 2007-07-29 16:17:34.000000000 -0500
+@@ -141,6 +141,9 @@
+ # Note: order is significant - the case branches are not exclusive.
+
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
++ *:PolIntOS:*:*)
++ echo ${UNAME_MACHINE}-polintos
++ exit 0 ;;
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+diff -urN binutils-2.17-orig/config.sub binutils-2.17/config.sub
+--- binutils-2.17-orig/config.sub 2006-01-16 11:34:37.000000000 -0600
++++ binutils-2.17/config.sub 2007-07-29 16:18:09.000000000 -0500
+@@ -1215,7 +1215,7 @@
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+- | -skyos* | -haiku* | -rdos*)
++ | -skyos* | -haiku* | -rdos* | -polintos*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+diff -urN binutils-2.17-orig/gas/configure.tgt binutils-2.17/gas/configure.tgt
+--- binutils-2.17-orig/gas/configure.tgt 2006-04-05 07:41:57.000000000 -0500
++++ binutils-2.17/gas/configure.tgt 2007-07-29 16:19:13.000000000 -0500
+@@ -211,6 +211,7 @@
+ i386-*-interix*) fmt=coff em=interix ;;
+ i386-*-mingw32*) fmt=coff em=pe ;;
+ i386-*-nto-qnx*) fmt=elf ;;
++ i386-*-polintos*) fmt=elf ;;
+ i386-*-*nt*) fmt=coff em=pe ;;
+ i386-*-chaos) fmt=elf ;;
+ i386-*-rdos*) fmt=elf ;;
+diff -urN binutils-2.17-orig/ld/configure.tgt binutils-2.17/ld/configure.tgt
+--- binutils-2.17-orig/ld/configure.tgt 2006-04-05 07:41:57.000000000 -0500
++++ binutils-2.17/ld/configure.tgt 2007-07-29 16:20:05.000000000 -0500
+@@ -224,6 +224,14 @@
+ i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
+ i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
+ ;;
++i[5-7]86-*-polintos) targ_emul=elf_i386
++ if test x${want64} = xtrue; then
++ targ_extra_emuls="$targ_extra_emuls elf_x86_64"
++ fi
++ ;;
++x86_64-*-polintos*) targ_emul=elf_x86_64
++ targ_extra_emuls="elf_i386"
++ ;;
+ i860-*-coff) targ_emul=coff_i860 ;;
+ i860-stardent-sysv4* | i860-stardent-elf*)
+ targ_emul=elf32_i860