Works around "relocation truncated to fit: R_PPC_GOT16 against symbol" issue
mentioned in #10240. PIC uses a larger GOT which doesn't overflow, unlike pic.
* Adjust the libgcc spec to actually link against libgcc explicitly
(it is no longer included in libroot.so on anything except x86_gcc2).
* Apply --as-needed when linking against libgcc_s.so
* Drop search paths that no longer exist (/boot/common/...).
* The glue code files crtbegin.o and crtend.o don't cleanup globals
properly, only the variants with the S suffix do. As executables are
shared on Haiku, we use crtbeginS.o and crtendS.o for those, too.
This fixes crashes on shutdown of Haiku servers that load add-ons (e.g.
Print Server and Media Add-On Server).
* The configure script for libstdc++ contained a couple of duplicate
'haiku*' case entries, where the first would shadow the second.
* Correct several incorrect libtool definitions and paths.
* Gcc will now build libgcc.a, libgcc_eh.a and libgcc_s.so.
* Activate thread support for libgcc.
* Let libgcc use ELF dwarf2 unwinding on Haiku.
* Activate ELF symbol versioning on Haiku.
* Activate use of __cxa_atexit
* Drop fragments of Haiku support for mipsel
* copied the generic config and added os_defines to enable time support
without link tests when cross compiling.
* os_defines definitions are disabled for _KERNEL_MODE and _LOADER_MODE.
* Drop /boot/common header paths
I don't think pre-pm haiku will build anyway
without using an older buildtools.
* Add secondary arch os header directories.
Anything secondary arch that provides os
headers will break without the proper search
paths in gcc.
* Fixes secondary packages that depend on the
OpenGL kit
Due to the use of STARTFILE_PREFIX_SPEC the path containing the
libraries gcc provides (libstdc++ and friends) was missing. So
revert to the previously used STANDARD_STARTFILE_PREFIX_{1,2},
MD_STARTFILE_PREFIX method.
* Rename to --with-hybrid-secondary and require as parameter the name of
the secondary packaging architecture. The value is used for
constructing the respective default header and library search paths.
* Add /boot/system/develop/headers/<arch> to header search paths.
* The build host's math library is needed, not the host's. Makes a
difference when build host != host, e.g. when cross-compiling a native
Haiku compiler on Linux.
* Rename the variable math_library -> build_math_library for clarity.
This is already done on x86 using the --enable-frame-pointer option
to GCC's configure script, but that option only works for 32-bit x86.
Added an option to haiku64.h that forces it off by default for 64-bit.
* add new configure-option '--enable-hybrid-secondary'
* pick alternative include- and library-paths, if in hybrid-secondary
mode
* switch to 'STARTFILE_PREFIX_SPEC', as that allows more obvious
specification of the search order
* unify INCLUDE_DEFAULTS for native and cross compiler, as we now
configure a sysroot and gcc will prepend the sysroot folder when
needed
* update flags in INCLUDE_DEFAULTS according to "documentation" in
cppdefaults.h
* configure.ac (mpfr-dir): When using in-tree MPFR sources
allow for the fact that from release v3.1.0 of MPFR the source
files were moved into a src sub-directory.
* configure: Regenerate.
* cloog now uses CLOOG_LANGUAGE_C instead of LANGUAGE_C.
* graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
(set_cloog_options): Use it.
Turned out that our ARM gcc4 build used short-enum's, which made
our build fail (specifically, src/kits/tracker/ViewState.cpp:122).
Thanks to Landon Fuller and Oliver Tappe for helping me figure
the fix out!
* O_BINARY and O_TEXT were removed from Haiku way back in hrev38962
* This patch removes the fix that used to unset those flags
* Now gcc/intl/loadmsgcat.c is back to the GCC 4.6.3 stock file
Thanks diger for noticing the previously needed fix was still in place unintentionally
* -lssp_nonshared being passed at link time was resulting in multiple definition errors
* Apps such as Perl and CUPS would fail to build due to this
* This should alleviate the problem when -fstack-protector or -fstack-protector-all are used
Thanks to diger for letting me know of this issue and making me aware of a fix
* This update resolves the segfault/ICE in gcc/c-parser.c while building natively
* gcc/gengtype.c was already updated to GCC 4.6.3 version previously in btrev43031, so no change there
* gcc/libiberty/make-relative-prefix is the stock 4.6.3 version now, as the workaround for Haiku is no longer needed
* This update is otherwise the GCC patches for upgrading 4.6.2 to 4.6.3 core/g++ applied to our sources
* A build failure occurs as TARGET_64BIT is no longer a compile-time
constant in GCC.
* Made some changes so that generated code matches the i386 Haiku target when
generating 32-bit code, and follows the x86_64 ABI for 64-bit code.
* Added a comment stating that DEFAULT_PCC_STRUCT_RETURN needs to be defined
to follow the ABI for 32-bit code, it is ignored for 64-bit.
* Remove definition of __x86_64__, already defined by GCC's i386-c.c.
* Remove -z max-page-size from LINK_SPEC as it shouldn't be necessary: the
default page size is 2MB but this won't result in large binaries, it just
changes the alignment of the sections and would make it easier to map
binaries using large pages in the future.
Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>
* arm: ASM_COMMENT_START is defined in arm/aout.h.
* i386 and x86_64: define ASM_COMMENT_START.
* others: ASM_COMMENT_START is defined in ${arch}/${arch}.h.
* define __STDC_ISO_10646__ to '201103' in order to indicate that
Haiku's wchar_t supports the Universal Character Set (UCS) defined
by the ISO 10646 standard published in March 2011.
* replace gmp.info-? in gcc/gmp/doc by gmp.info, since the latter
is the makeinfo target that will otherwise have to be generated
each time gcc4 is built
* add autom4te.cache to svn:ignore
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@43010 a95241bf-73f2-0310-859d-f6bbb57e9c96
indicating that haiku uses ISO_10646 in wchar_t (in our case: UTF-32)
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@37775 a95241bf-73f2-0310-859d-f6bbb57e9c96
#5630 once the gcc optional packages have been rebuilt.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@36354 a95241bf-73f2-0310-859d-f6bbb57e9c96
of stage2 and stage3 compilers work on haiku (using objdump instead
of cmp, as suggested by Michael)
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@32475 a95241bf-73f2-0310-859d-f6bbb57e9c96
- add missing bits needed to use EABI by default (which should be == AAPCS == BPABI if I understood it right),
- include t-bpabi and bpabi.h,
- added an arm/t-haiku and arm/haiku.h to correct back some stuff after them as is done for linux,
- add multilib variants for softfloat (for xscale) and softfp (AAPCS),
- undo the LIBGCC_SPEC override for arm, it might have been the cause of multilib not working, not sure,
- make armv6 default target.
This allows building for both overo and verdex boards with some mods, though it emits calls to exception unwinding stuff that requires some more symbols (like abort), and should probably be fixed some other way.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@32237 a95241bf-73f2-0310-859d-f6bbb57e9c96
The cross tools build still needs the arm specific headers in Haiku to complete (bug #3763)
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@30652 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
* 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
compile it's enough the set the NATIVE_SYSTEM_HEADER_DIR, but for cross
compiling this is needed. Sorry for that, should've be more cautious when
updating.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29078 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Solved conflicts with the libtool related files by simply using the
vendor versions. IIRC the haiku related changes to libtool and
autoconf were relevant only for the binutils.
* Solved {libstdc++-v3,libmudflap}/configure conflicts by re-running
autoconf for these directories.
I'm already working on fixing the Haiku build, so please don't do the
same.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@20318 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes one fo the problems of building gcc4 under Zeta.
See http://gcc.gnu.org/ml/gcc/2003-10/msg01501.html
If you want to try you'll have to also remove the -lm in gcc/gcc/Makefile.in or symlink it to libroot.so.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@20115 a95241bf-73f2-0310-859d-f6bbb57e9c96
The i386-pc-haiku no longer uses the BeOS BFD target emulation, but
its own. A few things are shared for both *-*-haiku machines now.
The PowerPC Haiku binutils and gcc build, but I wouldn't expect them
to really produce usable output yet. We'll see...
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@15381 a95241bf-73f2-0310-859d-f6bbb57e9c96