diff --git a/ports/README.md b/ports/README.md index 9710e12f..33d25a27 100644 --- a/ports/README.md +++ b/ports/README.md @@ -12,6 +12,7 @@ Try to keep this list in alphabetical order. Name | Version | Description | URL ---|---|--- | --- bc | 6.6.0 | An implementation of the POSIX bc calculator | https://github.com/gavinhoward/bc +binutils | 2.39 | The GNU suite of binary utilities | https://www.gnu.org/software/binutils minitar | 1.7.5 | Tiny and easy-to-use C library to read/write tar archives | https://git.cloudapio.eu/apio/minitar nasm | 2.16.01 | An assembler for the x86 CPU architecture | https://nasm.us diff --git a/ports/binutils/PACKAGE b/ports/binutils/PACKAGE new file mode 100644 index 00000000..a84adcd9 --- /dev/null +++ b/ports/binutils/PACKAGE @@ -0,0 +1,30 @@ +# Basic information +name="binutils" +version="2.39" + +# Download options +format="tar" +url="https://ftp.gnu.org/gnu/binutils/binutils-$version.tar.gz" +output="binutils-$version.tar.gz" +sha256sum="d12ea6f239f1ffe3533ea11ad6e224ffcb89eb5d01bbea589e9158780fa11f10" + +# Build instructions +default_build_make=true + +do_patch() +{ + patch -ui $portdir/binutils.patch -p 1 -d $srcdir/.. +} + +do_configure() +{ + $srcdir/configure --host=$LUNA_ARCH-luna --disable-nls --disable-werror --enable-warn-rwx-segments=no --prefix=/usr --enable-gold=no --enable-ld=yes --enable-gprofng=no +} + +do_install() +{ + make install + + cd $installdir/usr/bin + $LUNA_ARCH-luna-strip size objdump ar strings ranlib objcopy addr2line readelf elfedit nm strip c++filt as gprof ld.bfd ld +} diff --git a/ports/binutils/binutils.patch b/ports/binutils/binutils.patch new file mode 100644 index 00000000..d262e7f8 --- /dev/null +++ b/ports/binutils/binutils.patch @@ -0,0 +1,117 @@ +diff --color -rN -u binutils-2.39/bfd/config.bfd build/binutils-2.39/bfd/config.bfd +--- a/binutils-2.39/bfd/config.bfd 2022-01-22 13:14:07.000000000 +0100 ++++ b/binutils-2.39/bfd/config.bfd 2022-10-01 22:12:16.914033792 +0200 +@@ -651,6 +651,11 @@ + targ_selvecs="iamcu_elf32_vec i386_pei_vec" + targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pe_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" + ;; ++ i[3-7]86-*-luna*) ++ targ_defvec=i386_elf32_vec ++ targ_selvecs= ++ targ64_selvecs=x86_64_elf64_vec ++ ;; + i[3-7]86-*-redox*) + targ_defvec=i386_elf32_vec + targ_selvecs= +@@ -706,6 +711,11 @@ + targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" + want64=true + ;; ++ x86_64-*-luna*) ++ targ_defvec=x86_64_elf64_vec ++ targ_selvecs=i386_elf32_vec ++ want64=true ++ ;; + x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) + targ_defvec=x86_64_pe_vec + targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_big_vec x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" +diff --color -rN -u binutils-2.39/gas/configure.tgt build/binutils-2.39/gas/configure.tgt +--- a/binutils-2.39/gas/configure.tgt 2022-01-22 13:14:08.000000000 +0100 ++++ b/binutils-2.39/gas/configure.tgt 2022-10-01 22:12.39.115093972 +0200 +@@ -238,6 +238,7 @@ + x86_64*-linux-gnux32) arch=x86_64:32 ;; + esac ;; + i386-*-lynxos*) fmt=elf em=lynx ;; ++ i386-*-luna*) fmt=elf em=gnu ;; + i386-*-redox*) fmt=elf ;; + i386-*-solaris*) fmt=elf em=solaris ;; + i386-*-freebsd* \ +diff --color -rN -u binutils-2.39/ld/configure.tgt build/binutils-2.39/ld/configure.tgt +--- a/binutils-2.39/ld/configure.tgt 2022-01-22 15:19:36.000000000 +0100 ++++ b/binutils-2.39/ld/configure.tgt 2022-10-01 22:15:04.853571062 +0200 +@@ -329,6 +329,11 @@ + targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om" + targ64_extra_libpath="elf_x86_64 elf32_x86_64" + ;; ++i[3-7]86-*-luna*) ++ targ_emul=elf_i386_luna ++ targ_extra_emuls=elf_i386 ++ targ64_extra_emuls="elf_x86_64_luna elf_x86_64" ++ ;; + i[3-7]86-*-redox*) targ_emul=elf_i386 + targ_extra_emuls=elf_x86_64 + ;; +@@ -967,6 +972,10 @@ + targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om" + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` + ;; ++x86_64-*-luna*) ++ targ_emul=elf_x86_64_luna ++ targ_extra_emuls="elf_i386_luna elf_x86_64 elf_i386" ++ ;; + x86_64-*-redox*) targ_emul=elf_x86_64 + targ_extra_emuls=elf_i386 + ;; +diff --color -rN -u binutils-2.39/ld/emulparams/elf_i386_luna.sh build/binutils-2.39/ld/emulparams/elf_i386_luna.sh +--- a/dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ b/binutils-2.39/ld/emulparams/elf_i386_luna.sh 2022-10-01 21:52:12.394068335 +0200 +@@ -0,0 +1,3 @@ ++source_sh ${srcdir}/emulparams/elf_i386.sh ++TEXT_START_ADDR=0x08000000 ++MAXPAGESIZE=0x1000 +\ No newline at end of file +diff --color -rN -u binutils-2.39/ld/emulparams/elf_x86_64_luna.sh build/binutils-2.39/ld/emulparams/elf_x86_64_luna.sh +--- a/dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ b/binutils-2.39/ld/emulparams/elf_x86_64_luna.sh 2022-10-01 21:53:00.411200592 +0200 +@@ -0,0 +1,2 @@ ++source_sh ${srcdir}/emulparams/elf_x86_64.sh ++MAXPAGESIZE=0x1000 +\ No newline at end of file +diff --color -rN -u binutils-2.39/ld/Makefile.am build/binutils-2.39/ld/Makefile.am +--- a/binutils-2.39/ld/Makefile.am 2022-01-22 13:14:09.000000000 +0100 ++++ b/binutils-2.39/ld/Makefile.am 2022-10-01 22:18:02.660263017 +0200 +@@ -278,6 +278,7 @@ + eelf32xtensa.c \ + eelf32z80.c \ + eelf_i386.c \ ++ eelf_i386_luna.c \ + eelf_i386_be.c \ + eelf_i386_fbsd.c \ + eelf_i386_haiku.c \ +@@ -464,6 +465,7 @@ + eelf_x86_64_fbsd.c \ + eelf_x86_64_haiku.c \ + eelf_x86_64_sol2.c \ ++ eelf_x86_64_luna.c \ + ehppa64linux.c \ + ei386pep.c \ + emmo.c +diff --color -rN -u binutils-2.39/ld/Makefile.in build/binutils-2.39/ld/Makefile.in +--- a/binutils-2.39/ld/Makefile.in 2022-02-09 12:49:03.000000000 +0100 ++++ b/binutils-2.39/ld/Makefile.in 2022-10-01 22:17:46.740196925 +0200 +@@ -769,6 +769,7 @@ + eelf32xtensa.c \ + eelf32z80.c \ + eelf_i386.c \ ++ eelf_i386_luna.c \ + eelf_i386_be.c \ + eelf_i386_fbsd.c \ + eelf_i386_haiku.c \ +@@ -954,6 +955,7 @@ + eelf_x86_64_fbsd.c \ + eelf_x86_64_haiku.c \ + eelf_x86_64_sol2.c \ ++ eelf_x86_64_luna.c \ + ehppa64linux.c \ + ei386pep.c \ + emmo.c