diff -ruN binutils-2.39/bfd/config.bfd binutils-2.39-banan_os/bfd/config.bfd --- binutils-2.39/bfd/config.bfd 2022-07-08 12:46:47.000000000 +0300 +++ binutils-2.39-banan_os/bfd/config.bfd 2024-08-26 15:25:08.612615228 +0300 @@ -602,6 +602,11 @@ targ_defvec=i386_elf32_vec targ_selvecs=iamcu_elf32_vec ;; + i[3-7]86-*-banan_os*) + targ_defvec=i386_elf32_vec + targ_selvecs= + targ64_selvecs=x86_64_elf64_vec + ;; i[3-7]86-*-dicos*) targ_defvec=i386_elf32_vec targ_selvecs=iamcu_elf32_vec @@ -656,6 +661,11 @@ targ64_selvecs=x86_64_elf64_vec ;; #ifdef BFD64 + x86_64-*-banan_os*) + targ_defvec=x86_64_elf64_vec + targ_selvecs=i386_elf32_vec + want64=true + ;; x86_64-*-cloudabi*) targ_defvec=x86_64_elf64_cloudabi_vec want64=true diff -ruN binutils-2.39/config.sub binutils-2.39-banan_os/config.sub --- binutils-2.39/config.sub 2022-07-08 12:46:47.000000000 +0300 +++ binutils-2.39-banan_os/config.sub 2024-08-26 16:01:54.868646232 +0300 @@ -1754,7 +1754,7 @@ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* ) + | fiwix* | banan_os* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) diff -ruN binutils-2.39/gas/configure.tgt binutils-2.39-banan_os/gas/configure.tgt --- binutils-2.39/gas/configure.tgt 2022-07-08 12:46:47.000000000 +0300 +++ binutils-2.39-banan_os/gas/configure.tgt 2024-08-26 15:29:24.317178187 +0300 @@ -221,6 +221,7 @@ h8300-*-elf) fmt=elf ;; h8300-*-linux*) fmt=elf em=linux ;; + i386-*-banan_os*) fmt=elf em=gnu ;; i386-*-beospe*) fmt=coff em=pe ;; i386-*-beos*) fmt=elf ;; i386-*-elfiamcu) fmt=elf arch=iamcu ;; diff -ruN binutils-2.39/ld/configure.tgt binutils-2.39-banan_os/ld/configure.tgt --- binutils-2.39/ld/configure.tgt 2022-07-29 10:37:48.000000000 +0300 +++ binutils-2.39-banan_os/ld/configure.tgt 2024-08-26 15:43:54.040175458 +0300 @@ -352,6 +352,10 @@ i[3-7]86-*-rdos*) targ_emul=elf_i386 targ_extra_emuls=elf_iamcu ;; +i[3-7]86-*-banan_os*) targ_emul=elf_i386_banan_os + targ_extra_emuls=elf_i386 + targ64_extra_emuls="elf_x86_64_banan_os elf_x86_64" + ;; i[3-7]86-*-bsd) targ_emul=i386bsd targ_extra_ofiles= ;; @@ -988,6 +992,9 @@ ;; x86_64-*-rdos*) targ_emul=elf64rdos ;; +x86_64-*-banan_os*) targ_emul=elf_x86_64_banan_os + targ_extra_emuls="elf_i386_banan_os elf_x86_64 elf_i386" + ;; x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi ;; x86_64-*-haiku*) targ_emul=elf_x86_64_haiku diff -ruN binutils-2.39/ld/emulparams/elf_banan_os.sh binutils-2.39-banan_os/ld/emulparams/elf_banan_os.sh --- binutils-2.39/ld/emulparams/elf_banan_os.sh 1970-01-01 02:00:00.000000000 +0200 +++ binutils-2.39-banan_os/ld/emulparams/elf_banan_os.sh 2024-08-26 15:51:32.242246455 +0300 @@ -0,0 +1 @@ +ELF_INTERPRETER_NAME=\"/usr/lib/DynamicLoader.so\" diff -ruN binutils-2.39/ld/emulparams/elf_i386_banan_os.sh binutils-2.39-banan_os/ld/emulparams/elf_i386_banan_os.sh --- binutils-2.39/ld/emulparams/elf_i386_banan_os.sh 1970-01-01 02:00:00.000000000 +0200 +++ binutils-2.39-banan_os/ld/emulparams/elf_i386_banan_os.sh 2024-08-26 15:51:26.431570961 +0300 @@ -0,0 +1,2 @@ +source_sh ${srcdir}/emulparams/elf_i386.sh +source_sh ${srcdir}/emulparams/elf_banan_os.sh diff -ruN binutils-2.39/ld/emulparams/elf_x86_64_banan_os.sh binutils-2.39-banan_os/ld/emulparams/elf_x86_64_banan_os.sh --- binutils-2.39/ld/emulparams/elf_x86_64_banan_os.sh 1970-01-01 02:00:00.000000000 +0200 +++ binutils-2.39-banan_os/ld/emulparams/elf_x86_64_banan_os.sh 2024-08-26 15:51:21.591003274 +0300 @@ -0,0 +1,2 @@ +source_sh ${srcdir}/emulparams/elf_x86_64.sh +source_sh ${srcdir}/emulparams/elf_banan_os.sh diff -ruN binutils-2.39/ld/Makefile.am binutils-2.39-banan_os/ld/Makefile.am --- binutils-2.39/ld/Makefile.am 2022-07-08 12:46:48.000000000 +0300 +++ binutils-2.39-banan_os/ld/Makefile.am 2024-08-26 15:46:27.818947949 +0300 @@ -275,6 +275,7 @@ eelf32xtensa.c \ eelf32z80.c \ eelf_i386.c \ + eelf_i386_banan_os.c \ eelf_i386_be.c \ eelf_i386_fbsd.c \ eelf_i386_haiku.c \ @@ -453,6 +454,7 @@ eelf64tilegx_be.c \ eelf_mipsel_haiku.c \ eelf_x86_64.c \ + eelf_x86_64_banan_os.c \ eelf_x86_64_cloudabi.c \ eelf_x86_64_fbsd.c \ eelf_x86_64_haiku.c \ diff -ruN binutils-2.39/ld/Makefile.in binutils-2.39-banan_os/ld/Makefile.in --- binutils-2.39/ld/Makefile.in 2022-08-05 12:56:53.000000000 +0300 +++ binutils-2.39-banan_os/ld/Makefile.in 2024-08-26 15:52:12.046704200 +0300 @@ -772,6 +772,7 @@ eelf32xtensa.c \ eelf32z80.c \ eelf_i386.c \ + eelf_i386_banan_os.c \ eelf_i386_be.c \ eelf_i386_fbsd.c \ eelf_i386_haiku.c \ @@ -949,6 +950,7 @@ eelf64tilegx_be.c \ eelf_mipsel_haiku.c \ eelf_x86_64.c \ + eelf_x86_64_banan_os.c \ eelf_x86_64_cloudabi.c \ eelf_x86_64_fbsd.c \ eelf_x86_64_haiku.c \ @@ -1441,6 +1443,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64tilegx.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64tilegx_be.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_banan_os.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_haiku.Po@am__quote@ @@ -1451,6 +1454,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_mipsel_haiku.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_s390.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_banan_os.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_haiku.Po@am__quote@