* at least for gcc2, we used to leave the 'os' subfolder in there,
which may have caused problems when Haiku's headers have changed
since the last time the compiler was built.
(cherry picked from commit 92bb2fb33e)
* force creation of a cross-compiler for both gcc2 and gcc4 when
building on Haiku (by suffixing the build and host machine with
'_buildhost')
(cherry picked from commit df69e209bb)
Conflicts:
build/scripts/build_cross_tools_gcc4
* libsupc++ wasn't required, the build failed on x86_64.
* PPL: --disable-maintainer-mode configure option seems not enough to avoid an autoconf launch.
Solved by redefined AUTOCONF AUTOHEADER ACLOCAL AUTOMAKE variables to the noop command "true".
* PPL: make could run autoconf in certain conditions, thus generating artefacts
in the source tree. Added --disable-maintainer-mode when launching
configure to avoid this situation.
* cleanup: there are no info files in CLooG and PPL.
Turns out that libgcc is needed, for some reason building the kernel
with -O0 does not end up referencing libgcc but -O2 does. A separate
build of it is done with -mno-red-zone, same reason as for libsupc++.
Ended up being easy to rebuild with different CFLAGS: previously I'd
tried doing `CFLAGS="-mno-red-zone" make` in the libgcc dir which
didn't override, the correct way is `make CFLAGS="-mno-red-zone"`
Kernel mode code on x86_64 needs to be built with -mno-red-zone as
interrupts would corrupt the red zone if it were in use. However, the
kernel is linked with libsupc++, which was not compiled with
-mno-red-zone. If an interrupt occurred in libsupc++ code the red zone
would get corrupted. This was causing random panics, particularly under
heavy system load. Therefore, on x86_64 a separate build of libsupc++
with -mno-red-zone is now done for the kernel to use. Note: this commit
will require a rerun of configure and rebuild of cross tools.
This appears to be a problem with GCC's build system: it defaults to having
multilib enabled, but if it is explicitly enabled with --enable-multilib,
the build fails.
Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>
* touch all .info files before trying to build the gcc4
buildtools in order to avoid the dependency on makeinfo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43012 a95241bf-73f2-0310-859d-f6bbb57e9c96
and types.h. The idea is to provide a basic architecture/compiler
abstraction by defining types and macros that allow the posix/ and os/
headers to be mostly architecture/compiler agnostic.
* Adjusted the posix/ and os/ headers accordingly.
* <SupportDefs.h>: Introduced B_PRI* and B_SCN* macros similar to the PRI*
and SCN* macros defined in <inttypes.h>, just for the BeOS/Haiku [u]int*
types and some POSIX types (e.g. off_t, dev_t, ino_t) that don't have POSIX
macros. Also the B_PRI* and B_SCN* macros are available unconditionally,
unlike the <inttypes.h> macros, which require __STDC_FORMAT_MACROS to be
defined in C++ mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34214 a95241bf-73f2-0310-859d-f6bbb57e9c96
build_cross_tools[_gcc4] script which in turn passes it to make. Cores and
hyperthreads are plentiful these days; no need to let most of them idle when
building the cross tools.
* Sorted the configure options alphabetically again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34199 a95241bf-73f2-0310-859d-f6bbb57e9c96
(mostly at least). Also disables -Werror for the binutils, but those should
be fixed eventually.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29804 a95241bf-73f2-0310-859d-f6bbb57e9c96
in separate folders ('cross-tools-legacy' and 'cross-tools-gcc4') and you
can use the new cmdline-switches 'use-cross-tools' and 'use-cross-tools-gcc4'
to switch between those two. Before, you always had to recompile the tools
in order to switch.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18985 a95241bf-73f2-0310-859d-f6bbb57e9c96
build tools as well. The configure option --build-cross-tools-gcc4 has a
new parameter to specify the architecture.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15382 a95241bf-73f2-0310-859d-f6bbb57e9c96
from the sources. Added respective configure option
--build-cross-tools-gcc4.
* Fixed running "configure --build-cross-tools" from another directory
than the source dir. The parameter to the script was missing and thus
the tools were created in <sources>/generated.
* Removed stdc++ lib header dir ".../debug". One is supposed to include
<debug/...> to get the debug headers.
* The stdc++ lib header dirs are now listed one per line in the
generated BuildConfig. This works around the 512 bytes jam line length
limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15020 a95241bf-73f2-0310-859d-f6bbb57e9c96