⛏️ index : buildtools.git

author Michael Lotz <mmlr@mlotz.ch> 2009-01-25 21:45:27.0 +00:00:00
committer Michael Lotz <mmlr@mlotz.ch> 2009-01-25 21:45:27.0 +00:00:00
commit
da7d5efeb4e2aa981ab3c790f6e26164589a60e8 [patch]
tree
a60dfbd1eb7ccb3f76e8efdde55f085e6171f6d1
parent
385576a748866f4a094b9e8618abfe8ebade3bd1
download
da7d5efeb4e2aa981ab3c790f6e26164589a60e8.tar.gz

Applying Haiku support.

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

Diff

 binutils/libtool.m4           | 15 +++++++++++++++
 binutils/bfd/config.bfd       | 15 +++++++++++++++
 binutils/bfd/elf32-ppc.c      |  2 +-
 binutils/gas/configure.tgt    |  8 ++++++--
 binutils/ld/Makefile.am       | 13 +++++++++++++
 binutils/ld/Makefile.in       | 13 +++++++++++++
 binutils/ld/configure.tgt     |  7 ++++++-
 binutils/gas/config/tc-i386.c |  3 ++-
 8 files changed, 68 insertions(+), 8 deletions(-)

diff --git a/binutils/libtool.m4 b/binutils/libtool.m4
index 26a039a..e47754a 100644
--- a/binutils/libtool.m4
+++ b/binutils/libtool.m4
@@ -2211,6 +2211,15 @@
  hardcode_into_libs=yes
  ;;

haiku*)
  library_names_spec='${libname}.so'
  dynamic_linker="$host_os ld.so"
  shlibpath_var=LIBRARY_PATH
  lt_cv_dlopen="load_add_on"
  lt_cv_dlopen_libs=
  lt_cv_dlopen_self=yes
  ;;

hpux9* | hpux10* | hpux11*)
  # Give a soname corresponding to the major version so that dld.sl refuses to
  # link against other versions.
@@ -2888,6 +2897,10 @@
  ;;

gnu*)
  lt_cv_deplibs_check_method=pass_all
  ;;

haiku*)
  lt_cv_deplibs_check_method=pass_all
  ;;

@@ -3110,7 +3123,7 @@
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
LIBM=
case $host in
*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin* | *-*-haiku*)
  # These system don't have libm, or don't need it
  ;;
*-ncr-sysv4.3*)
diff --git a/binutils/bfd/config.bfd b/binutils/bfd/config.bfd
index 9309502..ea88e37 100644
--- a/binutils/bfd/config.bfd
+++ b/binutils/bfd/config.bfd
@@ -271,7 +271,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
    ;;
@@ -652,6 +652,9 @@
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs="i386pe_vec i386pei_vec"
    ;;
  i[3-7]86-*-haiku*)
    targ_defvec=bfd_elf32_i386_vec
    ;;
  i[3-7]86-*-interix*)
    targ_defvec=i386pei_vec
    targ_selvecs="i386pe_vec"
@@ -833,7 +836,10 @@
    targ_selvecs=ieee_vec
    targ_underscore=yes
    ;;

  m68*-*-haiku*)
    targ_defvec=bfd_elf32_m68k_vec
    targ_selvecs="m68kcoff_vec ieee_vec"
    ;;
  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
    targ_defvec=bfd_elf32_m88k_vec
    targ_selvecs=m88kbcs_vec
@@ -1119,6 +1125,11 @@
    targ_defvec=mach_o_be_vec
    targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
    targ_archs="bfd_powerpc_arch bfd_rs6000_arch bfd_i386_arch"
    ;;
  powerpc-*-haiku*)
    targ_defvec=bfd_elf32_powerpc_vec
    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec pef_vec pef_xlib_vec pmac_xcoff_vec ppcboot_vec"
    targ_cflags=-D__HAIKU_TARGET__
    ;;
  powerpc-*-macos*)
    targ_defvec=pmac_xcoff_vec
