Commit Graph

40 Commits

Author SHA1 Message Date
Ingo Weinhold
68ccc98930 Build the cross gcc for the secondary arch as such
Pass --enable-hybrid-secondary to gcc's configure when building it as
a secondary compiler. Doesn't make a difference for building Haiku
itself, but makes it easier to match the Haiku cross devel package with
the compiler when building bootstrap packages with haikuporter.

gcc 4 only ATM.
2013-08-04 17:21:20 +02:00
Ingo Weinhold
f975dc63f1 build_cross_tools_gcc4: move sysroot dir into install dir
This allows us to sneak in system include and library search dirs in
haikuporter without doing anything outside the cross tools dir.
2013-08-03 05:29:15 +02:00
Ingo Weinhold
c0e8cc1a13 configure: prepare for hybrid support
The goal is to do hybrid builds in a single jam (instead of calling a
sub-jam to build parts with the secondary tool chain). This changeset
adds support to configure to prepare multiple tool chains.

configure:
* Merge option --build-cross-tools-gcc4 into --build-cross-tools. The
  option does now always require a packaging architecture parameter,
  i.e. x86_gcc2 for the legacy tool chain.
* Multiple occurrences of the --build-cross-tools and
  --cross-tools-prefix options are allowed. The first one specifies the
  primary tool chain, the subsequent ones the secondary tool chains.
* All architecture dependent jam variables are now suffixed with the
  name of the packaging architecture. The new HAIKU_PACKAGING_ARCHS
  contains the packaging architectures for the prepared tool chains. The
  first element is for the primary tool chain.
* No longer generate a separate libgccObjects file. Just put the
  respective variable into BuildConfig as well.

build_cross_tools[_gcc4]:
* Replace the <haiku output dir> parameter by a <install dir>
  parameter. This allows to create different cross-tools directories.
  They are simply suffixed by the packaging architecture.

Jamrules:
* For the moment map the variables for the primary tool chain to the
  respective suffix-less variables, so that everything still works as
  before.

The next step is to actually support the secondary tool chains in the
jam build system. This will require quite a bit more butchering, though.
2013-07-25 23:52:49 +02:00
Oliver Tappe
49f8422a0d Remove whole sys-include folder when cross-compiler has been built.
* 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)
2013-06-14 19:31:20 +02:00
Oliver Tappe
de2188e964 Fix #7824: failure to build a cross-compiler on Haiku.
* 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
2013-06-14 19:30:55 +02:00
Oliver Tappe
30c2352188 Adjust buildscript for gcc4 to configure with a sysroot. 2013-05-30 00:22:06 +02:00
Jérôme Duval
7e1f963596 style clean up 2013-04-11 18:09:35 +02:00
Jérôme Duval
575cfdf28a GCC4 cross tools: fixes the build with --use-gcc-graphite on another machine
* 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".
2013-04-11 17:57:42 +02:00
Jerome Duval
341c03f988 GCC4 cross tools: a static libGMP requires linking with the host libstdc++ 2013-04-10 23:25:39 +02:00
Jerome Duval
e0d1980015 GCC4 cross tools: build libGMP before PPL and CLooG
* libGMP is actually a CLooG dependency, we now build it before CLooG
and tell to GCC where to find it when Graphite build is activated.
2013-04-10 18:47:01 +02:00
Jerome Duval
024f78deeb GCC4 cross tools: disable "maintainer mode" on PPL configure.
* 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.
2013-04-09 21:55:06 +02:00
Jerome Duval
0837d6c650 GCC4 cross tools: builds with ppl and cloog when --use-gcc-graphite is given 2013-04-06 14:32:12 +02:00
Alex Smith
11c9f9a1d6 Merge branch 'master' into x86_64
Conflicts:
	build/jam/FloppyBootImage
	build/jam/OptionalBuildFeatures
	build/jam/OptionalPackages
	headers/private/shared/cpu_type.h
	src/bin/ps.c
	src/bin/sysinfo.cpp
	src/kits/tracker/PoseView.cpp
	src/preferences/appearance/DecorSettingsView.cpp
	src/preferences/virtualmemory/Settings.cpp
	src/servers/input/AddOnManager.cpp
	src/servers/input/InputServer.cpp
	src/servers/input/InputServerMethod.cpp
	src/system/boot/Jamfile
	src/system/boot/platform/raspberrypi_arm/mmu.cpp
	src/system/boot/platform/u-boot/arch/arm/Jamfile
	src/system/kernel/arch/x86/arch_cpu.cpp
	src/system/kernel/arch/x86/arch_thread.cpp
	src/system/kernel/cache/block_cache.cpp
	src/system/kernel/vm/VMAnonymousCache.cpp
