ref: 536cef2b2ad9ba00df99f38b8eee764297562799
dir: /patches/binutils/jinx-working-patch.patch/
diff --git binutils-clean/bfd/config.bfd binutils-workdir/bfd/config.bfd index bbf1244..0a996e6 100644 --- binutils-clean/bfd/config.bfd +++ binutils-workdir/bfd/config.bfd @@ -735,6 +735,10 @@ case "${targ}" in targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec" want64=true ;; + x86_64-*-plan9*) + targ_defvec=x86_64_elf64_vec + want64=true + ;; #endif i[3-7]86-*-lynxos*) targ_defvec=i386_elf32_vec diff --git binutils-clean/gas/configure.tgt binutils-workdir/gas/configure.tgt index 7c66734..ce65a06 100644 --- binutils-clean/gas/configure.tgt +++ binutils-workdir/gas/configure.tgt @@ -231,6 +231,7 @@ case ${generic_target} in i386-*-elf*) fmt=elf ;; i386-*-fuchsia*) fmt=elf ;; i386-*-haiku*) fmt=elf em=haiku ;; + i386-*-plan9*) fmt=elf ;; i386-*-genode*) fmt=elf ;; i386-*-bsd*) fmt=aout em=386bsd ;; i386-*-netbsd*-gnu* | \ diff --git binutils-clean/gprofng/libcollector/configure.ac binutils-workdir/gprofng/libcollector/configure.ac index b0ef678..c1f54fe 100644 --- binutils-clean/gprofng/libcollector/configure.ac +++ binutils-workdir/gprofng/libcollector/configure.ac @@ -18,7 +18,6 @@ dnl <http://www.gnu.org/licenses/>. m4_include([../../bfd/version.m4]) AC_INIT([gprofng], BFD_VERSION) -AC_CONFIG_MACRO_DIRS([../../config ../..]) AC_CONFIG_AUX_DIR(../..) AC_CANONICAL_TARGET AM_INIT_AUTOMAKE diff --git binutils-clean/ld/Makefile.am binutils-workdir/ld/Makefile.am index f9ee05b..85e681e 100644 --- binutils-clean/ld/Makefile.am +++ binutils-workdir/ld/Makefile.am @@ -463,6 +463,7 @@ ALL_64_EMULATION_SOURCES = \ eelf_x86_64.c \ eelf_x86_64_cloudabi.c \ eelf_x86_64_fbsd.c \ + eelf_x86_64_plan9.c \ eelf_x86_64_haiku.c \ eelf_x86_64_sol2.c \ ehppa64linux.c \ diff --git binutils-clean/ld/configure.tgt binutils-workdir/ld/configure.tgt index f937f78..50e27ff 100644 --- binutils-clean/ld/configure.tgt +++ binutils-workdir/ld/configure.tgt @@ -1023,6 +1023,8 @@ x86_64-*-linux-*) targ_emul=elf_x86_64 x86_64-*-redox*) targ_emul=elf_x86_64 targ_extra_emuls=elf_i386 ;; +x86_64-*-plan9*) targ_emul=elf_x86_64_plan9 + ;; x86_64-*-solaris2*) targ_emul=elf_x86_64_sol2 targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu" targ_extra_libpath=$targ_extra_emuls diff --git binutils-workdir/ld/emulparams/elf_x86_64_plan9.sh binutils-workdir/ld/emulparams/elf_x86_64_plan9.sh new file mode 100644 index 0000000..2948b21 --- /dev/null +++ binutils-workdir/ld/emulparams/elf_x86_64_plan9.sh @@ -0,0 +1,8 @@ +source_sh ${srcdir}/emulparams/elf_x86_64.sh +SCRIPT_NAME=plan9 +TEXT_START_ADDR=0x200000 +DATA_ADDR="ALIGN (0x200000)" +GENERATE_RELRO_SCRIPT= +GENERATE_COMBRELOC_SCRIPT= +GENERATE_SHLIB_SCRIPT= +GENERATE_PIE_SCRIPT= diff --git binutils-workdir/ld/scripttempl/plan9.sc binutils-workdir/ld/scripttempl/plan9.sc new file mode 100644 index 0000000..15bd83a --- /dev/null +++ binutils-workdir/ld/scripttempl/plan9.sc @@ -0,0 +1,49 @@ +# Copyright (C) 2024 Plan 9 Foundation. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +cat <<EOF +/* Copyright (C) 2024 Plan 9 Foundation. + + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ + +OUTPUT_FORMAT("${OUTPUT_FORMAT}") +OUTPUT_ARCH(${ARCH}) + +PHDRS +{ + text PT_LOAD FILEHDR PHDRS; + data PT_LOAD; +} + +SECTIONS +{ + . = ${TEXT_START_ADDR} + SIZEOF_HEADERS; + + .text : { + *(.text*) + *(.init*) + *(.fini*) + } :text + + . = ${DATA_ADDR}; + + .data : { + *(.data*) + *(.ctors*) + *(.dtors*) + *(.rodata*) + *(.eh_frame*) + } :data + + .bss : { + *(.bss*) + } :data + + end = .; +} +EOF