diff --git a/binutils/bfd/elf32-ppc.c b/binutils/bfd/elf32-ppc.c
index 1d9cabd..2ce6556 100644
--- a/binutils/bfd/elf32-ppc.c
+++ b/binutils/bfd/elf32-ppc.c
@@ -8054,7 +8054,7 @@
#define TARGET_BIG_NAME		"elf32-powerpc"
#define ELF_ARCH		bfd_arch_powerpc
#define ELF_MACHINE_CODE	EM_PPC
#ifdef __QNXTARGET__
#if defined(__QNXTARGET__) || defined(__HAIKU_TARGET__)

#define ELF_MAXPAGESIZE		0x1000
#else
#define ELF_MAXPAGESIZE		0x10000
diff --git a/binutils/gas/configure.tgt b/binutils/gas/configure.tgt
index 76b10be..483ff91 100644
--- a/binutils/gas/configure.tgt
+++ b/binutils/gas/configure.tgt
@@ -123,6 +123,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 ;;

@@ -174,9 +175,10 @@
  i386-ibm-aix*)			fmt=coff em=i386aix ;;
  i386-sequent-bsd*)			fmt=aout em=dynix ;;
  i386-*-beospe*)			fmt=coff em=pe ;;
  i386-*-beos*)				fmt=elf ;;
  i386-*-beos*)				fmt=elf em=beos ;;
  i386-*-coff)				fmt=coff ;;
  i386-*-elf)				fmt=elf ;;
  i386-*-haiku*)			fmt=elf em=haiku ;;
  i386-*-kaos*)				fmt=elf ;;
  i386-*-bsd*)				fmt=aout em=386bsd ;;
  i386-*-netbsd0.8)			fmt=aout em=386bsd ;;
@@ -262,6 +264,7 @@
  m68k-*-netbsd*)			fmt=aout em=nbsd bfd_gas=yes ;;
  m68k-*-openbsd*)			fmt=aout em=nbsd bfd_gas=yes ;;
  m68k-*-psos*)				fmt=elf em=psos;;
  m68k-*-haiku*)			fmt=elf em=haiku ;;

  maxq-*-coff)      			fmt=coff bfd_gas=yes ;;

@@ -318,9 +321,10 @@
  ppc-*-aix5.[01])			fmt=coff em=aix5 ;;
  ppc-*-aix5.*)				fmt=coff em=aix5 ;;
  ppc-*-aix*)				fmt=coff ;;
  ppc-*-beos*)				fmt=coff ;;
  ppc-*-beos*)				fmt=coff em=beos ;;
  ppc-*-*n*bsd* | ppc-*-elf*)		fmt=elf ;;
  ppc-*-eabi* | ppc-*-sysv4*)		fmt=elf ;;
  ppc-*-haiku*)				fmt=elf em=haiku ;;
  ppc-*-linux-*)			fmt=elf em=linux ;;
  ppc-*-solaris*)			fmt=elf em=solaris ;;
  ppc-*-rtems*)				fmt=elf ;;
diff --git a/binutils/ld/Makefile.am b/binutils/ld/Makefile.am
index 0093c88..e5f90b0 100644
--- a/binutils/ld/Makefile.am
+++ b/binutils/ld/Makefile.am
@@ -121,6 +121,7 @@
	earmelf.o \
	earmelfb.o \
	earmelf_fbsd.o \
	earmelf_haiku.o \
	earmelf_linux.o \
	earmelf_linux_eabi.o \
	earmelfb_linux.o \
@@ -208,7 +209,9 @@
	eelf_i386_be.o \
	eelf_i386_chaos.o \
	eelf_i386_fbsd.o \
	eelf_i386_haiku.o \
	eelf_i386_ldso.o \
	eelf_ppc_haiku.o \
	eelf_i386_vxworks.o \
	eelf_s390.o \
	egld960.o \
@@ -539,6 +542,10 @@
  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)"
earmelf_haiku.c: $(srcdir)/emulparams/armelf_haiku.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} armelf_haiku "$(tdir_armelf_haiku)"
earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -1023,9 +1030,15 @@
  $(srcdir)/emulparams/elf_i386.sh \
  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)"
