diff -Naur orig/binutils-2.29/bfd/config.bfd binutils-2.29/bfd/config.bfd --- orig/binutils-2.29/bfd/config.bfd 2017-07-04 18:43:20.000000000 +1000 +++ binutils-2.29/bfd/config.bfd 2017-10-07 12:40:41.383958905 +1000 @@ -639,6 +639,10 @@ targ64_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec x86_64_pei_vec" want64=true ;; + i[3-7]86-*-quinn*) + targ_defvec=i386_elf32_vec + targ_selvecs= + ;; #ifdef BFD64 x86_64-*-solaris2*) targ_defvec=i386_elf32_sol2_vec diff -Naur orig/binutils-2.29/config.sub binutils-2.29/config.sub --- orig/binutils-2.29/config.sub 2017-07-04 18:43:20.000000000 +1000 +++ binutils-2.29/config.sub 2017-10-07 12:42:10.591250074 +1000 @@ -1396,7 +1396,7 @@ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ + | -aos* | -aros* | -cloudabi* | -sortix* | -quinn* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff -Naur orig/binutils-2.29/gas/configure.tgt binutils-2.29/gas/configure.tgt --- orig/binutils-2.29/gas/configure.tgt 2017-07-04 18:43:20.000000000 +1000 +++ binutils-2.29/gas/configure.tgt 2017-10-07 12:43:10.454777153 +1000 @@ -246,6 +246,9 @@ i386-*-openbsd[0-2].* | \ i386-*-openbsd3.[0-2]) fmt=aout em=nbsd ;; i386-*-openbsd*) fmt=elf em=nbsd ;; + + i386-*-quinn*) fmt=elf;; + i386-*-linux*aout*) fmt=aout em=linux ;; i386-*-linux*oldld) fmt=aout em=linux ;; i386-*-linux*coff*) fmt=coff em=linux ;; diff -Naur orig/binutils-2.29/ld/Makefile.am binutils-2.29/ld/Makefile.am --- orig/binutils-2.29/ld/Makefile.am 2017-07-24 19:53:52.000000000 +1000 +++ binutils-2.29/ld/Makefile.am 2017-10-07 12:50:17.031451970 +1000 @@ -1344,6 +1344,10 @@ eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +eelf_i386_quinn.c: $(srcdir)/emulparams/elf_i386_quinn.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_quinn "$(tdir_elf_i386_quinn)" + eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} diff -Naur orig/binutils-2.29/ld/Makefile.in binutils-2.29/ld/Makefile.in --- orig/binutils-2.29/ld/Makefile.in 2017-07-04 18:43:21.000000000 +1000 +++ binutils-2.29/ld/Makefile.in 2017-10-07 12:52:53.302443099 +1000 @@ -2908,6 +2908,10 @@ eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +eelf_i386_quinn.c: $(srcdir)/emulparams/elf_i386_quinn.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_quinn "$(tdir_elf_i386_quinn)" + eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} diff -Naur orig/binutils-2.29/ld/configure.tgt binutils-2.29/ld/configure.tgt --- orig/binutils-2.29/ld/configure.tgt 2017-07-04 18:43:21.000000000 +1000 +++ binutils-2.29/ld/configure.tgt 2017-10-07 12:44:37.474093076 +1000 @@ -372,6 +372,8 @@ targ_extra_ofiles="deffilep.o pe-dll.o" ;; i[3-7]86-*-pe) targ_emul=i386pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; +i[3-7]86-*-quinn*) targ_emul=elf_i386_quinn ; + targ_extra_emuls=elf_i386 ;; i[3-7]86-*-cygwin*) targ_emul=i386pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ; test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; diff -Naur orig/binutils-2.29/ld/emulparams/elf_i386_quinn.sh binutils-2.29/ld/emulparams/elf_i386_quinn.sh --- orig/binutils-2.29/ld/emulparams/elf_i386_quinn.sh 1970-01-01 10:00:00.000000000 +1000 +++ binutils-2.29/ld/emulparams/elf_i386_quinn.sh 2017-10-07 13:27:39.889380680 +1000 @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf_i386.sh +GENERATE_SHLIB_SCRIPT=yes +GENERATE_PIE_SCRIPT=yes +TEXT_START_ADDR=0x40000000 +