apio
8748364b7e
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.
118 lines
4.3 KiB
Diff
118 lines
4.3 KiB
Diff
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
|