eelf_i386_haiku.c: $(srcdir)/emulparams/elf_i386_haiku.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_i386_haiku "$(tdir_elf_i386_haiku)"
eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)"
eelf_ppc_haiku.c: $(srcdir)/emulparams/elf_ppc_haiku.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_ppc_haiku "$(tdir_elf_ppc_haiku)"
eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \
  $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \
  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
diff --git a/binutils/ld/Makefile.in b/binutils/ld/Makefile.in
index 309e8e6..0c94dde 100644
--- a/binutils/ld/Makefile.in
+++ b/binutils/ld/Makefile.in
@@ -372,6 +372,7 @@
	earmelf.o \
	earmelfb.o \
	earmelf_fbsd.o \
	earmelf_haiku.o \
	earmelf_linux.o \
	earmelf_linux_eabi.o \
	earmelfb_linux.o \
@@ -459,7 +460,9 @@
	eelf_i386_be.o \
	eelf_i386_chaos.o \
	eelf_i386_fbsd.o \
	eelf_i386_haiku.o \
	eelf_i386_ldso.o \
	eelf_ppc_haiku.o \
	eelf_i386_vxworks.o \
	eelf_s390.o \
	egld960.o \
@@ -1369,6 +1372,10 @@
  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)"
earmelf_haiku.c: $(srcdir)/emulparams/armelf_haiku.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} armelf_haiku "$(tdir_armelf_haiku)"
earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -1853,9 +1860,15 @@
  $(srcdir)/emulparams/elf_i386.sh \
  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)"
eelf_i386_haiku.c: $(srcdir)/emulparams/elf_i386_haiku.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_i386_haiku "$(tdir_elf_i386_haiku)"
eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)"
eelf_ppc_haiku.c: $(srcdir)/emulparams/elf_ppc_haiku.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
	${GENSCRIPTS} elf_ppc_haiku "$(tdir_elf_ppc_haiku)"
eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \
  $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \
  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
diff --git a/binutils/ld/configure.tgt b/binutils/ld/configure.tgt
index 3f7e79b..baf99c9 100644
--- a/binutils/ld/configure.tgt
+++ b/binutils/ld/configure.tgt
@@ -93,6 +93,7 @@
			;;
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 ;;
@@ -274,6 +275,7 @@
 			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3-7]86-*-beospe*)	targ_emul=i386beos ;;
i[3-7]86-*-beos*)	targ_emul=elf_i386_be ;;
i[3-7]86-*-haiku*)	targ_emul=elf_i386_haiku ;;
i[3-7]86-*-vxworks*)	targ_emul=elf_i386_vxworks ;;
i[3-7]86-*-chaos)	targ_emul=elf_i386_chaos
			;;
@@ -340,7 +342,9 @@
			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
			;;
m8*-*-*)		targ_emul=m88kbcs
			;;
@@ -485,6 +489,7 @@
powerpc-*-aix5*)	targ_emul=aix5ppc ;;
powerpc-*-aix*)		targ_emul=aixppc ;;
powerpc-*-beos*)	targ_emul=aixppc ;;
powerpc-*-haiku*)	targ_emul=elf_ppc_haiku ;;
powerpc-*-windiss*)	targ_emul=elf32ppcwindiss ;;
powerpc-*-lynxos*)	targ_emul=ppclynx ;;
rs6000-*-aix5*)		targ_emul=aix5rs6 ;;
diff --git a/binutils/gas/config/tc-i386.c b/binutils/gas/config/tc-i386.c
index df76ae9..4525b7b 100644
--- a/binutils/gas/config/tc-i386.c
+++ b/binutils/gas/config/tc-i386.c
@@ -319,7 +319,8 @@
	 && !defined (TE_LINUX)				\
 	 && !defined (TE_NETWARE)			\
	 && !defined (TE_FreeBSD)			\
	 && !defined (TE_NetBSD)))
	 && !defined (TE_NetBSD)			\
	 && !defined (TE_BeOS)))
/* This array holds the chars that always start a comment.  If the
   pre-processor is disabled, these aren't very useful.  The option
   --divide will remove '/' from this list.  */