Applying Haiku support.

git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29025 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2009-01-25 21:45:27 +00:00
parent 385576a748
commit da7d5efeb4
8 changed files with 68 additions and 8 deletions

View File

@ -271,7 +271,7 @@ case "${targ}" in
;;
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 @@ case "${targ}" in
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 @@ case "${targ}" in
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
@ -1120,6 +1126,11 @@ case "${targ}" in
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
;;

View File

@ -8054,7 +8054,7 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd,
#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

View File

@ -319,7 +319,8 @@ const char extra_symbol_chars[] = "*%-(["
&& !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. */

View File

@ -123,6 +123,7 @@ case ${generic_target} in
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 @@ case ${generic_target} in
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 @@ case ${generic_target} in
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 @@ case ${generic_target} in
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 ;;

View File

@ -121,6 +121,7 @@ ALL_EMULATIONS = \
earmelf.o \
earmelfb.o \
earmelf_fbsd.o \
earmelf_haiku.o \
earmelf_linux.o \
earmelf_linux_eabi.o \
earmelfb_linux.o \
@ -208,7 +209,9 @@ ALL_EMULATIONS = \
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 @@ earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \
$(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 @@ eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
$(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}

View File

@ -372,6 +372,7 @@ ALL_EMULATIONS = \
earmelf.o \
earmelfb.o \
earmelf_fbsd.o \
earmelf_haiku.o \
earmelf_linux.o \
earmelf_linux_eabi.o \
earmelfb_linux.o \
@ -459,7 +460,9 @@ ALL_EMULATIONS = \
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 @@ earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \
$(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 @@ eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
$(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}

View File

@ -93,6 +93,7 @@ arm*-*-uclinux*) targ_emul=armelf_linux
;;
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 @@ i[3-7]86-*-interix*) targ_emul=i386pe_posix;
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 @@ m68*-*-netbsdaout* | m68*-*-netbsd*)
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 @@ powerpcle-*-cygwin*) targ_emul=ppcpe ;;
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 ;;

15
binutils/libtool.m4 vendored
View File

@ -2211,6 +2211,15 @@ gnu*)
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.
@ -2891,6 +2900,10 @@ gnu*)
lt_cv_deplibs_check_method=pass_all
;;
haiku*)
lt_cv_deplibs_check_method=pass_all
;;
hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file
case $host_cpu in
@ -3110,7 +3123,7 @@ AC_DEFUN([LT_LIB_M],
[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*)