2012-11-18 14:02:07 +00:00
Oliver Tappe
d006487564 Force POSIX-locale when building the buildtools
* using a non-POSIX locale may break the build (especially makeinfo),
  so we explicitly set the locale to POSIX
2012-11-07 21:54:02 +01:00
Jérôme Duval
4107ac9cda Cleanup of remains of subversion in the build system 2012-10-30 22:36:32 +01:00
Alex Smith
aaeadfcb02 Do a separate libgcc build for the kernel as well.
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"`
2012-08-16 17:38:01 +01:00
Alex Smith
c864ba1a2d Build a separate libsupc++ for the kernel with correct flags.
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.
2012-08-16 13:57:04 +01:00
Jérôme Duval
3af8da0ef8 use system zlib when cross building gcc4 to fix #8242
* this add a dependency on package zlib1g-dev for Linux systems.
2012-04-15 13:28:50 +02:00
Alex Smith
81eb68f280 Fixed a compilation failure for the x86_64 toolchain.
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>
2012-04-05 13:15:24 +02:00
Jérôme Duval
c59b279b71 Added workarounds and options for gcc 4.6.2
* add -Wno-unused-but-set-variable for gcc 4.6.x with a TODO
* fix warnings about wrong size of pointer cast in ioapic.cpp and AudioBuffer.cpp
2012-01-19 19:44:42 +01:00
Oliver Tappe
312e961c5d Closing #8063:
* 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
2011-10-30 19:39:12 +00:00
Michael Lotz
901c33fcd0 Replace the $(...) syntax with backticks instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-24 21:14:41 +00:00
Ingo Weinhold
266681e27c Patch by Nathan Mentley: Build the x86-64 build tools with multilib support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-14 23:03:59 +00:00
Ingo Weinhold
2222d0559d * Introduced new header directory "config", which ATM contains HaikuConfig.h
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
2009-11-24 19:44:07 +00:00
Ingo Weinhold
60d8d8fcc5 * Added -j<n> option to configure. It is passed to the
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
2009-11-23 19:34:55 +00:00
François Revol
91446a1477 Don't know why multilib was disabled in r29035, but we'll likely need it for arm, and m68k as well...
Make it depend on haikuMachine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-09 15:38:41 +00:00
Ingo Weinhold
328029e178 Patch by Alexander von Gluck (kallisti5) to get the PPC build going again
(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
2009-03-30 15:00:10 +00:00
Michael Lotz
a16e2a1c69 Forgot to update this reference when renaming be/ to os/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 02:02:51 +00:00
Michael Lotz
3bdbdcb23e The default include paths have been updated from be/ to os/ so copy correspondingly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 23:57:59 +00:00
Michael Lotz
8ffb1d6966 Updating config for current GCC4 cross compiler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 05:15:41 +00:00
François Revol
f868be6863 - Have OpenBSD use gmake
- export MAKE to make sure submakes use it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 19:40:36 +00:00
Ingo Weinhold
5ca2f7aa8c gcc 4.1.2 conveniently saves the version number in a separate file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-04 04:47:55 +00:00
Ingo Weinhold
d0097591b0 Added shebang. Should fix bug #956.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-04 10:50:11 +00:00
Oliver Tappe
a5b60fa88e * reverted changes of revision 18985, as Ingo has pointed out, they were useless.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-03 23:41:59 +00:00
Oliver Tappe
be2bd5ef4b * implemented a suggestion of korli: the legacy & gcc4 cross-tools are now built
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
2006-10-01 18:52:48 +00:00
Ingo Weinhold
20ab75e64c Adjusted build_cross_tools_gcc4 and configure to be able to build PPC
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
2005-12-06 22:45:11 +00:00
Ingo Weinhold
9743fe8729 When building the gcc 4 cross tools we now configure for machine
i586-pc-haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-05 15:01:20 +00:00
Ingo Weinhold
6724a1930d Adjusted build_cross_tools[_gcc4] scripts according to the new directory
layout in the buildtools module.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-22 23:34:51 +00:00
Nathan Whitehorn
307807f2da Moved FreeBSD setup to define a freebsd build platform. GCC4 apparently also requires the use of GNU Make, so told the build_cross_tools script to use 'gmake' instead of 'make' on BSD systems.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-18 16:35:32 +00:00
Ingo Weinhold
29ef597dc6 * Added build_cross_tools_gcc4 script which builds gcc 4 and binutils
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
2005-11-18 14:17:04 +00:00