⛏️ index : buildtools.git

author François Revol <revol@free.fr> 2008-06-27 23:04:41.0 +00:00:00
committer François Revol <revol@free.fr> 2008-06-27 23:04:41.0 +00:00:00
commit
752ce742c6d0914c6bca258c54f5474da5b2767f [patch]
tree
fa372846180ef1a24be339140e89086f8ae134b7
parent
efa13a3a74f1d17653f9a49129c43a99fde64835
download
752ce742c6d0914c6bca258c54f5474da5b2767f.tar.gz

This should get binutils working for ARM for the adventuruous ones.

git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@26148 a95241bf-73f2-0310-859d-f6bbb57e9c96

Diff

 binutils/bfd/config.bfd                |  2 +-
 binutils/gas/configure.tgt             |  1 +
 binutils/ld/configure.tgt              |  7 ++++---
 binutils/ld/emulparams/armelf_haiku.sh | 24 ++++++++++++++++++++++++
 4 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/binutils/bfd/config.bfd b/binutils/bfd/config.bfd
index bd1a4d4..61ef08b 100644
--- a/binutils/bfd/config.bfd
+++ b/binutils/bfd/config.bfd
@@ -252,7 +252,7 @@
    ;;
  arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
  arm*-*-eabi* )
  arm*-*-eabi* | arm*-*-haiku*)
    targ_defvec=bfd_elf32_littlearm_vec
    targ_selvecs=bfd_elf32_bigarm_vec
    ;;
diff --git a/binutils/gas/configure.tgt b/binutils/gas/configure.tgt
index 2585839..de91285 100644
--- a/binutils/gas/configure.tgt
+++ b/binutils/gas/configure.tgt
@@ -117,6 +117,7 @@
  arm-wince-pe | arm-*-wince)		fmt=coff em=wince-pe ;;
  arm-*-pe | thumb-*-pe)		fmt=coff em=pe ;;
  arm-*-riscix*)			fmt=aout em=riscix ;;
  arm-*-haiku*)				fmt=elf  em=haiku ;;

  avr-*-*)				fmt=elf bfd_gas=yes ;;
  bfin-*-*)				fmt=elf bfd_gas=yes ;;
diff --git a/binutils/ld/configure.tgt b/binutils/ld/configure.tgt
index b114b70..a8dd18f 100644
--- a/binutils/ld/configure.tgt
+++ b/binutils/ld/configure.tgt
@@ -67,6 +67,7 @@
arm*-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm-*-vxworks)		targ_emul=armelf_vxworks ;;
arm*-*-conix*)		targ_emul=armelf ;;
arm*-*-haiku*)		targ_emul=armelf_haiku; targ_extra_emuls=armelf ;;
thumb-*-linux-* | thumb-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
strongarm-*-coff)	targ_emul=armcoff ;;
strongarm-*-elf)	targ_emul=armelf ;;
@@ -335,10 +336,10 @@
			targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;;
m68*-*-psos*)		targ_emul=m68kpsos ;;
m68*-*-rtemscoff*)	targ_emul=m68kcoff ;;
m68*-*-rtems*)		targ_emul=m68kelf
			;;
m68*-*-rtems*)		targ_emul=m68kelf ;;
m68*-*-haiku*)		targ_emul=m68kelf
			targ_extra_emuls=m68kcoff ;;
			targ_extra_emuls=m68kcoff 
			;;
m8*-*-*)		targ_emul=m88kbcs
			;;
maxq-*-coff)            targ_emul=maxqcoff
diff --git a/binutils/ld/emulparams/armelf_haiku.sh b/binutils/ld/emulparams/armelf_haiku.sh
new file mode 100644
index 0000000..39b7f65 100644
--- /dev/null
+++ b/binutils/ld/emulparams/armelf_haiku.sh
@@ -1,0 +1,24 @@
ARCH=arm
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-littlearm"
BIG_OUTPUT_FORMAT="elf32-bigarm"
LITTLE_OUTPUT_FORMAT="elf32-littlearm"
MAXPAGESIZE=0x8000
COMMONPAGESIZE=0x1000
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=armelf
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes

DATA_START_SYMBOLS='__data_start = . ;';
OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)'
OTHER_BSS_SYMBOLS='__bss_start__ = .;'
OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
OTHER_END_SYMBOLS='__end__ = . ;'
OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'

TEXT_START_ADDR=0x00008000
TARGET2_TYPE=got-rel

# ARM does not support .s* sections.
NO_SMALL_DATA=yes