Compare commits

...

14 Commits

Author SHA1 Message Date
Jonas Sundström
257de42932 Tweaks. Removing superflous config. Cleaner and closer to defaults, hopefully.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-02 18:20:14 +00:00
Jonas Sundström
fe3d3406e8 The define __BEOS__ is not relevant to Haiku.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-01 15:23:48 +00:00
Jonas Sundström
4df3ecf7d0 Adding mipsel-unknown-haiku. Work in progress. Correctness uncertain. Especially gcc/gcc/config/mips/haiku.h. Inspired by the other Haiku targets x86/ppc/arm.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-01 14:42:51 +00:00
Ingo Weinhold
d5dc8c3804 Removed yasm from the buildtools module. If we don't need Haiku-specific
modifications, there's no point in it being in the repository at all. Besides,
version 0.8.0 is out already.


git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-13 10:54:38 +00:00
David McPaul
294f58609a add newline to end of file
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-11 14:00:39 +00:00
David McPaul
9da4e0a3c5 scripts to build yasm on beos and haiku
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-11 13:56:16 +00:00
David McPaul
9c12fb3048 Add yasm 0.7.2 to build tools
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-09 11:16:39 +00:00
Michael Lotz
5d242e9e05 Add the -no-undefined flag only for non-shared objects as before, i.e. shared
libraries are allowed to use undefined symbols.


git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-13 15:42:32 +00:00
Michael Lotz
7219b3c58f * Change gnu include path to 3rdparty and also add /boot/common/include to the
include list as in r28324. I really thought I updated this based on this patch.
* Added /boot/home/config/include to the include list as well, not sure why this
  wasn't present before. If there's a specific reason against it please tell.


git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-13 15:37:22 +00:00
Michael Lotz
beaf9299fc * Amend link and startfile specs for the -shared option.
* Remove the part of the link specs that automatically names the output after
  the last source file. Therefore we'll produce a.out for now. Sadly the %b
  variable does also evaluate to libraries in GCC4 which makes it unusable for
  this case. A "gcc file.cpp -lstdc++" would for example produce an output
  named libstdc++...


git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-23 20:51:17 +00:00
Michael Lotz
21658f885f Add missing default CPU setting for m68k.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-06 23:46:58 +00:00
Michael Lotz
0e5d48202a Make the arm target valid as well.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-06 23:10:34 +00:00
Michael Lotz
2a214e38d2 Add missing support for ppc and m68k targets.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-06 22:05:19 +00:00
Michael Lotz
db596da671 Remove the extra /posix from the NATIVE_SYSTEM_HEADER_DIR since we override the limits test adding it again. Should fix native GCC4 compilation.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 21:23:05 +00:00
12 changed files with 105 additions and 6 deletions

View File

@@ -883,6 +883,10 @@ case "${targ}" in
targ_defvec=bfd_elf32_tradlittlemips_vec
targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_little_vec ecoff_big_vec"
;;
mips*el-*-haiku*)
targ_defvec=bfd_elf32_littlemips_vec
targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
;;
mips*-*-netbsd*)
targ_defvec=bfd_elf32_tradbigmips_vec
targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"

View File

@@ -291,6 +291,7 @@ case ${generic_target} in
mips-*-elf* | mips-*-rtems*) fmt=elf ;;
mips-*-netbsd*) fmt=elf em=tmips ;;
mips-*-openbsd*) fmt=elf em=tmips ;;
mips*-*-haiku*) fmt=elf endian=little em=haiku ;;
mmix-*-*) fmt=elf ;;

View File

@@ -212,6 +212,7 @@ ALL_EMULATIONS = \
eelf_i386_haiku.o \
eelf_i386_ldso.o \
eelf_ppc_haiku.o \
eelf_mipsel_haiku.o \
eelf_i386_vxworks.o \
eelf_s390.o \
egld960.o \
@@ -1039,6 +1040,9 @@ eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
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_mipsel_haiku.c: $(srcdir)/emulparams/elf_mipsel_haiku.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_mipsel_haiku "$(tdir_elf_mipsel_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

@@ -463,6 +463,7 @@ ALL_EMULATIONS = \
eelf_i386_haiku.o \
eelf_i386_ldso.o \
eelf_ppc_haiku.o \
eelf_mipsel_haiku.o \
eelf_i386_vxworks.o \
eelf_s390.o \
egld960.o \
@@ -1866,6 +1867,9 @@ eelf_i386_haiku.c: $(srcdir)/emulparams/elf_i386_haiku.sh \
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_mipsel_haiku.c: $(srcdir)/emulparams/elf_mipsel_haiku.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_mipsel_haiku "$(tdir_elf_mipsel_haiku)"
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)"

View File

@@ -369,6 +369,9 @@ mips*-*-ecoff*) targ_emul=mipsidt ;;
mips*el-*-netbsd*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
;;
mips*el-*-haiku*) targ_emul=elf_mipsel_haiku
targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
;;
mips*-*-netbsd*) targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
;;

View File

@@ -0,0 +1,2 @@
. ${srcdir}/emulparams/elf32lmip.sh

View File

