ports: Add a binutils port =D
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
I can't believe the fact that there is a working gas and ld on Luna. At least, for a hello world program anyway :) objdump seems to have some problems with stack size in some cases, but apart from that, no crashes. And that can easily be solved with either more stack preallocation or stack resizing in the kernel on page faults.
This commit is contained in:
parent
49662b6069
commit
8748364b7e
@ -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
|
||||
|
||||
|
30
ports/binutils/PACKAGE
Normal file
30
ports/binutils/PACKAGE
Normal file
@ -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
|
||||
}
|
117
ports/binutils/binutils.patch
Normal file
117
ports/binutils/binutils.patch
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user