@@ -1645,6 +1645,8 @@ m68k-*-rtems*)
extra_parts="crtbegin.o crtend.o"
;;
m68k-*-haiku*)
default_m68k_cpu=68020
default_cf_cpu=5206
tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-haiku" #??
tm_file="${tm_file} dbxelf.h elfos.h haiku.h m68k/haiku.h"
tm_defines="MOTOROLA USE_GAS"
@@ -1800,6 +1802,11 @@ mips-*-elf* | mipsel-*-elf*)
tmake_file="mips/t-elf mips/t-libgcc-mips16"
use_fixproto=yes
;;
mipsel-*-haiku*)
tmake_file='mips/t-elf t-haiku'
tm_file="elfos.h ${tm_file} haiku.h mips/haiku.h"
extra_parts='crtbegin.o crtend.o'
;;
mips64-*-elf* | mips64el-*-elf*)
tm_file="elfos.h ${tm_file} mips/elf.h"
tmake_file="mips/t-elf mips/t-libgcc-mips16"

View File

@@ -62,7 +62,7 @@ Boston, MA 02111-1307, USA. */
it was i386-mcount.o, but that doesn't exist in gcc 2.95.3 either. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crti.o%s crtbegin.o%s %{!nostart:start_dyn.o%s} init_term_dyn.o%s %{p:mcount.o%s}"
#define STARTFILE_SPEC "crti.o%s crtbegin.o%s %{!shared:%{!nostart:start_dyn.o%s}} init_term_dyn.o%s %{p:mcount.o%s}"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend.o%s crtn.o%s"
@@ -83,6 +83,8 @@ Boston, MA 02111-1307, USA. */
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
{ FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \
{ "/boot/home/config/include", 0, 0, 0, 0, 0 }, \
{ "/boot/common/include", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/app", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/device", 0, 0, 0, 0, 0 }, \
@@ -106,7 +108,7 @@ Boston, MA 02111-1307, USA. */
{ "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/gnu", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/3rdparty", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/cpp", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/bsd", 0, 0, 0, 0, 0 }, \
{ "/boot/develop/headers/posix", 0, 0, 0, 0, 0 }, \
@@ -146,7 +148,7 @@ Boston, MA 02111-1307, USA. */
{ CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/gnu", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/3rdparty", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/cpp", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/bsd", 0, 0, 0, 1, 0 }, \
{ CROSS_INCLUDE_DIR "/posix", 0, 0, 0, 1, 0 }, \

View File

@@ -69,7 +69,7 @@ Boston, MA 02111-1307, USA. */
/* If ELF is the default format, we should not use /lib/elf. */
#undef LINK_SPEC
#define LINK_SPEC "%{!o*:-o %b} -m elf_i386_haiku -shared -no-undefined -Bsymbolic %{nostart:-e 0}"
#define LINK_SPEC "-m elf_i386_haiku -shared -Bsymbolic %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named

View File

@@ -0,0 +1,64 @@
/* Definitions for MIPS running Haiku
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (MIPSEL Haiku/ELF)");
#undef SIZE_TYPE
#define SIZE_TYPE "long unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "long int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "short unsigned int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 16
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__HAIKU__"); \
builtin_define ("__MIPS__"); \
builtin_define ("__MIPSEL__"); \
builtin_define ("_MIPSEL_"); \
builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
builtin_assert ("system=haiku"); \
if (flag_pic) \
{ \
builtin_define ("__PIC__"); \
builtin_define ("__pic__"); \
} \
/* Haiku apparently doesn't support merging of symbols across shared \
object boundaries. Hence we need to explicitly specify that \
type_infos are not merged, so that they get compared by name \
instead of by pointer. */ \
builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \
builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \
} \
while (0)
#undef LINK_SPEC
#define LINK_SPEC "%{!o*:-o %b} -m elf_mipsel_haiku -shared -Bsymbolic %{nostart:-e 0}"

View File

@@ -1,4 +1,4 @@
# There are system headers elsewhere, but these are the ones that
# we are most likely to want to apply any fixes to.
NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers/posix
NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers
LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/posix/limits.h ]

View File

@@ -222,6 +222,8 @@ arm*-*-netbsdelf*)
;;
arm*-*-netbsd*)
;;
arm-*-haiku*)
;;
arm*-*-linux*) # ARM GNU/Linux with ELF
;;
arm*-*-uclinux*) # ARM ucLinux
@@ -313,7 +315,7 @@ i[34567]86-*-freebsd*)
;;
x86_64-*-freebsd*)
;;
i[34567]86-*-haikuelf* | i[34567]86-*-haiku*)
i[34567]86-*-haiku*)
;;
i[34567]86-*-netbsdelf*)
;;
@@ -417,6 +419,8 @@ m68k-*-aout*)
;;
m68k-*-coff*)
;;
m68k-*-haiku*)
;;
m68020-*-elf* | m68k-*-elf*)
;;
m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
@@ -445,6 +449,8 @@ mips*-*-linux*) # Linux MIPS, either endian.
;;
mips*-*-openbsd*)
;;
mips*-*-haiku*)
;;
mipsisa32-*-elf* | mipsisa32el-*-elf*)
;;
mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*)
@@ -495,6 +501,8 @@ powerpc64-*-darwin*)
;;
powerpc*-*-freebsd*)
;;
powerpc-*-haiku*)
;;
powerpc-*-netbsd*)
;;
powerpc-*-chorusos*)