History log of /haiku/build/jam/BuildSetup
Revision Date Author Comments
# f6166140 29-Nov-2022 Augustin Cavalier <waddlesplash@gmail.com>

build: Define _BOOT_MODE once and for all in ArchitectureRules+BootRules.

Previously it was spread all around the tree, and was not defined
consistently for all boot objects (there were a number of boot modules
which did not define it, but did include headers which checked for it.)

Now, as it is handled in SetupBoot which is invoked for all boot objects,
it will be applied consistently throughout. We can thus drop the manual
additions of it from all Jamfiles.


# 9fc62346 03-Nov-2022 Augustin Cavalier <waddlesplash@gmail.com>

Versioning: Add BETA_4 and PRE_BETA_5 version constants.

PRE_BETA_5 is now the default in master.


# 4df4b48f 23-Mar-2022 Jérôme Duval <jerome.duval@gmail.com>

configure & build: make use of 64-bit libgcc and libsupc++ for EFI/x86_64

Change-Id: I7636530d927843d155b9d7dada2db4f67c875290
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5139
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 526c9fcf 23-Jan-2022 Alexander von Gluck IV <kallisti5@unixzen.com>

jam/build: Solve infinite recursion on host-only tools; fixes #17546

* We should likely check for Jamfile recursion in jam instead of
segfaulting

Change-Id: I19ed771b0e943504e11bd6182adc81a0ea2668e8


# f6381021 22-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

Remove conditions for HOST_PLATFORM=msys.

It never really worked beyond the most basic of commands
and required a lot of hacks, and these days WSL should be used instead.


# 7aa55747 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

kernel & addons: Build with the non-legacy GCC even on x86_gcc2h.

Only one code change: for some reason, GCC chokes on the cr3 functions
as macros (throwing errors about invalid registers.) The BSDs have them
as inline functions instead, so they are converted to that here.

Tested and working. There seems to be about a 10% decrease in CPU time
on some compilation benchmarks that I briefly tried.

Change-Id: I31666297394d7619f83fca6ff5f933ddd6f07420
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4515
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# c4eec9f1 01-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

Distinguish KERNEL_ARCH_DIR from KERNEL_ARCH.

On x86_64, the KERNEL_ARCH should really be "x86_64", but it was "x86"
as the architecture sources/headers directory is shared between 32 and 64 bit.

Should not be a functional change on any platform outside x86_64.


# f0c702e2 06-Jul-2021 Jessica Hamilton <jessica.l.hamilton@gmail.com>

build: add rpath for build tools.

* Allows invoking build tools at the command line without having
to mess with the LD library path environment variables
* Does not change the use of HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR
within the build itself
* Darwin currently excluded, as it uses a different method for
specifying rpath

Change-Id: I4db443f2b5824ee70ad44418251a9996c14663bc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4163
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# ce5993fd 21-Jun-2021 Alexander von Gluck IV <kallisti5@unixzen.com>

version: add BETA_3 and PRE_BETA_4 constraints.

Change-Id: I65b4889042c4c92086fade535622ef12b368a968


# 47320dd0 06-Oct-2020 Augustin Cavalier <waddlesplash@gmail.com>

configure & build: Rework legacy GCC detection to parse versions outside of Jam.

Jam comparison logic is string-based, and so was detecting GCC >= 10
as being < 2. This rectifies that by removing the GCC version parsing
from Jam logic entirely, and setting various BuildConfig variables
instead.

Change-Id: I0c0ae3b9002fb5e77f9ca7a78600c91871657f03
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3293
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# df63c15b 16-Sep-2020 Puck Meerburg <puck@puckipedia.com>

build/jam: use ARFLAGS if set

Combined with a buildtools CL, this will change the AR variable
to be more in line with conventions, where AR points at the binary and
ARFLAGS are the arguments to AR, while keeping compatibility with the
original style of using the AR variable.

Change-Id: I2b9797b9e5ab35929970487b3d1b8dddb9476c1f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3227
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 13d66b6d 21-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix building on Haiku


# a742970b 30-Apr-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

Fix build of Haiku on gcc10 host

Change-Id: Iea16a7d07a32497c4f228739945356b5c8be9897
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2540
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# a20a26e2 08-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

Versioning: Add BETA_2 and PRE_BETA_3 constants.

* PRE_BETA_3 is now the default in master.


# 7a617f59 03-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

configure & build: Add basic support for building with MSYS.

Also remove the MINGW support, as it was far too incomplete.

This *should* work under case-sensitive NTFS, but instead,
it seems #14963 occurs. So perhaps there is a GCC bug
related to case-sensitive vs. case-insensitivity after all.


# ca9fab68 19-Jan-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Link host tools with libbsd on haiku host

Needed for the sparc port, allows to build elf2aout which uses err() and
errx(). Allows to build the sparc port from Haiku.

Change-Id: Ia14dd9b1be1c03b36634a675f1a51eeac8d4aacf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2129
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# d19c9471 29-Sep-2019 Alexander von Gluck IV <kallisti5@unixzen.com>

build/BuildSetup: Make MMC image name more aligned to others

* ex: haiku-((profile)).* works now.

Change-Id: Ib1d24920de6be6ae72c841ace3e57d7b0858f4ef


# 128781e7 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

build/jam: Inline HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR where possible.

The "exec" tool can only handle one command with environs set at
the beginning of the line, so now we set the ADD_BUILD_COMPAT...
in this format. This also seems to be a general performance
improvement to builds using real shells, too.

Change-Id: If4b3117651b5475039d5e8116cd3de398582290a


# 04fbff9f 04-Apr-2019 Alexander von Gluck IV <kallisti5@unixzen.com>

build: Add 64-bit host detection for riscv64 hosts


# 5c93058a 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

BuildSetup: Stop defining __INTEL__ for the host tools.

Nothing in the tree uses __INTEL__ anymore, so this is no longer
needed.


# b357daa5 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

build: Deprecate SetSubDirSupportedPlatformsBeOSCompatible.

By default, all targets support the "haiku" platform, and we no longer
support building for BeOS, Dan0, Zeta, or other BeOS-compatible targets,
so this is no longer needed.

Also remove all references to the non-Haiku compatible platforms, and
change all BEOS_COMPATIBLE checks to HAIKU_COMPATIBLE. Removal of
all SetSubDirSupportedPlatformsBeOSCompatible invocations
will be in the next commit.


# 251892c1 04-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

BuildSetup: Remove unused big-endian host detection.

Nothing references it anywhere. Also add "arm64" to 64-bit
detection (which is used.)


# 17dc34ac 02-Mar-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Build Configure for Python

Some operating systems only ship with Python 3 and the
binary for this is 'python3' instead of 'python' which
causes the Jam build process to fail because it expects
to find 'python'. This change will mean that the
configure process will detect this case and configure
the build to use the correct binary name.

Fixes #14938

Change-Id: I30cd0df828792715a54d760b86dd79aee04e2b2f
Reviewed-on: https://review.haiku-os.org/c/1134
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 1d91b371 09-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

build: Fixes to support building in paths with spaces in them.

Now that HAIKU_TOP is a relative path, nearly all paths Jam actually
has to deal with will never contain spaces, so this is now feasible.
Only one issue remains after this commit (namely, setting
HOST_BUILD_COMPATIBILITY_LIB_DIR.)


# d113c00b 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Remove more HOST_PLATFORM_SUNOS cruft.


# 807304b1 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Add basic support for MinGW hosts.

This doesn't fully work yet (the FS code in libroot_build
needs to be adapted, as some of the symlink-related calls
are not available on MinGW), but it gets much further than
the "Cygwin" target did.


# 37c10606 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Remove support for cross-building from Cygwin and SunOS.

These have been broken for a long time. Some Cygwin changes that
are relevant on MinGW are kept here, but users on Windows who
want to build Haiku should probably use WSL at this point.

However, now that we are using relative paths and don't need
to worry about drive path kludges, it's actually possible to
get some host tools built on MinGW. Changes for that coming.


# 69bd151d 16-Nov-2018 waddlesplash <waddlesplash@gmail.com>

build: Fix paths of tools for bootstrap builds.

The paths to tools are relative to cwd, and HAIKU_ABSOLUTE_OUTPUT_DIR is
not necessarily the same as that, in the case where jam is invoked from
the repository root instead of a "generated" directory.

HOST_OBJECT_BASE_DIR is relative to pwd also, so just make it absolute.

Change-Id: I2aef83804be31c3c03c8577d56372f2dc6cb77f8
Reviewed-on: https://review.haiku-os.org/718
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 1801b956 10-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

BuildSetup: Don't define __x86_64__, GCC/Clang do this automatically.


# 85f8e700 04-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Revert "jam: Fix bootstrap via absolutes in LD_LIBRARY_PATH"

This reverts commit 030d0eb58f0fae4201afcb83a38ac70038393b8d.

It is absolutely not correct to assume PWD is the generated dir;
it may also be the repository root.

Fixes jam putting some build artifacts in the source tree.


# 030d0eb5 04-Nov-2018 Alexander von Gluck IV <kallisti5@unixzen.com>

jam: Fix bootstrap via absolutes in LD_LIBRARY_PATH

* The PWD's are live based on jam run location which means
they shouldn't bind the generated directory to a fixed path
as before.
* We also need an absolute LD_LIBRARY PATH since haikuporter
loses the context invoking host tools.
* I don't think we can run jam from outside of the generated
directory anymore... but I don't think that was a thing.

Change-Id: I020f902ce5235bf268c9075d6e2ae85296a4ad20


# dd45d433 18-Oct-2018 Alexander von Gluck IV <kallisti5@unixzen.com>

u-boot: Fix after multi-loader changes

* Move MMU image to a real image define vs being crammed into
the u-boot bootloader Jamfile
* ARM not working yet, but better!
* x86 still builds

Change-Id: I3fb873dbac06fe2db893915b667bf3ce1df44686


# 1f96a3cb 08-Oct-2018 Jessica Hamilton <jessica.l.hamilton@gmail.com>

system/boot: Add support for multiple bootloaders


# 1a7a9660 29-Sep-2018 waddlesplash <waddlesplash@gmail.com>

BuildSetup: Link against -ldl as well as -lm on non-Haiku.

Fixes the build of libpackage_build following Curl dependency removal.

Change-Id: Idd08fc1c099ba19c6b46c447686f36ce0b35652a
Reviewed-on: https://review.haiku-os.org/605
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 37219550 27-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

Versioning: Add BETA_1 and PRE_BETA_2 version constants.

* PRE_BETA_2 is now the default in master.
* For libbe: R1/alpha4 used internal=8, but nobody bumped master
at the same time, so now we are on internal=9.


# 8bc13c55 15-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BuildSetup: Default HOST_C++ and HOST_LINK to HOST_CC.

Now that HOST_CC is actually passed in, we need to default
everything to it; otherwise, it's up to the Jambase as to
what CC we are actually using.

Found by trying to build Haiku on a system that has no "cc"
executable, but Jam tried to use it anyway (as all three of CC,
C++, and LINK.)


# 20c61bb7 13-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

Revert unrelated changes from previous commit.

I should have read the update script more closely as to
how it added changes for committing...


# ef9994ee 13-Aug-2018 Autocomitter <noreply@haiku-os.org>

Update translations from Pootle


# 0689d8dd 02-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BuildSetup: aarch64 -> arm64.


# b5c220fb 31-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Use BeOSBuildCompatibility on Haiku also.

This forces usage of the libroot_build wrapper functions even on GCC2.
Probably fixes some strange ExtractHPKGArchive failures on Haiku.


# c67634d9 30-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

BuildSetup: __NO_INLINE__ and -fno-delete-null-pointer-checks.

* __NO_INLINE__ fixes the cross-build on some glibc-based systems with
newer compilers, as it prevents glibc from declaring functions inline
that we override in libroot_build.
* We can now enable tree-vrp as long as no-delete-null-pointer-checks
goes where it used to.


# 18e7b997 09-Jul-2018 Alexander von Gluck IV <kallisti5@unixzen.com>

build: Drop specalized haiku-boot-cd-ppc target

* Now generated via haiku-boot-cd when target ppc

Change-Id: I1d4e83c4d95ebc18b0dab28ffb2af03db5dc9d1d


# b337e9a8 13-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

Remove HAIKU_INCLUDE_PATENTED_CODE.

Nothing uses it anymore. Fixes #8935.


# 61206a24 07-Mar-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Cleanup of libgnuregex usage.

John's revert of my removal commit dragged back a bunch of cygwin/sunos
cruft, as well as re-adding RegExp.cpp to the host libshared, that we don't
need.

Instead, remove this and add libgnuregex_build to just the tools/keymap
link alongside the FreeBSD gnuregex case.


# 940a3a23 16-Feb-2018 John Scipione <jscipione@gmail.com>

Revert "build/libgnuregex: Remove."

This reverts commit ca087b05323d3c05f7fe807df017ce4133604b67.

Mac OS X requires libgnuregex for Keymap


# 8a9e1e0d 31-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

Removal of non-Haiku target platform logic from build system (part 1.)

Following recent changes to use libroot_build on Haiku also, it is now
actually impossible to build Haiku components on non-Haiku platforms
(BeOS R5, Dan0, BONE, Zeta), so we can remove any logic related to this.

This is only the first part; still to be removed are:
* SetSubDirSupportedPlatformsBeOSCompatible
* HOST_PLATFORM_BEOS_COMPATIBLE
* TARGET_PLATFORM_BEOS_COMPATIBLE


# 699b4bba 29-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

libroot_build: *Actually* fix attribute usage on Haiku.

To quote jscipione (from 95e8362c52af35a4012ca4d0facd62fb9856b619),
"Let me tell you a story about a bug" -- though this tale spans a much
lesser time than that one did.

In 5e19679ea35a79a26477c6215c7abba9bb7c4d00, I enabled libroot_build for
Haiku, instead of using the system libroot as we had before. There were
a number of bugs introduced along with this that I hadn't fixed (and there
may be more after this), but most of the obvious ones (crashes on x86_64...)
were fixed shortly enough.

Attribute usage, though, was a different story. Unlike most of the POSIX
calls in libroot, which were aliasing system functions no matter what the
platform, the attribute calls were not, as they are specific to Haiku.

Initially I had completely forgot about them, and it wasn't until a few days
later when I noticed that I had an "attributes" directory in my generated
that I realized that the "generic" attribute layer was being used on Haiku.
I attempted a fix for this in 5e19679ea35a79a26477c6215c7abba9bb7c4d00,
thinking that would clear the problem up, but I didn't actually run a test
beyond seeing that my BuildConfig had been updated properly. In fact,
BuildSetup was hard-wired to not even pass that definition through on
Haiku, and so that commit had in effect caused nothing.

My initial "fix" of just changing BuildSetup then caused a build failure,
as while libroot_build itself compiled, it ran into errors whenever attributes
were used, because in letting the real libroot's attribute calls shine
through, I had bypassed libroot_build's FD emulation/shim layer.

Then I tried and failed at three separate attempts to solve this with code:
- a version of the "fs_attr_...h" interface for Haiku. This proved possible
in theory, but in practice I would need to reimplement a lot of attribute
handling code in it, because all I had access to from there was syscalls.

- a version of "fs_attr_untyped" that bypassed its reimplementations of
the "fs*attr" functions for the libroot ones, only using the FD shim layer.
This proved possibly not even theoretically possible because it would have
caused preprocessor hell in some of the build headers, and also assumptions
about how attributes are read were totally different.

- a completely new "fs_attr_haiku" that was a completely new interface to
the fs*attr functions. This proved practically impossible because of the
need to include structures from the system libroot to call out to readdir,
etc. that attempts to solve would also have caused preprocessor hell.

Then I realized that the Linux xattr emulation library, which I'd used
as a reference when attempting the first solution, was shipped by default
as a system library in all builds of Haiku ... and so I could just tell
fs_attr_untyped to use the Linux xattr handler, and then link against libgnu.

So that is how I arrived at this strange and decidedly unorthodox solution
to a problem of my own creation.


# 16b34a8f 27-Dec-2017 Rene Gollent <rene@gollent.com>

Fix FreeBSD build.

- Recent changes to the build system appear to make the assumption
that the GNU regex APIs are universally available. This isn't the
case on FreeBSD, which requires libgnuregex to provide that
functionality. This broke the host keymap build.


# ca087b05 23-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

build/libgnuregex: Remove.

It was needed on macOS for a time when BUrl used regexes for parsing.
Now it does not, and so we can remove libshared's RegExp from build
libshared, and thus also libgnuregex.


# 5e19679e 13-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

build: Use libroot_build on Haiku.

Previously we just used the system libroot, which of course meant
that when libroot's ABI changed, the build broke. Now we use the full
libroot_build that we do on non-Haiku platforms. The logic for "BeOS-compatible
but not Haiku" does not really apply anymore, so it has been gutted where
appropriate (and libhaikucompat has been decoupled from the build.)

The only caveat here is the change to Errors.h -- we really should be using
the system's one where I included the one from the tree, but for whatever
reason, GCC2 refused to handle the #include_next properly.

Fixes the build breakage of Haiku-on-Haiku by my prior commits (sorry).


# f806447f 27-Jul-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

aarch64: Add aarch64 build host support

* Maybe it will be a target someday.
* 64-bit ARMv8 for those not in the know.


# 1b3c81fe 10-Jul-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

u-boot: Fix mmc build without target boards


# 7600fdd8 28-Jun-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

ide: Remove old IDE bus + stack.

* Hasn't been used for quite some time
* Everything was ported over to a new ATA stack
some time ago.
* No huge regressions were seen from the new ATA
stack.


# 2be19c58 16-Feb-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

build: Prevent recursive jam loops on host-only #13309

* When --host-only is used, HAIKU_*ARCH is undefined.
* Various architecture variables are undefined resulting
in architecture dependant code paths getting called
recursively.
(blah/Jamfile loads blah//Jamfile vs blah/x86/Jamfile)
* Another option is setting HAIKU_*ARCH to the host arch
if undefined, but that might have unintended impacts.


# b6c8f81b 19-Jan-2017 Andrew Lindesay <apl@lindesay.co.nz>

build: add support for build paths for 'homebrew' package system on macOS


# 738ca0a3 29-Nov-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

build: Change anyboot output from image to iso

* Re ML discussions, this should make a lot more
sense to users as it is inline with what most
linux distros ship.
* This will require a tweak to the buildbot.
* First step to shipping anyboot instead of plain iso.


# 211483cb 14-Apr-2016 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

EFI: Initial test EFI application

* Only set HAIKU_BOOT_PLATFORM to bios_ia32 if not defined
* Add gnuefi build feature
* Introduce BOOT_LDFLAGS, and move options for passing to linker
into ArchitectureSetup
* x86_64 compile fixes for warnings in boot loader
* loader/elf.cpp: don't include ELF32 support when targeting EFI
* relocation_func.cpp: copy of the relocation code from gnuefi
to make _relocate extern "C", and avoid including <efilib.h>
* boot_loader_efi.ld: copy of gnuefi's elf_x86_64_efi.lds,
modified to include support for C++ constructors, etc. Keep in
sync with the gnuefi package

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>


# fa2dd9c4 09-Apr-2016 Andrew Lindesay <apl@lindesay.co.nz>

BPackageInfo::Parser: Validate URL strings.

Fixes #12710.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
I fixed the modifications to the Jamfiles in src/bin, they were all wrong
in the patch.


# abde6a01 22-Apr-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

bluetooth: Re-introduce to image

* Previous enablement broke gcc2 and hybrid builds
* gcc2 builds fixed and tested working now
* Fix Hybrid builds via missing MultiArch Jam
* Sorry for the noise, enjoy early Bluetooth support


# 52da2024 19-Apr-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

Revert "bluetooth: Add kit, server, and preflet to image"

This reverts commit d16a0a9fc2f6b4f10e8a9eea4bb045e27e08da93.


# d16a0a9f 17-Apr-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

bluetooth: Add kit, server, and preflet to image

* Server not started until requested (via preflet) for now.


# 38601393 23-Jul-2015 Andrew Lindesay <apl@lindesay.co.nz>

hvif2png: Fix build on Mac OS X.

* Add support for macports lib and headers dirs.
* Link libs change for Mac OS X for tool build.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# d52ab7d0 10-Jan-2015 Jérôme Duval <jerome.duval@gmail.com>

disable debug build for userland_server

* it fails on gcc2 with inline functions requiring kernel symbols.


# 02591b8b 05-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Handle armv7hl as an host compiler architecture.

Thanks to dsjonny for noticing that was missing!


# ad598251 11-Aug-2014 Oliver Tappe <zooey@hirschkaefer.de>

Set default of HAIKU_CONTINUOUS_INTEGRATION_BUILD.


# 11ae3c5f 01-Aug-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup build system and configuration.

* Drop unused variables from build system that refer to the system
libraries.
* Drop unused lists of libgcc objects.
* Drop no longer used variables from configuration script.
* Remove no longer needed building of kernel-libgcc and -libsupc++ from
build_cross_tools_gcc4, only the boot-specific (32-bit) libs are
built for a x86_64 target.
* Explicitly disable threads and TLS support when building the cross
compiler, as the only libraries that are used by Haiku's build system
is the 32-bit libgcc and libsupc++ for the bootloader on x86_64 (and
for that neither is wanted).


# afde4473 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

* When using the non-legacy compiler, use the c++ and gcc headers
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
were necessary to avoid a build problem with strace. There are
probably more bugs like these hiding in our build system files, but
I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.


# a07cdb6e 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Define two pseudo targets for the target and build platform.

* The main build rules now cause their targets to depend on the
platform such that global per-platform intializations can be
set up by making the platform pseudo target depend on the
target returned by the initialization rule.


# 3d6edc43 13-Jun-2014 PulkoMandy <pulkomandy@pulkomandy.tk>

Patch by dnivra (GSoC 2014, ARM suppport)

* Cleanup the SD card image building to allow jam -q @bootstrap-mmc to
work.

There are a few remaining tricks before you can safely build an image:
* This uses a non-POSIX du option, and is only tested with Linux du
only (Linux is the only supported system to run bootstrap builds,
anyway)
* The Python recipe in haikuports.cross is known to not build on
Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in
haikuports bugtracker to allow the reverse.
* You need to populate the haikuports repo package list with some
packages (which don't exist yet) to make the build system happy. But our
git hook to generate the repositories is preventnig me to share this
hack.

Once built, the image currently crashes early in the kernel execution.
On to debug that!


# 8c54af56 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Whitespace cleanup in root and 'build' folder.

* Removed trailing whitespace and empty lines at top of files.


# 1b38c341 18-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

mips: Remove mips

* As per the ML discussions. Bumps MIPS to tier 3.
* We've reached a unanimous descision that MIPS doesn't
target any real / valid hardware Haiku wants to pursue
at the moment. In the event that anyone wants to pursue
MIPS, feel free to fork Haiku into your own repository
(and we'll even link to it on the website ports page)
* If someone develops a viable plan for MIPS (and gets the
port working, it can be readded at a later date)


# b55c918f 02-Feb-2014 Jonathan Schleifer <js@webkeks.org>

Import gnuregex 0.12 and remove hardcoded paths

This is required on OS X and other systems which do not have the glibc
extensions for regular expressions (FreeBSD is not one of them as it
already includes gnuregex in /usr). With this there are no hardcoded
non-standard paths for OS X anymore.

regex.c and regex.h are from the official gnuregex 0.12 distribution,
the only modification is that I added __BEGIN_DECLS and __END_DECLS to
regex.h.


# 64d7ff77 02-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

BuildSetup: Refactor 5e97cd45cf to better detect b.e.

* Looking back, we should not assume little endian if
we see armv* as armv7l is little endian while armv7b
is big endian


# 5e97cd45 01-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

BuildSetup: Add better arm host detection

* rather unlikely... unless you're insane like me
* BeagleBoard is armv7l-, so lets look for armv*
(I don't want to do arm* as it is less precise)


# eb45d168 22-Dec-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

GL: Remove OpenGL kit, x86 Mesa

* Depend on Mesa packages to provide functionality


# bd50e8ae 18-Dec-2013 Jonathan Schleifer <js@webkeks.org>

Get rid of a workaround; building with Clang works now.


# 724f4e2d 04-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix kernel -Werror support

The introduction of secondary arch support for kernel files disabled
-Werror for all kernel files, since the -Werror flags were moved from
{CC,C++}FLAGS to TARGET_WARNING_{CC,C++}FLAGS_<arch>, which, however,
was overwritten by the SetupKernel rule. This commit introduces new
global variables {HAIKU,HOST,TARGET}_WERROR_FLAGS[_<arch>], which
contain the additional -Werror flags to be applied for the architecture.
The config variable WARNINGS can be set to "treatAsErrors" to cause
-Werror and {HOST,TARGET}_WERROR_FLAGS[_<arch>] to be appended to the
compilation flags.

Fixes #10280.


# 2b76973f 21-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

mimeset: Use TextSnifferAddon when using a custom MIME DB

That addresses the problem that packaged text files aren't correctly
identified (ticket #9972). All concerned packages have to be rebuilt,
of course.


# b83f9b39 16-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

HAIKU_DEFINES: Add __HAIKU_PRIMARY_PACKAGING_ARCH

* It is set to the primary architecture we're building for.
* Remove __HAIKU__. The macro is already defined by the compiler.


# 9778589f 10-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Set the Haiku image's system dir to non-packaged

Set HAIKU_CONTAINER_SYSTEM_DIR_TOKENS for the Haiku image to "system
non-packaged". All the rules using the variable would put stuff in
directories that will be read-only in the end (and aren't used anymore).
This way they can be used in UserBuildConfig.


# 19f94028 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Allow stripping binaries when copying to image containers"

This reverts commit d6de84de6690d076caf2744ba3fda17ef267cabd.


# 7879928f 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Enable stripping binaries in m68k boot floppy"

This reverts commit e986f5fce9db69ffe69ed046a6fd02bdb54f2c87.


# e986f5fc 11-Oct-2013 François Revol <revol@free.fr>

Enable stripping binaries in m68k boot floppy

This makes it fit again.

We can't reference in BuildSetup a variable set with the other
ones in KernelArchitectureSetup since the rule is invoked later.


# 97d30f2c 10-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Encode the hrev revision into the package versions


# d6de84de 09-Oct-2013 François Revol <revol@free.fr>

Allow stripping binaries when copying to image containers

Currently only needed for boot floppy on some platforms.

Disabled for now.

Note we do not have a mean of knowing which file is a binary
or not so we just try to strip, and silently continue when
strip fails (like on the kernel settings file).

Also note strip actually replaces the file, which means it looses
both the resources and attributes, which shouldn't be a problem
for the boot floppy drivers archive, but is not wanted for other
images, so it's not usable elsewhere as such. Patch wanted.


# c48c3f88 01-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

build: Reenable debug mode for tarfs


# 4135f9cd 30-Sep-2013 François Revol <revol@free.fr>

Fix build

Declare a HOST_PTHREAD_LINKFLAGS variable to hold the flags
required to link with pthreads, and use it for the solver addon.

Works on GNU/Linux, please test and fix for other platforms.


# a11cd144 29-Sep-2013 Rene Gollent <anevilyak@gmail.com>

Cleanups.


# 6114dd1f 29-Sep-2013 Rene Gollent <rene@gollent.com>

Clean up FreeBSD build support as suggested by Ingo.


# 53b16252 18-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix host-only build.


# cc65466f 17-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: Make KDL more useful on ARM

This adds the -mapcs-frame compiler flag for ARM to have "stable"
stack frames, adds support to the kernel for dumping stack crawls,
and initial support for iframes. There' much more functionality
to unlock in KDL, but this makes debugging already a lot more
comfortable.....


# 93cfb722 04-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

build features/bootstrap repo: support secondary arch

* Add rule FSplitPackageName. It splits a package name into port name
and package suffix.
* FSetConditionsHold: Rename to FConditionsHold and replace the set
parameter by a predicate rule parameter, thus adding more flexibility.
* FIsBuildFeatureEnabled: Use the faster check.
* Add rule FQualifiedBuildFeatureName. Given a build feature name, it
prepends the current packaging architecture to yield a qualified
feature name. Is used by the other build feature rules so that the
same build feature can be configured differently for each arch.
* ExtractBuildFeatureArchives: The supplied list is now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
list.
* Add rule InitArchitectureBuildFeatures. It is called early for each
configured architecture, setting up some basic build features for it.
"primary" is set for the primary architecture and a "secondary_<arch>"
is set for each secondary architecture.
* BuildFeatures: Add secondary architecture support: Use the correct
paths for libraries and headers (subdir for secondary architecture)
and configure the icu and zlib sources only for the primary
architecture.
* BootstrapPackageRepository: The package lists are now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
lists.
* IsPackageAvailable, FetchPackage: Add secondary architecture support.
* HaikuPortsCross/x86_gcc2: Add icu and zlib x86 secondary packages.

The second stage Haiku cross devel package for the secondary
architecture can now be built.


# b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# c0e8cc1a 25-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

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.


# fc8967f1 19-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Determine HAIKU_CPU and HAIKU_PACKAGING_ARCH in configure

... instead of in BuildSetup.


# d72ce066 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjust to changed HaikuPorts repository layout

The package kit actually requires the files "repo", "repo.info",
"repo.sha256" to be located under the repository base URL, so the
approach to name the repository file "repo-<hash>" doesn't work.
Now there's a directory "<hash>" which contains the files.

This commit moves the computation of the hash and downloading the
repository file from the build_haiku_image script to the jam build
system. The repo.info is also downloaded and a repository config file
is generated.


# 37585606 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildSetup: remove obsolete dir variables


# 98c6dfa4 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Switch build system from optional package to repositories

* Build libsolv and the dependency solver part of the package kit for
the build platform.
* Add build tool get_package_dependencies. Given a list of package files
and a list of repository files it determines the additional packages
that need to be retrieved from the repositories and prints their URLs.
* Add rules to work with external repositories in the build system
(build/jam/RepositoryRules):
- PackageRepository declares an external repository with all its
packages. The URL of the repository file isn't specified. It is
computed from a given base URL and the SHA256 hash of the list of
package files.
- GeneratedRepositoryPackageList generates a file containing the file
names of all packages in a repository.
- IsPackageAvailable returns whether a package is available in any
repository.
- PackageURL returns the URL for a package.
* Declare the HaikuPorts repository for x86_gcc2
(build/jam/repositories/HaikuPorts/x86_gcc2).
* Add rule AddHaikuImagePackages to add a package to the image and rule
IsHaikuImagePackageAdded to determine whether a package has been
added.
* OptionalPackages: Remove all entries that just downloaded and
installed an external package. AddHaikuImagePackages can be used
instead and is used in the remaining entries. Also move the remaining
optional package dependency declarations from
OptionalPackageDependencies here.
* ExtractBuildFeatureArchives: Instead of the URL parameter a package
name must be specified now. This allows to simplify BuildFeatures
significantly, since there's no dealing with URLs anymore. "if" out
the entries that aren't supported yet.
* build_haiku_image: For the packages installed in system and common
resolve their dependencies and download and install them as well.


# 2ebcd86d 03-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add configure option --host-only

When specified, the build will be configured for building build host
tools only.


# bc96e8f3 06-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add more robust generic attribute emulation variant

The new configure option "--use-xattr-ref" enables an xattr assisted
variant of the generic attribute emulation. Instead of using the inode
ID of a node to identify its attribute directory, we use a reasonably
unique random 128 bit number, which we generate and attach as an
attribute to the node. This way, when a node changes its inode ID
(defragmentation?) or the inode ID of a removed node with a left-over
attribute directory is reused, attributes won't get mixed up.

The old method is still used for symlinks (since on Linux only
priviledged users can write attributes on symlinks), but those usually
only have a rather boring BEOS:TYPE attribute, so mix-ups wouldn't be
that problematic anyway.


# 59e2e2f3 03-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Adjust handling of package infos.

* add HAIKU_PACKAGING_ARCH, which is set to the target packaging
architecture
* introduce support for generic package infos, which are package infos
that are the same for all architectures, except for the declaration
of the package architecture itself
* move package info files underneath architecture-specific or generic
folder


# 204dee70 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use libbe_build also on Haiku

This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.

Also remove some bits of BeOS/Dano/Zeta build support.


# 748c10f2 06-Apr-2013 Jerome Duval <jerome.duval@gmail.com>

Added a configure option to activate Graphite compilations flags

* check if GCC actually supports Graphite flags when the option
--use-gcc-graphite is used


# a198eedc 25-Mar-2013 Rene Gollent <anevilyak@gmail.com>

Fix incorrect version checks.

It's sufficient to simply check if the gcc version is 4 or higher since
we enforce the use of the latest ported compiler for the build anyways,
and these multi-level checks would fail in their current state if gcc
moved to e.g. version 5.0.


# a54db680 25-Mar-2013 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Revert "Remove fno-tree-vrp compile flag."

This reverts commit e8d6e3fe3b85f88fe9506257b0cbbf5341a3a840.
Also added a comment pointing to the recent discussion.
See http://www.freelists.org/post/haiku-development/hrev45320-Yet-another-nonobvious-effect-of-ftreevrp-optimization


# 9595506f 24-Mar-2013 Rene Gollent <anevilyak@gmail.com>

Fix typo.


# 5787587d 24-Mar-2013 Rene Gollent <anevilyak@gmail.com>

Disable array bounds warnings on gcc 4.6. Fixes #9522.


# e8d6e3fe 24-Feb-2013 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Remove fno-tree-vrp compile flag.

My tests hasn't shown any problems with removing it.
Let me know if there still are.


# 058f84c3 19-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

Follow up to hrev45127

* check whether HAIKU_STRIP variable is set
* use AddVariableToScript instead of AddTargetVariableToScript
since $(HAIKU_STRIP) isn't a jam target.


# 5f4df83c 18-Nov-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed ARM build.


# 7be608ab 30-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

HPGSTranslator: fix the build

* add missing definition since libpng upgrades
* don't treat warnings as errors


# c864ba1a 16-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

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.


# caf06f6e 30-Jul-2012 Matt Madia <mattmadia@gmail.com>

Added 'device' to the library name map. Fixes #8800 per korli.


# 385d69fc 19-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Made it possible to build kernel modules for x86_64.

Added the necessary build flags for modules, and added a module (dpc)
to the floppy image for x86_64 builds for testing purposes. The module
gets loaded correctly and its code runs without issue. Only non-trivial
addition is the different method for generating kernel.so, this is
explained in the kernel Jamfile.


# 0962132c 10-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed Mac OS X 10.7 as a build platform (for GCC 4).

* Use gcc and g++ rather than cc and c++, as the latter now point to
clang with recent Xcode versions and compilation of the host tools
fail for various reasons with it.
* Replace the case-sensitive filesystem check with a more basic one,
as diskutil no longer supports the behaviour of getting info for the
volume that any path is on.
* Updated ReadMe with a correct list of prerequisites for OS X.
* GCC 2 builds are still broken due to a strange error that only
occurs with a GCC 2 built on OS X 10.7


# 898b29e3 05-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added temporary stack trace function to x86_64.

Will be merged with the x86 one later on. Requires -fno-omit-frame-pointer on
the kernel build flags, GCC defaults to not generating stack frames on x86_64.


# da80a050 02-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Preparation for merge of x86 and x86_64 kernel sources.

Since x86 and x86_64 share a lot of common code, x86_64 kernel sources/headers
are going to reside under headers/private/kernel/arch/x86 and
src/system/kernel/arch/x86 along with the existing x86 code. This commit
changes the build system to handle this. A new variable, TARGET_KERNEL_ARCH,
has been added. This is the name of the kernel/boot architecture directory
name, set to x86 on both x86 and x86_64. This is now used in all places where
TARGET_ARCH was used to get to kernel arch sources/headers (I've changed
everything necessary as far as I can tell). Kernel won't build for x86_64
at the moment as the sources have not been merged, loader does.


# 21769ef6 18-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

Add dns_resolver module

dns_resolver module provides a means for all kernel mode code to resolve
DNS hostnames.


# 8fe02d0c 24-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Initial commit

Empty file system with only mounting supported.


# 6f6d78e8 25-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Cleaned up ELF64 address handling.

* platform_allocate_elf_region() is removed, it is implemented in platform-
independent code now (ELF*Class::AllocateRegion). For ELF64 it is now
assumed that 64-bit addresses are mapped in the loader's 32-bit address space
as (address - KERNEL_BASE_64BIT + KERNEL_BASE).
* mapped_delta field from preloaded_*_image removed, now handled compile-time
using the ELF*Class::Map method.
* Also link the kernel with -z max-page-size=0x1000, removes the need for
2MB alignment on the data segment (not going to map the kernel with large
pages for the time being).


# cfd1c180 19-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Add -march=pentium to boot {CC,C++}FLAGS on x86_64, prevents GCC from generating SSE code.


# 8c0e3c95 15-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Add -mno-red-zone to the kernel CCFLAGS/C++FLAGS.

The red zone is a 128-byte area below the stack pointer specified by the
AMD64 ABI that can be used by leaf functions for their stack frame without
modifying the stack pointer. It is guaranteed not to be modified by signal
handlers. This cannot be used in kernel mode code, as an interrupt handler
could overwrite it, so stop GCC from generating code that uses it.


# 65ad1ba3 26-May-2012 Alex Smith <alex@alex-smith.me.uk>

Made it possible to build the bootloader when targetting x86_64.

* x86_64 is using the existing *_ia32 boot platforms.
* Special flags are required when compiling the loader to get GCC to compile
32-bit code. This adds a new set of rules for compiling boot code rather
than using the kernel rules, which compile using the necessary flags.
* Some x86_64 private headers have been stubbed by #include'ing the x86
versions. These will be replaced later.


# 38847644 11-May-2012 François Revol <revol@free.fr>

Include BoardSetup from BuildSetup

* while it seemed to work before, BuildSetup was actually adding includes from the default boot platform, before BoardSetup had a chance of changing it.


# 80a21513 28-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

BuildSetup: Enable other platforms besides u-boot on arm


# 60f75e90 04-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

Merge liblocale.so into libbe.so.

* Make the locale kit a part of libbe.
* Drop the LocaleBackend kludge used from within libbe (and from
other places, too) in order to access system catalog strings.
This is now done via gSystemCatalog, which is provided and initialized
by libbe.
* Drop all references to liblocale.so from all Jamfiles.
* Add legacy symlink liblocale.so in order to keep optional packages
that rely on it in a working state.

TODO: the documentation hasn't been updated.


# eb5f3639 12-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Fixes some occurrences of 'variable set but not used', disables Werror for problematic items.


# c59b279b 19-Jan-2012 Jérôme Duval <jerome.duval@gmail.com>

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


# 17e82349 06-Jan-2012 Michael Lotz <mmlr@mlotz.ch>

Remove coreutils and tcpdump from the DEBUG blacklist.

The DEBUG build for these has been fixed in hrev43636 and hrev43637
respectively.


# 31c110be 28-Dec-2011 Urias McCullough <umccullough@gmail.com>

Remaining subdirs that cannot be compiled with DEBUG=1

Signed-off-by: Michael Lotz <mmlr@mlotz.ch>


# 8ad8d2e5 15-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Activate -Werror for POSIX locale backend and the code using it.


# 34b63b5b 10-Dec-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Remove libbe_build linking m from earlier commit and add -lm to HOST_LINK_FLAGS on non BeOS compatible platforms.
(HOST_LIBROOT would need more work than just adding m so I went the easy route.)


# 692e9b11 25-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Build fix part 2: active libroot_build.a again:

* uncomment the building of libroot_build.a again
* add function remapper to HOST_STATIC_LIBROOT
* drop TODO about the function remapper not working with the static
libroot

Ingo: please review - I think this should work, but I'm not so sure
where HOST_STATIC_LIBROOT should be in the list of libraries of its
only user (<build>bfs_fuse): where it is now or right at the end?

As it is now, the resulting binary still contains references to
host-libc-implementations of close() & others, which are triggered by
the other libs (like libfuse.so). If I put HOST_STATIC_LIBROOT right at
the end, those references are gone, though. But which is correct?


# 55bc3719 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Wrap POSIX FD functions in libroot_build

This makes opening symlinks work universally in the build system tools.
Two mechanisms have been implemented, both of which don't always work.
The first is remapping via preprocessor macros. This fails where equally
named methods are used (e.g. STL fstream::open()). The other is using
hidden functions in the new libroot_build_function_remapper.a that is
linked into everything that is linked against libroot_build.so. This one
fails for functions that are defined inline in headers (Linux/glibc does
that). Together they seem to cover our build system needs ATM.


# b33a1b1c 12-Nov-2011 François Revol <revol@free.fr>

PowerPC platform might not always be OpenFirmware


# 6c6edebc 12-Nov-2011 Travis Geiselbrecht <geist@foobox.com>

[build][OSX] revise the darwin test to darwin10 and darwin11, not a wildcard

As PulkoMandy pointed out on IRC, darwin10 and 11 (10.6 and 10.7) are at least partially 64bit, so
the test only applies there. When darwin12 comes out it'll have to be fixed.


# b2916b0c 12-Nov-2011 Travis Geiselbrecht <geist@foobox.com>

Fix build on OSX Lion, which has apparently bumped the darwin version to darwin11


# cd3e0931 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix x86_64 BuildConfig issues

* Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
accordingly.
* Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
former does now state whether the platform is effectively treated as
64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
is actually 64 bit, but 32 bit mode is enforced.


# 1c2d7d3a 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# 174240f9 06-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move DSO policy changes down a few lines to go under C/C++ flags section
* ensure host isn't darwin as Apple doesn't use binutils


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43202 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0ea2063 04-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* undo r43186
* fix build due to changes in DSO Linking the right way
as per bonefish.
* we may need to check host GCC version here... can't find
when this option was introduced
* fixes #8031


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43191 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d980c7f 03-Nov-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Reworked the way HAIKU_CCFLAGS, HAIKU_C++FLAGS and their kernel equivalents are set.
The flags given to configure are kept and the build just adds its own flags onto these.
Also the kernel flags are also based on the flags given at configure.
I suspect this will be needed for llvm.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e88ace80 02-Nov-2011 François Revol <revol@free.fr>

Leave a bit more room for the boot drivers tgz archive, but sadly it's not enough.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eab1b0e8 29-Oct-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

BuildSetup wasn't caring about HAIKU_CCFLAGS or HAIKU_C++FLAGS set at configuring time.

A bit out of my comfortzone with, so please tell me if I'm wrong.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fdecfdb3 24-Aug-2011 Matt Madia <mattmadia@gmail.com>

Increase the size of the default raw and default vmware image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42685 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4dbc2457 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Wrap POSIX FD functions in libroot_build

This makes opening symlinks work universally in the build system tools.
Two mechanisms have been implemented, both of which don't always work.
The first is remapping via preprocessor macros. This fails where equally
named methods are used (e.g. STL fstream::open()). The other is using
hidden functions in the new libroot_build_function_remapper.a that is
linked into everything that is linked against libroot_build.so. This one
fails for functions that are defined inline in headers (Linux/glibc does
that). Together they seem to cover our build system needs ATM.


# ba65f946 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix image rules wrt system/ relative entries

* Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS
containing the directory tokens relative to the container root to
refer to system.
* Use the variable in *ToContainer rules that need to put something in
system.
* AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage.
* AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids
special-casing in the boot loader for packagefs.


# 355b8ba7 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Build a system Haiku package

* Create rules (build/jam/PackageRules) and a script,
build_haiku_package, to build hpkg files.
* Move all rule invocations that copy files and created symlinks and
directories in the "system" directory from HaikuImage to
HaikuPackages, which creates a package "haiku.hpkg".
* build_haiku_image: Comment out adding the copyrights info to
AboutSystem for the moment.


# a1cada97 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix x86_64 BuildConfig issues

* Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
accordingly.
* Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
former does now state whether the platform is effectively treated as
64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
is actually 64 bit, but 32 bit mode is enforced.


# f1eeb323 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# 3dfd9cb9 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 4cc4f7bb 14-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added KMessage to libroot_build.
* libbe_build: Where possible we directly use the actual Haiku headers and
sources, now. In the headers/build headers we just include the respective
Haiku headers as needed. That still allows overrides where necessary. The
intention is to make it easier to keep the build stuff in sync.
* Fixed a few printf() format and signed/unsigned comparison warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42179 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb7a272f 12-Feb-2011 Jérôme Duval <korli@users.berlios.de>

bumped up default image size to 230MB


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40459 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 500bb630 21-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* WIP-commit of the first parts of the package kit and the pkgman
(console-)tool


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db2b2bd6 02-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Resolved TODO (gcc 4 .eh_frame support).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9217a573 31-Oct-2010 François Revol <revol@free.fr>

The 68k bootloader will get fatter with video handling...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 710dac23 27-Oct-2010 François Revol <revol@free.fr>

M68K: Do not force HAIKU_BOOT_PLATFORM and make the floppy image size depend on it. One should use HAIKU_BOOT_PLATFORM={atari_m68k|amiga_m68k} now instead of setting TARGET_BOOT_PLATFORM.
Note we aren't yet at the point where jam can make you a floppy image due to broken vm stuff.
It might be interesting to also switch the extension used on the image, amiga emulators prefer .adf for ex.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc7d8990 23-Oct-2010 Rene Gollent <anevilyak@gmail.com>

When using gcc 4, disallow use of CFI asm for now. This renders executables
generated by Haiku's build sys usable with our Debugger, pending support
for gcc4's (different) exception handler frame format.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39071 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d26fafe9 26-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* The arp module gives warnings in GCC4, so the typo was actually needed; this
temporarily fixes the build again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38398 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 40b788d4 27-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed typo that prevented the datalink_protocols to be compiled with -Werror.
* Enabled -Werror for the protocols.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34d9bfb0 23-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Missed this when working on warnings a couple of days ago:
* enable -Werror for print add-ons and wonderbrush translator add-on

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eba0c4d6 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* enabled -Werror for all apps

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3605272d 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* turns out src/kits/tracker was low hanging fruit, as it didn't contain any
warnings at all - enabled -Werror for all kits

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1662a364 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix the single remaining gcc2-warning in media kit and enable -Werror for it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38266 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 269ebc04 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fix #6373, second try
* make BDADDR_* macros refer to value types instead of addresses
* adjust all interfaces using bdaddr_t* to use (mostly const) refs instead,
which IMHO makes the interface & code clearer
* that got rid of a couple of const incorrectness casts
* some cleanup along the way


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38265 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32a2294f 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* revert r38213, as it introduces initialization problems

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38263 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0ef6475 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix #6373 by switching the BD... macros to take the address of corresponding
constants, which had to be defined in several places in order to be available
in the kernel addons, network protocols and the server/kit.
* enable -Werror for all servers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38213 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f62243f 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix warnings in Keymap preflet about hidden virtual by renaming SetFont()
to SetBaseFont() (and fFont to fBaseFont)
* enabled -Werror for all preflets


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37cebf68 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed all warnings in FileTypes preflet and enabled -Werror

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2655efc3 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fixes to Notifications preflet
* CID-1501: protect against dynamic_cast potentially returning NULL
* additional style fixes
* fixed all warnings and enabled -Werror

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 529fd9af 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fixed all warnings in Shortcuts preflet and enabled -Werror for it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0900cb3 29-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed a warning in the opengl preflet and added the current
state of things for all preflets to the EnableWerror
declarations


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37814 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 19aa183a 29-Jul-2010 Matt Madia <mattmadia@gmail.com>

Increased the size of the default image. Upon first boot, less than 800 KiB was
available for a gcc2hybrid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37811 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4782f2be 27-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove now unneeded (hopefully) timezone data


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37769 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c090a0fd 26-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* updated ICU build packages with newer builds that try a bit harder to avoid
warnings and incorporate some of the ICU-patches we had in our repo before
we upgraded to 4.4.1
* fixed remaining warnings when building locale kit
* activated EnableWerror for locale kit
* added 'Unicode' license, which is the second license in use by ICU


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37763 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 266c6cf4 25-Jul-2010 Matt Madia <mattmadia@gmail.com>

Remove useless commented code. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f75e967 25-Jul-2010 Matt Madia <mattmadia@gmail.com>

Introduced a new variable, HAIKU_INCLUDE_TRADEMARKS. It used to include/exclude
files from HaikuImage and is set when HAIKU_DISTRO_COMPATIBILITY is 'official'
or 'compatible'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c28b85e 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* one more Werror-related build fix for bluetooth

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eddec292 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37670 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be6c5ba6 19-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also add debug_server, input_server and cddb_daemon to the WError list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37593 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 016386c6 18-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add midi_server, print_server and registrar to the WError list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37592 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e8e2989 09-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Use -WError also for libdevice and libtranslation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bbe3922 09-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Enable WError for midi, midi2 and print kits (tested with both gcc2 and gcc4)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37448 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38319af8 02-Jul-2010 Matt Madia <mattmadia@gmail.com>

Updated HAIKU_DEFAULT_IMAGE_SIZE to 200 M. For some reason, building it in
Haiku causes the image file to need 193 MB; building it in FreeBSD requires
only 180 MB.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37343 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76a4353b 01-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Add a new way of using the locale kit with static accessors instead of global variables. This has the following consequences :
* Applications don't have to declare BCatalog fCatalog themselves, it's now done automatically
* Libs and add-ons can be localized just the same way (except static libraries)
For now this new system is yet disabled as I'm looking for some peer review before going on. To enable it you have to define B_TRANSLATE_USE_NEW_MACROS in each file doing catalog access. This will not stay, I'll update the
other apps to use it.
The linking in jamfiles must be not only with liblocale.so, but also liblocalestub.a. Not sure how to handle this for user-side applications. Libraries are also required to provide a MIME signature to use any catalog.
The locale preflet is updated to the new system (as a test). Othe rapps will follow if everyone is ok with this approach.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37323 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97901ec5 11-May-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Nathan Mentley:
* Added a few header files in headers/posix/arch that'll allow for an x86_64
haiku target to be compiled. fenv.h is src/lib/msun/amd64/fenv.h from
freebsd.
* configure: Added support for x86_64 arch when running
build_cross_tools_gcc4.
* config[_build]/HaikuConfig.h, BuildSetup: Added x86_64 recognition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36794 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b28334a 05-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed PackageInstaller build by adding liblocale.so to the library name map.
* Ordered the map libraries alphabetically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36620 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adfe8719 25-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added libdebug.so to the library map.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35952 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26b5ecec 15-Mar-2010 Matt Madia <mattmadia@gmail.com>

Create "anyboot-image" and define build profile rules to utilize it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 25daf1cf 03-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Build libsupc++.so and libstdc++.so only when they aren't provided by the
compiler. Fixes #5322 (the ones in /boot/develop would be overwritten).
* Simplified the Jamfile building these libraries.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35396 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce891238 20-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch partially by Samuel Rodríguez Pérez:
* Added amd64-* as supported host gcc machine.
* Added work-around for AMD64 FreeBSD 8: It only has a static libsupc++,
which prevents us from building shared libraries, so we use the shared
libstdc++ instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f7b2c67 11-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* gcc 4 features built-ins for atomic operations. If the macro
B_USE_BUILTIN_ATOMIC_FUNCTIONS is defined most atomic_*() functions are
redefined as macros using the built-ins directly.
* Enabled that feature for the x86 build. Might work on other platforms as
well, but that needs to be tested.

No significant speedup for the -j8 Haiku image build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35018 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a837b39 11-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Tell gcc to produce code for Pentium at least. Doesn't seem to make any
difference performancewise though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35017 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eb548a8 11-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed useless assigning of the default values and use a switch for the
architectures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35015 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e5498e4 04-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Färber modified by myself:
* Determine HOST_LD and HOST_OBJCOPY in configure.
* Removed Solaris ld work-around in BuildSetup.

The change requires configure to be re-run. Alternatively HOST_{LD,OBJCOPY}
can be added to generated/build/BuildConfig.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34892 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82cbfd35 02-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

first stab at fixing #5091:
* let BuildSetup set HAIKU_HOST_IS_BIG_ENDIAN according to HOST_GCC_MACHINE
* minor cleanup in BuildSetup
* when building ICU, set the endianness indicator suffix according to
HAIKU_HOST_IS_BIG_ENDIAN

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34864 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b6f9863 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Färber: Fix mixup of GNU and Sun linker on OpenSolaris.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34726 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b58d844 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adf0692b 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the DEBUG_PRINTF variable support.
* Simplified the HAIKU_INCLUDE_PATENTED_CODE variable support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e001389f 19-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added shared headers to HAIKU_PRIVATE_KERNEL_HEADERS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4dc69971 06-Dec-2009 François Revol <revol@free.fr>

Force 64bit for i686-apple-darwin10 (OSX), since it seems to fool everyone about it being still 32bit (well the kernel maybe but not the rest). This makes the build go further along on OSX 10.6.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc786409 02-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Attempt at allowing to use C++ structures in C only code: We use the
CreateAsmStructOffsetsHeader mechanism to generate a header with macros
defined to the sizes of the structures we're interested in and when compiling
in C mode define the structures as "struct { char bytes[size]; }".
It works in principle, but due to how jam works, one would have to specify the
dependency to the generated header for all sources that include it directly or
indirectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba829ba0 01-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjusted gcc2 work-around to renamed file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34418 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6236ae85 25-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Also include HaikuBuildCompatibility.h on a Haiku host platform and
conditionally define some of the new stuff there. That fixes the build under
a r34172 Haiku, though it also causes some problems that needed working around.
Haven't tested under newer Haiku revisions yet. Will do tomorrow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f1e464a 25-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* We need to define __STDC_FORMAT_MACROS, and __STDC_LIMIT_MACROS under BeOS
compatible platforms as well, Ingo. This fixes building Haiku under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a79e0ef1 25-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Also add __STDC_LIMIT_MACROS to the host defines. It gives us macros like
INT32_MAX.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34240 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bdfce0e9 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Define __STDC_FORMAT_MACROS directly in HOST_DEFINES.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34217 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a85cf9d7 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* configure: Pass gcc's host machine string to the jam build system.
* BuildSetup: Set jam variable HOST_PLATFORM_IS_64_BIT and add host define
HAIKU_HOST_PLATFORM_64_BIT if the host platform is 64 bit. Removed the
check from BeOSBuildCompatibility.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9d14ecca 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Build package and packagefs with -Werror.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e55dd5f8 23-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

* When compiling on Haiku as the host platform, set HOST_LIBSUPC correctly.
This is important when setting up the TARGET_LIB* constants later, in case
the target platform is not "haiku". (i.e. libbe_test).
* Added TODO about HOST_GCC_BASE_FLAGS being wrong for GCC4. I couldn't find
the proper fix, but it is important whan compiling libbe_test on Haiku.
I worked around this by having the constant defined correctly for the
problematic file. See the TODO comment.
* Small cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33246 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b25f8906 19-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Fix build on Haiku. Some tools were missing libstdc++ and beos-compatible build platforms weren't setting the host compat lib dir at all, resulting in the icu build libs not being found.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b15449d 19-Sep-2009 François Revol <revol@free.fr>

Due to the ICU merges the default image size is too small now, bump it up!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33184 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10c8ce93 27-Aug-2009 Michael Lotz <mmlr@mlotz.ch>

Globally enabling the ATA stack now so we don't get inconsistent states between
the alpha and non-alpha profiles.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e8130d1 21-Aug-2009 Jonas Sundström <jonas@kirilla.com>

Adding routerboard_mipsel platform stubs and linker script.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67838392 21-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied stippi's no-patents patch, but without the ffmpeg part, as that one
is obviously already configured not to use patented code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32577 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c69b5b6 19-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Made the libbe_test environment basically working under Haiku - to actually
make it work, one would need to use versioning for all libbe symbols. This is
worth an 8k price per file that links against libbe.so, so I didn't want to
commit this as is. An alternative to this solution would be to write a
separate application that is responsible for the app_server's window. Comments
welcome.
* Removed BeOS compatbility of the libbe_test stuff.
* Renamed the libbe_test targets from *haiku* to *test*, ie. libbe_haiku.so is
now called libbe_test.so, haiku_registrar is now test_registrar, etc.
* This also removes BeOS compatibility from tracker/FSUtils.cpp (all BeOS
compatibility should be removed, but I don't want to make Alexandre more work
in his branch, and it's not urgent at all).
* Replaced the former "run" scripts for the test environment with a single
run script (see updated NOTES file).
* Removed the libbe_test target from some applications - this was only to help
developing them under BeOS, and is thus no longer necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adc5ba48 18-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Reverted the smaller boot image - it doesn't seem to work for Stefano (gcc4?)
anymore with the small size, and it didn't fix the problem I originally hoped
it would.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# feb750d3 12-Aug-2009 François Revol <revol@free.fr>

[ARM]
- consolidate board specific definitions into build/jam/board/*/BoardSetup to avoid duplicating address values everywhere,
- add various addresses, boot script, custom C/C++ flags and SD card definition,
- not sure BoardSetup is included at the best place though,
- replaced board-specific ldscript with passing the loader address directly to LD from BoardSetup,
- added haiku.mmc target which generates an mmc/SD card image with a FAT partition with the files needed to boot for the board, should later be integrated with haiku.image with the BFS partition offset passed to bfs_shell, requires apt:sfdisk,mtools on GNU/Linux,
- added some more rules, one to build a script for the SD image,
- fake a NetBSD loader for now, U-Boot doesn't know haiku, and we'll need a way to pass the tgz image and RAM size, we'll either use standlone way (usual C argv[]) or the NetBSD args,
- style fixes,
- 80 cols, /me pets Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32284 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f1460bc 12-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed the (intel) gart stuff from the floppy image. Not sure why this was
on it. With the other changes already made, we can now use a 1440k boot image
for x86 as well, again.
* If you build a CD, you'll have to take extra care to see whether it still fits
on the floppy or not - space is really tight already.
* Made USB support optional for the CD-ROM. It's turned on, though, since we do
want to support USB-CD-ROMs by default; this is just something you can use
once in case we need to enlarge the boot floppy to 2880k again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0b9925b 05-Aug-2009 François Revol <revol@free.fr>

Introduce a new level of portability: boards.
Since we don't support Flattened Device Trees yet (and they don't solve all the issues), we need a place to hole board-specific config, which are different even though we use U-Boot on ARM. Things like cpu & mmu type...
U-Boot doesn't really help us there anyway, it only passes a few board infos (RAM banks & the bill), and optionally other stuff if we fake a linux kernel or netbsd loader, but still not enough. FDT support isn't available for ARM in U-Boot yet either. So for now, and likely for stuff we can't get from FDT, we'll put board-specific config there.
Unlike desktop machines were we want a single kernel per arch, we'd rather have the kernel built for a single board without having to handle detecting mmu type at boot and switching calls like I did on m68k.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f823c25 22-Jul-2009 François Revol <revol@free.fr>

Disable -Werror for m68k, arm and mipsel since we aren't really ready for it and we use #warning to mark things to write...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7043bc68 22-Jul-2009 François Revol <revol@free.fr>

[GSoC] [ARM] Patch by Johannes Wischert.
Add ARM defines to the build system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31692 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d5c24e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa1f6614 21-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Quick fix for the broken GCC2 build. The guilty one might want to have another
look at this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a4744551 24-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the way the zip archive with the alternative gcc libraries is built.
Now that's done like building the network boot archive, which gives us a lot
more flexibility for defining its contents.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f604da45 24-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Eric Petit: Fixed the library path for the build tools on Darwin.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30845 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c154b946 21-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added haiku_version_glue.o "glue code" containing the Haiku/ABI version
symbols recently introduced. Until init_term_dyn.o is linked into kernel
add-ons, too, we link with haiku_version_glue.o, so we have those symbols
in kernel add-ons as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30818 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 003ebb0e 19-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Also define the build system variables TARGET_STATIC_{LIBSTDC++,LIBSUPC++}.
* runtime loader:
- Fixed gcc 4 warnings.
- Enabled -Werror.
- Renamed all remaining *.c source files to *.cpp.
- Implemented GNU style ELF symbol versioning support.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22613644 02-May-2009 Jonas Sundström <jonas@kirilla.com>

Prepare mipsel for jamming. Adding mipsel target case, a simple boot platform and a -fno-pic setting for the kernel.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30585 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc80fc52 28-Apr-2009 François Revol <revol@free.fr>

Pass ATA_STACK from jam now, so one can override it with HAIKU_ATA_STACK=1 in their UserBuildConfig. Probably needs to conditionalize some targets on it too...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30478 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 357179de 27-Apr-2009 François Revol <revol@free.fr>

Use 150kB tgz offset for m68k.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30470 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eae7ffa 27-Apr-2009 François Revol <revol@free.fr>

Use arch specific floppy image size, Atari machines don't know about 2.88kB... plus it still fits in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30469 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77e84f21 13-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

configure does now check the yasm version for target architecture x86, and
sets the HAIKU_YASM build variable, which will be checked in BuildSetup.
Re-running configure or adding the variable manually to
generated/build/BuildConfig is required.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30145 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 317bd7dd 03-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29876 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a8f8b7b 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Enabled -Werror for userlandfs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29405 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37aefc9c 23-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved jam argument processing to new build/jam/CommandLineArguments.
* Check the first argument for "help" as well. If given print a somewhat
helpful text. Consider this my excuse to close ticket #1883. :-)
* Track available and added optional packages and fail, if an optional package
is requested that doesn't exist. Closes ticket #3332.
* Check for duplicate build profile definitions and fail if encountered.
Closes ticket #3333.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29298 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2c3dec9 14-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

Preliminary support for building ISO only Haiku CDs. Not working completely
clean yet. Provides a haiku-cd target and creates a bootable image using mkisofs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb09230 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 374c632c 25-Jan-2009 Michael Lotz <mmlr@mlotz.ch>

Rumour has it that we now have Haiku hosts with GCC > 2 as well.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64f7e20f 22-Jan-2009 Michael Lotz <mmlr@mlotz.ch>

Add -ffreestanding to kernel C/C++ flags. This means that ISO conventions like
the main() signature are not applied and do not generate errors when violated.
Our bootloader has a non-standard main() signature for example, which is of
course fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28983 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad06cdd1 09-Jan-2009 François Revol <revol@free.fr>

Move the tgz archive offset to 300k, should fix CD boot again, but it's getting tight.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28862 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c532eed 14-Nov-2008 François Revol <revol@free.fr>

Make the tgz archive offset in floppy image settable. Set it to 270k for now, until zbeos gets some diet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28657 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7d3cf5b 06-Nov-2008 François Revol <revol@free.fr>

First attempt at a PPC bootable iso, doesn't work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28543 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 889903f9 23-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildConfig needs to be included before any other rules file. That's why
the wrong Link actions were used (always the no-attributes-support ones
which remove the target first), for instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28304 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ff1beff8 20-Oct-2008 François Revol <revol@free.fr>

Add OpenBSD to the list of supported build platforms.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28251 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4b00ffc 16-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Added bfs to the -Werror components.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a96cedf6 14-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Improve indentation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9de80bb 13-Oct-2008 Jérôme Duval <korli@users.berlios.de>

* updated build opengl headers to 7.2
* added opengl to build be api headers
* define USES_BE_API for gen_matypes
this should fix the build for Linux which don't provide GL headers :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28050 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8443ac68 02-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* -Wno-multichar was added multiple times. It's now only in the
HAIKU[_KERNEL]_WARNING_CCFLAGS.
* Added -Werror for various parts of the source tree for the gcc 2
build. Feel encouraged to add more.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27842 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ba29206 01-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Enforced 80 column limit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27837 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 127456e5 19-Sep-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Added user-defined image volume label support.
The default label is as previously: Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27636 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc66988f 12-Aug-2008 François Revol <revol@free.fr>

Bump default image size to 128MB


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d121ec0 09-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Faerber with changes by myself: Work towards Solaris
build platform support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26899 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f104a75 26-Jul-2008 François Revol <revol@free.fr>

- Cleanup
- For simplicity we'll force using only insn common to 020 to 060, mostly to avoid unimplemented floating point ops in the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26647 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba97f782 23-Jul-2008 Maurice Kalinowski <mauricek@nowhere.fake>

julun+mauricek:
* add cygwin specific options.
* Cygwin cannot handle -fPIC option and throws warnings, thus we only use it on non windows platforms for the host tools.
* Windows uses PATH instead of LD_LIBRARY_PATH, so before calling a host tool this environment variable needs to be expanded... Brilliant...
* Using jam on Windows is kind of complicated, as the cygwin included gcc creates executables with a .exe extension. When jam parses dependencies for being up to date it ignores this extension again and tries to rebuild the executables again and again. This hack removes the extension after successful linking. Though jam has a SUFEXE variable for cygwin builds, we cannot use this one directly as crosscompiled targets do not have an extension, it is complicated to use the same jam for both platforms. A more clean attempt would be to check for the extension on each host target depending on the platform. This should be fixed later on.
* Btw. Say hello to Haiku compiling successfully on Windows :) with one patch to be discussed for jam...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26590 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21951f84 15-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Add -Wno-multichar to the kernel warning flags to avoid useless warnings.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26418 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa385c7c 23-Jun-2008 François Revol <revol@free.fr>

m68k build flags... same as default for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26104 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf424219 18-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Define TARGET_PRIVATE_SYSTEM_HEADERS for target libbe_test.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07ddcd64 14-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed libnetapi to libbnetapi. Create a symlink in the image.
* Extended R5 compatibility check to also consider calls from
libbnetapi.
* Fixed incorrect R5 compatibility check in BNetEndpoint constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae28f0ae 14-May-2008 François Revol <revol@free.fr>

- add sunos as possible host
- fix build (at least CodyCam), NETAPI lib is now libnetapi for Haiku...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25488 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b202f4e 13-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new header directory headers/private/system which is supposed
to contain headers shared by kernel and userland (mainly libroot).
* Moved quite a few private kernel headers to the new location. Split
several kernel headers into a shared part and one that is still kernel
private. Adjusted all affected Jamfiles and source in the standard x86
build accordingly. The build for other architectures and for test code
may be broken.
* Quite a bit of userland code still includes private kernel headers.
Mostly those are <util/*> headers. The ones that aren't strictly
kernel-only should be moved to some other place (maybe
headers/private/shared/util).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25486 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de39891a 19-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Add the "-fno-tree-vrp" option when building with GCC4. It seems that the
value range propagation optimization results in broken code with the GCC4
version we are currently using. Added TODO to retest/remove this flag when we
update our GCC4 compiler.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25054 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa01c3e7 18-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Disable strict aliasing on GCCs newer than 2 until we have analyzed and fixed all aliasing issues.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0a9d225 02-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a new fancy build system feature called "build profiles".
Especially people building various kinds of images with different
settings may want to have a look at the respective section in the
UserBuildConfig.ReadMe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24757 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8cb3071 02-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
should be on the image (executables: 755, others: 644). Otherwise only
root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
for adding additional users and groups (by default only root user and
group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
a wrong variable name before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24750 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 071f9c3a 27-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Build configurations shouldn't be done in svn controlled files, so I
finally created a solution to avoid that: Header files that contain
configuration settings (and nothing else) go to build/config_headers.
To change settings, create a directory build/user_config_headers (which
is ignored by svn), copy the respective header there and modify it at
your leisure. Currently only tracing_config.h has been moved to the new
location, but more files will follow eventually. It is also recommended
to move optional macro definitions in Jamfile (as for BFS) to a config
header instead; the build system will then automatically rebuild on
changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ba49c35 22-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
- Added build tool rm_attrs, a simple "rm" replacement, which also
removes the attributes directory for a given file.
- Added build/scripts/rm_attrs shell script, which wraps the
invocation of the rm_attrs tool. If it doesn't exist yet, the
ordinary rm is used.
- The RM jam variable refers to the rm_attrs script now, i.e. whenever
something is removed by the build system, the attributes are removed
too (if the build tool has already been built, that is).
- Removed the shell function attrrmrf() in build_haiku_image. We use
the rm_attrs tool instead, if necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24528 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 404a0fea 16-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Second stab at reorganizing standard/gcc headers. This time it not only
builds on Linux with gcc 2 and 4, but the images do even run. :-) Not
tested on BeOS.

* Removed stddef.h and stdarg.h. They are provided by the compiler.
* Adjusted size_t.h, wchar_t.h, and wchar.h accordingly.
* Made stdio.h avoid gcc 2.95.3's fixincludes hack stdio_va_list
* Added gcc 2.95.3 headers to the repository. They are used instead of
the headers of the gcc 2.95.3's we use to compile Haiku with. Should
avoid build problems with the BeOS native compiler.

For sake of personal recreation you can rebuild the cross gcc 2.95.3,
but the only thing that changed is its header directory
(lib/gcc-lib/.../include), which isn't used anymore. Replacing it with
headers/build/gcc-2.95.3 should have the same effect as rebuilding, BTW.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24413 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ed64004 01-Mar-2008 François Revol <revol@free.fr>

Rules and targets to build a boot CD iso... use:
jam haiku-boot-cd


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24201 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22ec1df3 01-Mar-2008 François Revol <revol@free.fr>

Add rules to create a boot floppy (use jam haiku-boot-floppy), in preparation for CD booting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22d7fdd9 19-Jan-2008 Jérôme Duval <korli@users.berlios.de>

fix typo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c5a61a9 12-Jan-2008 François Revol <revol@free.fr>

HAIKU_BOOT_PLATFORM was wrong...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23458 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34b3b26b 10-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged branch haiku/branches/developer/bonefish/optimization revision
23139 into trunk, with roughly the following changes (for details svn
log the branch):
* The int 99 syscall handler is now fully in assembly.
* Added a sysenter/sysexit handler and use it on Pentiums that support
it (via commpage).
* Got rid of i386_handle_trap(). A bit of functionality was moved into
the assembly handler which now uses a jump table to call C functions
handling the respective interrupt.
* Some optimizations to get user debugger support code out of the
interrupt handling path.
* Introduced a thread::flags fields which allows to skip handling of
rare events (signals, user debug enabling/disabling) on the
common interrupt handling path.
* Got rid of the explicit iframe stack. The iframes can still be
retrieved by iterating through the stack frames.
* Made the commpage an architecture independent feature. It's used for
the real time data stuff (instead of creating a separate area).
* The x86 CPU modules can now provide processor optimized versions for
common functions (currently memcpy() only). They are used in the
kernel and are provided to the userland via commpage entries.
* Introduced build system feature allowing easy use of C structure
member offsets in assembly code.

Changes after merging:
* Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp
(caused by refactoring and introduction of "call" debugger command).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23370 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 851e6dca 30-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Some of Darwin's C++ runtime seems to live in libstdc++.so, so I moved
it to HOST_LIBSUBC++. Now it should be possible to remove HOST_LIBSTDC++
from the library list for build tools which don't use the STL -- it had
been added due to the Darwin peculiarity in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22773 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 794771dd 25-Oct-2007 François Revol <revol@free.fr>

Suppress useless trigraph warnings triggered by pcihdr.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8074e217 23-Oct-2007 François Revol <revol@free.fr>

Build support for m68k.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ee83016 21-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added header directories missing for the libbe_test target, since my changes
a while ago that removed the incorrect automatic addition of Haiku header
directories in case of targets other than "haiku". The app server test
environment does now almost build again. The problem left is related to the
recent changes of the accelerant interface. I suppose someone in the knows
should decide if we can simply use our header or if special handling is
needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61ca8e04 24-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a common directory for missing system on BeOS systems.
* Added the old fella <stdint.h>.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22050 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0385b065 22-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Samuel Rodriguez Perez, slightly modified by myself: New
configure flag "--use-32bit" enabling 32 bit builds with a 64 bit host
compiler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e8ac290 12-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the variables NETWORK_LIBS, NETAPI_LIB, and
SELECT_UNAME_ETC_LIB with TARGET_ and introduced HAIKU_* and HOST_*
counterparts.
* Use HOST_NETWORK_LIBS for building remote_disk_server.
* Also got rid of {R5,BONE,DANO,HAIKU}_COMPATIBLE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da0f9ae0 02-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Haiku as host platform supported by the build system ("haiku_host").
Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21802 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d96381dd 02-Aug-2007 Jérôme Duval <korli@users.berlios.de>

reverted r21757 which is now fixed by the following
added $(HAIKU_GCC_LIBGCC) to HAIKU_KERNEL_ADDON_END_GLUE_CODE as suggested by Ingo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21795 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fe452e51 17-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Fixed update-image and update-install which were broken after the NetBootArchive changes, courtesy Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21640 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b39c8d37 10-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Refactored the image creation rules. There are now generalized rules that
work on arbitrary "containers". The image rules are just
specializations.
* Added rules, a definition file (build/jam/NetBootArchive), and a shell
script for creating a gzipped tar archive containing kernel and modules
required for network booting (the contents may need some fine-tuning).
ATM it can be built via the haiku-netboot-archive pseudo target. It is
generated in the output directory (e.g. "generated").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a9059fb 16-Jun-2007 Travis Geiselbrecht <geist@foobox.com>

some make system work to get x86-64 linux compiles working:
-The biggest problem with linking host libraries (libbe_build and libroot_build) was not having the source files compiled with the -fPIC flag. As far as I can tell, we want to do this on all of the other host platforms as well, so hacked the jam files a bit to add it.
Forgive me if I've committed more Jamfile sins.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a66c32dd 20-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Introduced new configure option --distro-compatibility to specify the
compatibility relation to the official Haiku distribution. "official"
is for the official Haiku distribution itself, "compatible" for Haiku
Compatible (tm) distros, and "default" for all others (the default value
for the option). The build system variable HAIKU_DISTRO_COMPATIBILITY is
defined accordingly, and one of the
HAIKU_DISTRO_COMPATIBILITY_{OFFICIAL,COMPATIBLE,DEFAULT} macros is
defined for source code and rdefs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21177 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6dcd0ccf 18-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe (slightly modified): Several changes to support
building on Mac OS X (Darwin). A problem with makebootable remains.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13246f99 09-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Apparently _GNU_SOURCE doesn't imply 64 bit off_t on all glibc
platforms. Funny that it still isn't the default, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21083 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ba4119d 04-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Get more features on glibc host platforms, among those ISO C 99
definitions (like LLONG_{MIN,MAX}).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21012 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f4e5272 07-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Under Linux it is now possible to emulate the BeOS attribute support via
xattrs. It can be enabled with the configure switch "--use-xattr". Note
that the amount of data stored in attributes may be limited by the used
file system -- e.g. AFAIK ext3 has a limit of one block (usually 4 KB)
for all attributes of a file, which might not suffice. XFS should be
fine, as should ReiserFS 3.6 (or any FS which stores attributes in
hidden files).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# afed18de 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New build system feature to shorten the turn-around times when working
with image files. E.g.

jam -q update-image libbe.so kernel_x86

will only build libbe.so and the kernel (if necessary) and copy them
onto the already existing Haiku image. The MIME DB will not be
reinstalled, and only those source directories will be copied for which
the AddSourceDirectoryToHaikuImage rule is given a second argument
(e.g. "1"). The image will otherwise remain unchanged.

The "update-vmware-image" and "update-install" work similarly for the
VMWare image and the directory installation respectively. Note that, due
to the way the VMWare image is created (prepending a header to the
standard image), the file itself is fully rebuilt, i.e. changes made
during the emulation will be lost after updating the VMWare image.

The feature requires Haiku's jam. With other jam versions a similar
effect can be reached by accordingly setting the HAIKU_IMAGE_UPDATE_ONLY
and HAIKU_INCLUDE_IN_IMAGE in the UserBuildConfig file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c24a1a9 05-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New handy build system feature: It is now possible to pass a command
line to jam that contains build targets and that will be executed by
the build system after building the targets and replacing their
occurrences in the command line by their paths. The keyword indicating
such a command line is "run", targets are marked by a leading ":".
E.g.:

jam -q run ':<build>xres' -l :libtracker.so

This builds the xres tool for the host platform and libtracker.so for
Haiku, and afterwards lists the resources libtracker.so contains. Note,
that this feature requires using Haiku's jam version.

The functionality is implemented by the new RunCommandLine rule, which
can, of course, also be used in the UserBuildConfig.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20598 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8ba8f58 28-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added the disk device API to the libbe_haiku.so, so that libtracker.so builds
again for target libbe_test. Added respective syscall stubs and other functions
to libhaikucompat.a.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20447 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9756b9b4 21-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

A jam invocation without given target (or the "all" target) in the output
directory, the build system root directory, or the "src" directory is
now using the "haiku-image" target instead. The variable
HAIKU_ORIGINAL_JAM_TARGETS is set to the original JAM_TARGETS value, so
that a UserBuildConfig can base its decisions on it.
The feature is only available with Haiku's jam version.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20194 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eccc7665 04-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added configure option --use-gcc-pipe to enable building with the gcc
-pipe option.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fcdce90 29-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Added a HAIKU_BASE_CCFLAGS variable that will be added to all CCFLAGS/C++FLAGS that
build Haiku. Uncomment it to define "-pipe" which may speed up your build process
a bit if you have enough memory (it's about 25% faster on a test case over here
with BeOS).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20015 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c166aa84 14-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

Added -Wno-multichar to the default kernel GCC flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19514 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69b1f76d 29-Nov-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

FreeBSD build platform support. Original patches courtesy of
Samuel Rodriguez Perez, somewhat hacked by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b06be955 07-Nov-2006 Jérôme Duval <korli@users.berlios.de>

added a -Wno-deprecated flag for gcc4 avoiding warnings for deprecated headers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2ae268f 07-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

libnetapi.so no longer exists under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34b8a998 28-Sep-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

allow overriding TARGET_BOOT_PLATFORM on command line


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18957 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 48b8e271 09-Aug-2006 Jérôme Duval <korli@users.berlios.de>

improved the library name map for haiku and host keeping the simpler name input_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18465 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72cc0253 08-Aug-2006 Jérôme Duval <korli@users.berlios.de>

link input addon against /system/servers/input_server on non Haiku targets, map our input_server target to it


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18464 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5abaa7eb 03-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

We do now include HaikuBuildCompatibility.h and link against libhaikucompat.a
automatically for all BeOS compatible target platforms but Haiku. This should
allow more Haiku code to build for BeOS.

Disclaimer: I couldn't really test it, since my BeOS working tree is switched
to my layout branch and under Linux I obviously can't test building for BeOS.
So, if you have complaints, keep them to yourself and just fix the problem.
;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18372 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9b776de 02-Jun-2006 Oliver Tappe <zooey@hirschkaefer.de>

- changed HAIKU_TEST_DIR to incorporate the platform and the architecture, such
that tests for different platforms don't mix.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17704 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f146dc96 23-May-2006 François Revol <revol@free.fr>

allow compiling of things using find_directory on ZETA, so I can test Terminal


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17562 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a64b2583 11-Apr-2006 Jérôme Duval <korli@users.berlios.de>

added libGL.so as haiku library


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b478a39 01-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fixed network libs definition for haiku platform
it could be wrong in some cases


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9cf8b60 25-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Added __HAIKU__ for target libbe_test.
Fixed FreeBSD host platform define.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16094 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 789b0b78 24-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Applied patch from Alexander U. Deynichenko: $HOST_PLATFORM should change
HOST_DEFINES, not TARGET_DEFINES.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 957a1b17 30-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new build system variables
{HAIKU,HOST,TARGET}_KERNEL_PIC_{CC,LINK}FLAGS which define the
compiler/linker flags specifying the kind of position independence
the kernel shall have. For x86 we had and still have -fno-pic, but the
PPC kernel has -fPIE (position independent executable) now, as we
need to relocate it.
* The boot loader relocates the kernel now. Mostly copied the relocation
code from the kernel ELF loader. Almost completely rewrote the PPC
specific relocation code, though. It's more correct and more complete now
(some things are still missing though).
* Added boot platform awareness to the kernel. Moved the generic
Open Firmware code (openfirmware.c/h) from the boot loader to the kernel.
* The kernel PPC serial debug output is sent to the console for the time
being.
* The PPC boot loader counts the CPUs now and allocates the kernel stacks
(made OF device iteration a bit more flexible on the way -- the search
can be restricted to subtree). Furthermore we really enter the kernel...
(Yay! :-) ... and crash in the first dprintf() (in the atomic_set()
called by acquire_spinlock()). kprintf() works, though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15756 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f9dddcb 28-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

libgame.so can now be compiled again in the test environment (libbe_test).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a1f9fe0 15-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Rewrote KernelAddon. We were using Addon before, with the undesired side
effect that we were linking not only against the complete glue code, but
also against libroot.so. Now we explicitly link against
crtbegin.o/crtend.o only.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15545 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 57eab440 13-Dec-2005 Waldemar Kornewald <wkornew@nowhere.fake>

Now we use the legacy headers when building our compatibility libraries. Fixed BuildSetup to use root instead of libroot.so because arp would not build otherwise. Command-line apps now don't build for R5, anymore. I hope nothing is broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 365eac1b 06-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Support PPC as target architecture.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15383 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a05e71e 18-Nov-2005 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Made FreeBSD work with jam.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15025 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 307807f2 18-Nov-2005 Nathan Whitehorn <nwhitehorn@nowhere.fake>

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


# 9469b271 14-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Typo that broke the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14914 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c89fc875 14-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* More consequent handling of libsupc++. configure looks it up now and
provides it via BuildConfig. We link everything against it.
* Temporarily pass --no-undefined to the linker. Should be in the
compiler specs, but isn't in the gcc 4 I built.
* Define _BEOS_R5_COMPATIBLE_ macro when building with gcc 2. Can be
used in headers for instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14913 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec068e96 13-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

No longer needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14889 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b5934c9 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added support for compiling Haiku with GCC 4. The main difference is that
we use the libstdc++ (including it's headers) that comes with the
compiler.
* Apparently option "-I-" has been deprecated, which is why we now treat the
include stuff a bit differently.
* Removed avcodec from the Haiku image, since the library wouldn't build with
gcc 4, and I'm not in the mood to fix that (declaration of an array of an
incomplete type).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14876 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6f43ca7 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Looks like Dano headers aren't perfect. I hope this solution is at least a tiny
bit like Ingo would have done it :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 155b583a 09-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed unit tests build for platforms libbe_test and r5. Only randomly tested
a few whether they actually work.
New pseudo target "unittests", which builds all unit tests for the currently
set TARGET_PLATFORM. They are placed in generated/tests/<platform>/unittests.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca9e5772 07-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reintroduced third LinkAgainst parameter <mapLibs>, defaulting to true.
Library names are now mapped for all targets but "host" (not only for
"haiku") -- added one more level of indirection to achieve that.
(TARGET_LIBRARY_NAME_MAP -> *_LIBRARY_NAME_MAP_*).
* Renamed build/HaikuBuildCompatibility.h to BeOSBuildCompatibility.h
(auto-included when compiling something that uses the Be API for platform
"host" on anon-BeOS platform), and introduced build/HaikuBuildCompatibility.h,
which can be included when compiling something that can be built for both,
Haiku and BeOS compatible platforms.
* Introduced libhaikucompat.a, a library that adds a few functions existing
under Haiku, but not under BeOS.
* New rule AddSubDirSupportedPlatforms.
* Renamed libopenbeos.so to libbe_haiku.so.
* Introduced new target platform "libbe_test", which is basically equivalent
to a BeOS compatible host platform target, with the exception, that instead
of the host platform's libbe.so a special build of Haiku's libbe.so
(libbe_haiku.so (formerly known as libopenbeos.so)) is used. Furthermore
Haiku's public app, interface, storage, and support kit headers are used
when compiling. This replaces the less nice way in which the test app server
and applications for this test environment were built.
When building for platform "libbe_test", the library name "be" is
autotranslated to "libbe_haiku.so". Thus most applications don't need
special fiddling when them building them for the app server test environment;
usually an "AddSubDirSupportedPlatforms libbe_test ;" will suffice.
* Reduced the dependencies of <syscalls.h> and fixed problems caused by this
(e.g. source files not including the needed headers directly).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14749 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42f8a260 01-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed last commit. Now we define HAIKU_TARGET_PLATFORM_* macros correctly
depending on the TARGET_PLATFORM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 723a9e90 01-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

We define a preprocessor macro HAIKU_TARGET_PLATFORM_{BEOS,BONE,DANO,HAIKU,LINUX} for identifying the platform something is built for.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14616 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3860139319a16a1f009bb63e69d9e468b6e28f9d 23-Jul-2015 Andrew Lindesay <apl@lindesay.co.nz>

hvif2png: Fix build on Mac OS X.

* Add support for macports lib and headers dirs.
* Link libs change for Mac OS X for tool build.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# d52ab7d045a9bedb40509bf7fd67d45c46a507fe 10-Jan-2015 Jérôme Duval <jerome.duval@gmail.com>

disable debug build for userland_server

* it fails on gcc2 with inline functions requiring kernel symbols.


# 02591b8b71e39e814663acf75af1420a73500906 05-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Handle armv7hl as an host compiler architecture.

Thanks to dsjonny for noticing that was missing!


# ad598251d7d6134bf90fefeb0910f19477dacd2d 11-Aug-2014 Oliver Tappe <zooey@hirschkaefer.de>

Set default of HAIKU_CONTINUOUS_INTEGRATION_BUILD.


# 11ae3c5fe78154e4934d0c8c1eb744c9104427b2 01-Aug-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup build system and configuration.

* Drop unused variables from build system that refer to the system
libraries.
* Drop unused lists of libgcc objects.
* Drop no longer used variables from configuration script.
* Remove no longer needed building of kernel-libgcc and -libsupc++ from
build_cross_tools_gcc4, only the boot-specific (32-bit) libs are
built for a x86_64 target.
* Explicitly disable threads and TLS support when building the cross
compiler, as the only libraries that are used by Haiku's build system
is the 32-bit libgcc and libsupc++ for the bootloader on x86_64 (and
for that neither is wanted).


# afde44733fdff43256384ea0441585a082e73c95 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

* When using the non-legacy compiler, use the c++ and gcc headers
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
were necessary to avoid a build problem with strace. There are
probably more bugs like these hiding in our build system files, but
I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.


# a07cdb6e9f8e484b6ba9f209fbeb144e906d3405 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Define two pseudo targets for the target and build platform.

* The main build rules now cause their targets to depend on the
platform such that global per-platform intializations can be
set up by making the platform pseudo target depend on the
target returned by the initialization rule.


# 3d6edc43d98295a74f801343f14c6e27d5a6084c 13-Jun-2014 PulkoMandy <pulkomandy@pulkomandy.tk>

Patch by dnivra (GSoC 2014, ARM suppport)

* Cleanup the SD card image building to allow jam -q @bootstrap-mmc to
work.

There are a few remaining tricks before you can safely build an image:
* This uses a non-POSIX du option, and is only tested with Linux du
only (Linux is the only supported system to run bootstrap builds,
anyway)
* The Python recipe in haikuports.cross is known to not build on
Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in
haikuports bugtracker to allow the reverse.
* You need to populate the haikuports repo package list with some
packages (which don't exist yet) to make the build system happy. But our
git hook to generate the repositories is preventnig me to share this
hack.

Once built, the image currently crashes early in the kernel execution.
On to debug that!


# 8c54af563ce823c0e5b029716b2a020896c90ff4 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Whitespace cleanup in root and 'build' folder.

* Removed trailing whitespace and empty lines at top of files.


# 1b38c3412cee70121540687295e301b8817b9cc0 18-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

mips: Remove mips

* As per the ML discussions. Bumps MIPS to tier 3.
* We've reached a unanimous descision that MIPS doesn't
target any real / valid hardware Haiku wants to pursue
at the moment. In the event that anyone wants to pursue
MIPS, feel free to fork Haiku into your own repository
(and we'll even link to it on the website ports page)
* If someone develops a viable plan for MIPS (and gets the
port working, it can be readded at a later date)


# b55c918f579fb523946747cf26dde829fe7fe8c2 02-Feb-2014 Jonathan Schleifer <js@webkeks.org>

Import gnuregex 0.12 and remove hardcoded paths

This is required on OS X and other systems which do not have the glibc
extensions for regular expressions (FreeBSD is not one of them as it
already includes gnuregex in /usr). With this there are no hardcoded
non-standard paths for OS X anymore.

regex.c and regex.h are from the official gnuregex 0.12 distribution,
the only modification is that I added __BEGIN_DECLS and __END_DECLS to
regex.h.


# 64d7ff778b606794db4800ed950cc27c2d7012b0 02-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

BuildSetup: Refactor 5e97cd45cf to better detect b.e.

* Looking back, we should not assume little endian if
we see armv* as armv7l is little endian while armv7b
is big endian


# 5e97cd45cfc4a27bd4c234b318f75aa0eadb766b 01-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

BuildSetup: Add better arm host detection

* rather unlikely... unless you're insane like me
* BeagleBoard is armv7l-, so lets look for armv*
(I don't want to do arm* as it is less precise)


# eb45d168e18352b635255d10895521c6719bf357 22-Dec-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

GL: Remove OpenGL kit, x86 Mesa

* Depend on Mesa packages to provide functionality


# bd50e8aedbea52e02a35cd1070eff0e597126ced 18-Dec-2013 Jonathan Schleifer <js@webkeks.org>

Get rid of a workaround; building with Clang works now.


# 724f4e2d387826f0b501981e542ea21ca99bd64d 04-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix kernel -Werror support

The introduction of secondary arch support for kernel files disabled
-Werror for all kernel files, since the -Werror flags were moved from
{CC,C++}FLAGS to TARGET_WARNING_{CC,C++}FLAGS_<arch>, which, however,
was overwritten by the SetupKernel rule. This commit introduces new
global variables {HAIKU,HOST,TARGET}_WERROR_FLAGS[_<arch>], which
contain the additional -Werror flags to be applied for the architecture.
The config variable WARNINGS can be set to "treatAsErrors" to cause
-Werror and {HOST,TARGET}_WERROR_FLAGS[_<arch>] to be appended to the
compilation flags.

Fixes #10280.


# 2b76973fa2401f7a5edf68e6470f3d3210cbcff3 21-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

mimeset: Use TextSnifferAddon when using a custom MIME DB

That addresses the problem that packaged text files aren't correctly
identified (ticket #9972). All concerned packages have to be rebuilt,
of course.


# b83f9b39401caf09c46d66487c3c2174e0742598 16-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

HAIKU_DEFINES: Add __HAIKU_PRIMARY_PACKAGING_ARCH

* It is set to the primary architecture we're building for.
* Remove __HAIKU__. The macro is already defined by the compiler.


# 9778589fc754f850b730c7c919b3fa6e1bb60d58 10-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Set the Haiku image's system dir to non-packaged

Set HAIKU_CONTAINER_SYSTEM_DIR_TOKENS for the Haiku image to "system
non-packaged". All the rules using the variable would put stuff in
directories that will be read-only in the end (and aren't used anymore).
This way they can be used in UserBuildConfig.


# 19f94028f6014c9c0867f7efa581bb48058b4883 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Allow stripping binaries when copying to image containers"

This reverts commit d6de84de6690d076caf2744ba3fda17ef267cabd.


# 7879928fb2d0667fbe82ebd7f957d0cba9343cfa 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Enable stripping binaries in m68k boot floppy"

This reverts commit e986f5fce9db69ffe69ed046a6fd02bdb54f2c87.


# e986f5fce9db69ffe69ed046a6fd02bdb54f2c87 11-Oct-2013 François Revol <revol@free.fr>

Enable stripping binaries in m68k boot floppy

This makes it fit again.

We can't reference in BuildSetup a variable set with the other
ones in KernelArchitectureSetup since the rule is invoked later.


# 97d30f2cfb33b5e0c254625800e8067e9351a91c 10-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Encode the hrev revision into the package versions


# d6de84de6690d076caf2744ba3fda17ef267cabd 09-Oct-2013 François Revol <revol@free.fr>

Allow stripping binaries when copying to image containers

Currently only needed for boot floppy on some platforms.

Disabled for now.

Note we do not have a mean of knowing which file is a binary
or not so we just try to strip, and silently continue when
strip fails (like on the kernel settings file).

Also note strip actually replaces the file, which means it looses
both the resources and attributes, which shouldn't be a problem
for the boot floppy drivers archive, but is not wanted for other
images, so it's not usable elsewhere as such. Patch wanted.


# c48c3f88a9a2a981bf52c3de205ef40c69b43bb3 01-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

build: Reenable debug mode for tarfs


# 4135f9cde383b5f60097eca36dd893cdf8974068 30-Sep-2013 François Revol <revol@free.fr>

Fix build

Declare a HOST_PTHREAD_LINKFLAGS variable to hold the flags
required to link with pthreads, and use it for the solver addon.

Works on GNU/Linux, please test and fix for other platforms.


# a11cd14453181175432d286a7a356c8eebdea053 29-Sep-2013 Rene Gollent <anevilyak@gmail.com>

Cleanups.


# 6114dd1fc24f386774103d8b751794405f2470ad 29-Sep-2013 Rene Gollent <rene@gollent.com>

Clean up FreeBSD build support as suggested by Ingo.


# 53b162523f35ee9c2ba4c67e8fcbf59201d0f491 18-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix host-only build.


# cc65466f0de34d946d9311517f4e7781b7294ef8 17-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: Make KDL more useful on ARM

This adds the -mapcs-frame compiler flag for ARM to have "stable"
stack frames, adds support to the kernel for dumping stack crawls,
and initial support for iframes. There' much more functionality
to unlock in KDL, but this makes debugging already a lot more
comfortable.....


# 93cfb722707a5870dc99fefe0c05dff0ca4e966f 04-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

build features/bootstrap repo: support secondary arch

* Add rule FSplitPackageName. It splits a package name into port name
and package suffix.
* FSetConditionsHold: Rename to FConditionsHold and replace the set
parameter by a predicate rule parameter, thus adding more flexibility.
* FIsBuildFeatureEnabled: Use the faster check.
* Add rule FQualifiedBuildFeatureName. Given a build feature name, it
prepends the current packaging architecture to yield a qualified
feature name. Is used by the other build feature rules so that the
same build feature can be configured differently for each arch.
* ExtractBuildFeatureArchives: The supplied list is now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
list.
* Add rule InitArchitectureBuildFeatures. It is called early for each
configured architecture, setting up some basic build features for it.
"primary" is set for the primary architecture and a "secondary_<arch>"
is set for each secondary architecture.
* BuildFeatures: Add secondary architecture support: Use the correct
paths for libraries and headers (subdir for secondary architecture)
and configure the icu and zlib sources only for the primary
architecture.
* BootstrapPackageRepository: The package lists are now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
lists.
* IsPackageAvailable, FetchPackage: Add secondary architecture support.
* HaikuPortsCross/x86_gcc2: Add icu and zlib x86 secondary packages.

The second stage Haiku cross devel package for the secondary
architecture can now be built.


# b0944c78b074a8110bd98e060415d0e8f38a7f65 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# c0e8cc1a1368c6cc99ddf1c76f8826cd5a598fd2 25-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

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.


# fc8967f1a6ae896205bf4e59a1db2f26ae168a04 19-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Determine HAIKU_CPU and HAIKU_PACKAGING_ARCH in configure

... instead of in BuildSetup.


# d72ce06673197dbd21336ca8f5618d98487001c8 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjust to changed HaikuPorts repository layout

The package kit actually requires the files "repo", "repo.info",
"repo.sha256" to be located under the repository base URL, so the
approach to name the repository file "repo-<hash>" doesn't work.
Now there's a directory "<hash>" which contains the files.

This commit moves the computation of the hash and downloading the
repository file from the build_haiku_image script to the jam build
system. The repo.info is also downloaded and a repository config file
is generated.


# 3758560637f4994ab09062c5e4a7a010b108f751 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildSetup: remove obsolete dir variables


# 98c6dfa41e20c57edf426197a8d9aab6223a59fd 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Switch build system from optional package to repositories

* Build libsolv and the dependency solver part of the package kit for
the build platform.
* Add build tool get_package_dependencies. Given a list of package files
and a list of repository files it determines the additional packages
that need to be retrieved from the repositories and prints their URLs.
* Add rules to work with external repositories in the build system
(build/jam/RepositoryRules):
- PackageRepository declares an external repository with all its
packages. The URL of the repository file isn't specified. It is
computed from a given base URL and the SHA256 hash of the list of
package files.
- GeneratedRepositoryPackageList generates a file containing the file
names of all packages in a repository.
- IsPackageAvailable returns whether a package is available in any
repository.
- PackageURL returns the URL for a package.
* Declare the HaikuPorts repository for x86_gcc2
(build/jam/repositories/HaikuPorts/x86_gcc2).
* Add rule AddHaikuImagePackages to add a package to the image and rule
IsHaikuImagePackageAdded to determine whether a package has been
added.
* OptionalPackages: Remove all entries that just downloaded and
installed an external package. AddHaikuImagePackages can be used
instead and is used in the remaining entries. Also move the remaining
optional package dependency declarations from
OptionalPackageDependencies here.
* ExtractBuildFeatureArchives: Instead of the URL parameter a package
name must be specified now. This allows to simplify BuildFeatures
significantly, since there's no dealing with URLs anymore. "if" out
the entries that aren't supported yet.
* build_haiku_image: For the packages installed in system and common
resolve their dependencies and download and install them as well.


# 2ebcd86dfe64e3c44c30350b3bc83228eeb2b8d4 03-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add configure option --host-only

When specified, the build will be configured for building build host
tools only.


# bc96e8f30cd209672c33293f0e5c71e81027d3e2 06-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add more robust generic attribute emulation variant

The new configure option "--use-xattr-ref" enables an xattr assisted
variant of the generic attribute emulation. Instead of using the inode
ID of a node to identify its attribute directory, we use a reasonably
unique random 128 bit number, which we generate and attach as an
attribute to the node. This way, when a node changes its inode ID
(defragmentation?) or the inode ID of a removed node with a left-over
attribute directory is reused, attributes won't get mixed up.

The old method is still used for symlinks (since on Linux only
priviledged users can write attributes on symlinks), but those usually
only have a rather boring BEOS:TYPE attribute, so mix-ups wouldn't be
that problematic anyway.


# 59e2e2f3a7a7deb5f68a552c5327e54949ed0e80 03-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Adjust handling of package infos.

* add HAIKU_PACKAGING_ARCH, which is set to the target packaging
architecture
* introduce support for generic package infos, which are package infos
that are the same for all architectures, except for the declaration
of the package architecture itself
* move package info files underneath architecture-specific or generic
folder


# 204dee708a999d5a71d0cb9497650ee7cef85d0a 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use libbe_build also on Haiku

This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.

Also remove some bits of BeOS/Dano/Zeta build support.


# 748c10f2229c3b05047976b7a029a49caf935c12 06-Apr-2013 Jerome Duval <jerome.duval@gmail.com>

Added a configure option to activate Graphite compilations flags

* check if GCC actually supports Graphite flags when the option
--use-gcc-graphite is used


# a198eedcc7b7f5d19c0ffcbe7514aa88de2ec0cb 25-Mar-2013 Rene Gollent <anevilyak@gmail.com>

Fix incorrect version checks.

It's sufficient to simply check if the gcc version is 4 or higher since
we enforce the use of the latest ported compiler for the build anyways,
and these multi-level checks would fail in their current state if gcc
moved to e.g. version 5.0.


# a54db680badfcff579a4d629e4a44f2f304ce1da 25-Mar-2013 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Revert "Remove fno-tree-vrp compile flag."

This reverts commit e8d6e3fe3b85f88fe9506257b0cbbf5341a3a840.
Also added a comment pointing to the recent discussion.
See http://www.freelists.org/post/haiku-development/hrev45320-Yet-another-nonobvious-effect-of-ftreevrp-optimization


# 9595506fb8c04cc91b42d5942bd7abd8c310aa18 24-Mar-2013 Rene Gollent <anevilyak@gmail.com>

Fix typo.


# 5787587d539fec2666986b6b1f5e5bccd4928e88 24-Mar-2013 Rene Gollent <anevilyak@gmail.com>

Disable array bounds warnings on gcc 4.6. Fixes #9522.


# e8d6e3fe3b85f88fe9506257b0cbbf5341a3a840 24-Feb-2013 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Remove fno-tree-vrp compile flag.

My tests hasn't shown any problems with removing it.
Let me know if there still are.


# 058f84c3e160eefe9c084ae1a343eeba7afd2b5f 19-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

Follow up to hrev45127

* check whether HAIKU_STRIP variable is set
* use AddVariableToScript instead of AddTargetVariableToScript
since $(HAIKU_STRIP) isn't a jam target.


# 5f4df83cbdc3be3a9e3a3cc5831478877bc1186a 18-Nov-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed ARM build.


# 7be608abc4da7fa5912e4cd29d72c9b5434ce44f 30-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

HPGSTranslator: fix the build

* add missing definition since libpng upgrades
* don't treat warnings as errors


# c864ba1a2d8525aeabd6199c01675f70f5abd7bd 16-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

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.


# caf06f6e0603c94aefe0374ad54dcd86df110dab 30-Jul-2012 Matt Madia <mattmadia@gmail.com>

Added 'device' to the library name map. Fixes #8800 per korli.


# 385d69fc0177827257822eec1274f4286bc6600d 19-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Made it possible to build kernel modules for x86_64.

Added the necessary build flags for modules, and added a module (dpc)
to the floppy image for x86_64 builds for testing purposes. The module
gets loaded correctly and its code runs without issue. Only non-trivial
addition is the different method for generating kernel.so, this is
explained in the kernel Jamfile.


# 0962132cc60f7f93c696c16776f50ee66e4c65f7 10-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed Mac OS X 10.7 as a build platform (for GCC 4).

* Use gcc and g++ rather than cc and c++, as the latter now point to
clang with recent Xcode versions and compilation of the host tools
fail for various reasons with it.
* Replace the case-sensitive filesystem check with a more basic one,
as diskutil no longer supports the behaviour of getting info for the
volume that any path is on.
* Updated ReadMe with a correct list of prerequisites for OS X.
* GCC 2 builds are still broken due to a strange error that only
occurs with a GCC 2 built on OS X 10.7


# 898b29e3628ba9252c527e6296b88cf71d37b863 05-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added temporary stack trace function to x86_64.

Will be merged with the x86 one later on. Requires -fno-omit-frame-pointer on
the kernel build flags, GCC defaults to not generating stack frames on x86_64.


# da80a0500c33176998887bcae22828d9e997477f 02-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Preparation for merge of x86 and x86_64 kernel sources.

Since x86 and x86_64 share a lot of common code, x86_64 kernel sources/headers
are going to reside under headers/private/kernel/arch/x86 and
src/system/kernel/arch/x86 along with the existing x86 code. This commit
changes the build system to handle this. A new variable, TARGET_KERNEL_ARCH,
has been added. This is the name of the kernel/boot architecture directory
name, set to x86 on both x86 and x86_64. This is now used in all places where
TARGET_ARCH was used to get to kernel arch sources/headers (I've changed
everything necessary as far as I can tell). Kernel won't build for x86_64
at the moment as the sources have not been merged, loader does.


# 21769ef60394a854df725a2ad2ca995c4daa2042 18-Jun-2012 Pawel Dziepak <pdziepak@quarnos.org>

Add dns_resolver module

dns_resolver module provides a means for all kernel mode code to resolve
DNS hostnames.


# 8fe02d0c04e24c9b257d9e966c04b745f5ed254b 24-May-2012 Pawel Dziepak <pdziepak@quarnos.org>

nfs4: Initial commit

Empty file system with only mounting supported.


# 6f6d78e877c1a485d98de60395854a6d6de61c0d 25-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Cleaned up ELF64 address handling.

* platform_allocate_elf_region() is removed, it is implemented in platform-
independent code now (ELF*Class::AllocateRegion). For ELF64 it is now
assumed that 64-bit addresses are mapped in the loader's 32-bit address space
as (address - KERNEL_BASE_64BIT + KERNEL_BASE).
* mapped_delta field from preloaded_*_image removed, now handled compile-time
using the ELF*Class::Map method.
* Also link the kernel with -z max-page-size=0x1000, removes the need for
2MB alignment on the data segment (not going to map the kernel with large
pages for the time being).


# cfd1c1802f3c3250f96a14db3c65eed4667f09db 19-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Add -march=pentium to boot {CC,C++}FLAGS on x86_64, prevents GCC from generating SSE code.


# 8c0e3c951a108d09b85b57dea3f793dc4eed24d5 15-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Add -mno-red-zone to the kernel CCFLAGS/C++FLAGS.

The red zone is a 128-byte area below the stack pointer specified by the
AMD64 ABI that can be used by leaf functions for their stack frame without
modifying the stack pointer. It is guaranteed not to be modified by signal
handlers. This cannot be used in kernel mode code, as an interrupt handler
could overwrite it, so stop GCC from generating code that uses it.


# 65ad1ba320d945c9626f471c4fb0972ae49440b5 26-May-2012 Alex Smith <alex@alex-smith.me.uk>

Made it possible to build the bootloader when targetting x86_64.

* x86_64 is using the existing *_ia32 boot platforms.
* Special flags are required when compiling the loader to get GCC to compile
32-bit code. This adds a new set of rules for compiling boot code rather
than using the kernel rules, which compile using the necessary flags.
* Some x86_64 private headers have been stubbed by #include'ing the x86
versions. These will be replaced later.


# 388476449241fb0a6c6494b1833e314a2363cd13 11-May-2012 François Revol <revol@free.fr>

Include BoardSetup from BuildSetup

* while it seemed to work before, BuildSetup was actually adding includes from the default boot platform, before BoardSetup had a chance of changing it.


# 80a215135a78c28cc02c6ab5ece2d8551c56f2cb 28-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

BuildSetup: Enable other platforms besides u-boot on arm


# 60f75e901ce3063c63441ac644dd0e55a17d5d09 04-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

Merge liblocale.so into libbe.so.

* Make the locale kit a part of libbe.
* Drop the LocaleBackend kludge used from within libbe (and from
other places, too) in order to access system catalog strings.
This is now done via gSystemCatalog, which is provided and initialized
by libbe.
* Drop all references to liblocale.so from all Jamfiles.
* Add legacy symlink liblocale.so in order to keep optional packages
that rely on it in a working state.

TODO: the documentation hasn't been updated.


# eb5f36397841abfc740031fde56ca5e4dee9fdd3 12-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Fixes some occurrences of 'variable set but not used', disables Werror for problematic items.


# c59b279b7173bcafb8f266aa753b2f9e6c578849 19-Jan-2012 Jérôme Duval <jerome.duval@gmail.com>

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


# 17e82349a7dd58e6b09773ce081f7099d5615969 06-Jan-2012 Michael Lotz <mmlr@mlotz.ch>

Remove coreutils and tcpdump from the DEBUG blacklist.

The DEBUG build for these has been fixed in hrev43636 and hrev43637
respectively.


# 31c110be6eb8cad06da28299622f013059dac75c 28-Dec-2011 Urias McCullough <umccullough@gmail.com>

Remaining subdirs that cannot be compiled with DEBUG=1

Signed-off-by: Michael Lotz <mmlr@mlotz.ch>


# 8ad8d2e5d2d3ae81652486268ad8bf4f8d11c000 15-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Activate -Werror for POSIX locale backend and the code using it.


# 34b63b5b9daa0796faf1a53b3f9594bc025f2cc4 10-Dec-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Remove libbe_build linking m from earlier commit and add -lm to HOST_LINK_FLAGS on non BeOS compatible platforms.
(HOST_LIBROOT would need more work than just adding m so I went the easy route.)


# 692e9b11e41277d5d5f75e1ab282468f8e7d2cdd 25-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Build fix part 2: active libroot_build.a again:

* uncomment the building of libroot_build.a again
* add function remapper to HOST_STATIC_LIBROOT
* drop TODO about the function remapper not working with the static
libroot

Ingo: please review - I think this should work, but I'm not so sure
where HOST_STATIC_LIBROOT should be in the list of libraries of its
only user (<build>bfs_fuse): where it is now or right at the end?

As it is now, the resulting binary still contains references to
host-libc-implementations of close() & others, which are triggered by
the other libs (like libfuse.so). If I put HOST_STATIC_LIBROOT right at
the end, those references are gone, though. But which is correct?


# 55bc371993f0588118e3c684e18eae5b6e4a6e22 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Wrap POSIX FD functions in libroot_build

This makes opening symlinks work universally in the build system tools.
Two mechanisms have been implemented, both of which don't always work.
The first is remapping via preprocessor macros. This fails where equally
named methods are used (e.g. STL fstream::open()). The other is using
hidden functions in the new libroot_build_function_remapper.a that is
linked into everything that is linked against libroot_build.so. This one
fails for functions that are defined inline in headers (Linux/glibc does
that). Together they seem to cover our build system needs ATM.


# b33a1b1c5f9f5d625c3cdc7289efbac4974d360f 12-Nov-2011 François Revol <revol@free.fr>

PowerPC platform might not always be OpenFirmware


# 6c6edebce81308058689db33b14c82ec87566158 12-Nov-2011 Travis Geiselbrecht <geist@foobox.com>

[build][OSX] revise the darwin test to darwin10 and darwin11, not a wildcard

As PulkoMandy pointed out on IRC, darwin10 and 11 (10.6 and 10.7) are at least partially 64bit, so
the test only applies there. When darwin12 comes out it'll have to be fixed.


# b2916b0c6eaaa2e6e1b8efd3849eafca45718ed4 12-Nov-2011 Travis Geiselbrecht <geist@foobox.com>

Fix build on OSX Lion, which has apparently bumped the darwin version to darwin11


# cd3e09313359bff5c6752a322818f73991a5b5e0 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix x86_64 BuildConfig issues

* Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
accordingly.
* Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
former does now state whether the platform is effectively treated as
64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
is actually 64 bit, but 32 bit mode is enforced.


# 1c2d7d3a86c79828aff76b35b2dd4085c72bfb2f 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# 174240f9be1581efbe64d83bc3c4658c1d185362 06-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move DSO policy changes down a few lines to go under C/C++ flags section
* ensure host isn't darwin as Apple doesn't use binutils


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43202 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0ea2063b7e341348b50fba7ecfe18c19f1ddcc2 04-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* undo r43186
* fix build due to changes in DSO Linking the right way
as per bonefish.
* we may need to check host GCC version here... can't find
when this option was introduced
* fixes #8031


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43191 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d980c7f9da5fd36809c981507e3c62245100460 03-Nov-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Reworked the way HAIKU_CCFLAGS, HAIKU_C++FLAGS and their kernel equivalents are set.
The flags given to configure are kept and the build just adds its own flags onto these.
Also the kernel flags are also based on the flags given at configure.
I suspect this will be needed for llvm.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e88ace80821c27c5d8757b3edd626f3976bf05da 02-Nov-2011 François Revol <revol@free.fr>

Leave a bit more room for the boot drivers tgz archive, but sadly it's not enough.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eab1b0e87e6cbaf1d3fdc6104b54597d27648896 29-Oct-2011 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

BuildSetup wasn't caring about HAIKU_CCFLAGS or HAIKU_C++FLAGS set at configuring time.

A bit out of my comfortzone with, so please tell me if I'm wrong.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fdecfdb35c43042531ab1722ba068cc69798a157 24-Aug-2011 Matt Madia <mattmadia@gmail.com>

Increase the size of the default raw and default vmware image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42685 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4dbc2457985f94d2aa46668739f73231b4b2edfb 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Wrap POSIX FD functions in libroot_build

This makes opening symlinks work universally in the build system tools.
Two mechanisms have been implemented, both of which don't always work.
The first is remapping via preprocessor macros. This fails where equally
named methods are used (e.g. STL fstream::open()). The other is using
hidden functions in the new libroot_build_function_remapper.a that is
linked into everything that is linked against libroot_build.so. This one
fails for functions that are defined inline in headers (Linux/glibc does
that). Together they seem to cover our build system needs ATM.


# ba65f946679a3171d2f7525a7a3be131e7f701c9 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix image rules wrt system/ relative entries

* Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS
containing the directory tokens relative to the container root to
refer to system.
* Use the variable in *ToContainer rules that need to put something in
system.
* AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage.
* AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids
special-casing in the boot loader for packagefs.


# 355b8ba7553a58e35406084ea875f8f3f519a12b 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Build a system Haiku package

* Create rules (build/jam/PackageRules) and a script,
build_haiku_package, to build hpkg files.
* Move all rule invocations that copy files and created symlinks and
directories in the "system" directory from HaikuImage to
HaikuPackages, which creates a package "haiku.hpkg".
* build_haiku_image: Comment out adding the copyrights info to
AboutSystem for the moment.


# a1cada9784bda2472dcfc4c546bd0840b4ceeb4d 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix x86_64 BuildConfig issues

* Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
accordingly.
* Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
former does now state whether the platform is effectively treated as
64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
is actually 64 bit, but 32 bit mode is enforced.


# f1eeb32334a0d50d9f558095c85d99ff4316e219 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# 3dfd9cb95ce45f59160d50975210bc55e3fc0709 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 4cc4f7bb1845789f95d5ebc68cbb0b859e72f6ff 14-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added KMessage to libroot_build.
* libbe_build: Where possible we directly use the actual Haiku headers and
sources, now. In the headers/build headers we just include the respective
Haiku headers as needed. That still allows overrides where necessary. The
intention is to make it easier to keep the build stuff in sync.
* Fixed a few printf() format and signed/unsigned comparison warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42179 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb7a272f4a94bd5da9e37f4a63d02053346731df 12-Feb-2011 Jérôme Duval <korli@users.berlios.de>

bumped up default image size to 230MB


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40459 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 500bb6305c339017d7d7302dc1f63ac90443f267 21-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* WIP-commit of the first parts of the package kit and the pkgman
(console-)tool


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db2b2bd629e6684e40d6cb3a95ab977d793c3035 02-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Resolved TODO (gcc 4 .eh_frame support).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9217a573f8a7e42e5b65c0c43197a8862cb26081 31-Oct-2010 François Revol <revol@free.fr>

The 68k bootloader will get fatter with video handling...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 710dac2313c46704bb8ccd2512838cce82a7a1ef 27-Oct-2010 François Revol <revol@free.fr>

M68K: Do not force HAIKU_BOOT_PLATFORM and make the floppy image size depend on it. One should use HAIKU_BOOT_PLATFORM={atari_m68k|amiga_m68k} now instead of setting TARGET_BOOT_PLATFORM.
Note we aren't yet at the point where jam can make you a floppy image due to broken vm stuff.
It might be interesting to also switch the extension used on the image, amiga emulators prefer .adf for ex.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc7d899023c58d4238c8ad48aefb56ba5281be23 23-Oct-2010 Rene Gollent <anevilyak@gmail.com>

When using gcc 4, disallow use of CFI asm for now. This renders executables
generated by Haiku's build sys usable with our Debugger, pending support
for gcc4's (different) exception handler frame format.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39071 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d26fafe96bbde3f6faefc85439a035c8a81fa31a 26-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* The arp module gives warnings in GCC4, so the typo was actually needed; this
temporarily fixes the build again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38398 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 40b788d449975fe30edfc6adceb543422f53ada3 27-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed typo that prevented the datalink_protocols to be compiled with -Werror.
* Enabled -Werror for the protocols.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34d9bfb077e6ca40cc502b594546aec251c8510a 23-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Missed this when working on warnings a couple of days ago:
* enable -Werror for print add-ons and wonderbrush translator add-on

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eba0c4d6d7416e3844d904df6aab27092f92adb3 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* enabled -Werror for all apps

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3605272d0f5468479ac2e7e3ad87b79a041e35ba 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* turns out src/kits/tracker was low hanging fruit, as it didn't contain any
warnings at all - enabled -Werror for all kits

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1662a36480c4c8f168be3b1938515a5f90fb3b58 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix the single remaining gcc2-warning in media kit and enable -Werror for it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38266 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 269ebc04b9082e0081f3660bd727d9a6bc4a683d 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fix #6373, second try
* make BDADDR_* macros refer to value types instead of addresses
* adjust all interfaces using bdaddr_t* to use (mostly const) refs instead,
which IMHO makes the interface & code clearer
* that got rid of a couple of const incorrectness casts
* some cleanup along the way


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38265 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32a2294fdc40a8ef9e3360aa85d0b7efb0c930b9 19-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* revert r38213, as it introduces initialization problems

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38263 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0ef64750f3169cd634bb2f7a001e22488b05231 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix #6373 by switching the BD... macros to take the address of corresponding
constants, which had to be defined in several places in order to be available
in the kernel addons, network protocols and the server/kit.
* enable -Werror for all servers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38213 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f62243f372b69918512816a43173b5456c764b9 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix warnings in Keymap preflet about hidden virtual by renaming SetFont()
to SetBaseFont() (and fFont to fBaseFont)
* enabled -Werror for all preflets


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37cebf6883e52061e1c31f263eacdd2d04078e4e 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed all warnings in FileTypes preflet and enabled -Werror

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2655efc3958f7e000e1a5b3c66c2fb9b469f03ac 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fixes to Notifications preflet
* CID-1501: protect against dynamic_cast potentially returning NULL
* additional style fixes
* fixed all warnings and enabled -Werror

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 529fd9af5da4e9a664a34db1b60c5e816c4e4799 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fixed all warnings in Shortcuts preflet and enabled -Werror for it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0900cb3eada54d4a1227ad700562feb354e0e7f 29-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed a warning in the opengl preflet and added the current
state of things for all preflets to the EnableWerror
declarations


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37814 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 19aa183a5dd0e530669457a07f66fd5222fb002b 29-Jul-2010 Matt Madia <mattmadia@gmail.com>

Increased the size of the default image. Upon first boot, less than 800 KiB was
available for a gcc2hybrid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37811 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4782f2be6c8c82d41e4525afebb71812aee16e4c 27-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove now unneeded (hopefully) timezone data


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37769 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c090a0fd840440a924c08cc9bc6c256d16635a7a 26-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* updated ICU build packages with newer builds that try a bit harder to avoid
warnings and incorporate some of the ICU-patches we had in our repo before
we upgraded to 4.4.1
* fixed remaining warnings when building locale kit
* activated EnableWerror for locale kit
* added 'Unicode' license, which is the second license in use by ICU


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37763 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 266c6cf46455ca899e7b7432146d2f4ac7491e39 25-Jul-2010 Matt Madia <mattmadia@gmail.com>

Remove useless commented code. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f75e967c86e8d354ad1a06eea57a46afa9a6a4c 25-Jul-2010 Matt Madia <mattmadia@gmail.com>

Introduced a new variable, HAIKU_INCLUDE_TRADEMARKS. It used to include/exclude
files from HaikuImage and is set when HAIKU_DISTRO_COMPATIBILITY is 'official'
or 'compatible'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c28b85ef3f99bc43ad623f52bf4643b92623040 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* one more Werror-related build fix for bluetooth

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eddec292d5dd8251a00851880e16e6a5c07c1e3f 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37670 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be6c5ba6a7bfd94957d7c5d305d996e5f96a180c 19-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also add debug_server, input_server and cddb_daemon to the WError list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37593 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 016386c6d18a91b68fc2deca5945fa635e80048b 18-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add midi_server, print_server and registrar to the WError list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37592 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e8e2989d67f1d6ac3f11e8e78e3568e1b75e794 09-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Use -WError also for libdevice and libtranslation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bbe3922f8f60c0c6cd2de69669dd9f81d728f04 09-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Enable WError for midi, midi2 and print kits (tested with both gcc2 and gcc4)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37448 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38319af892499d033969bb527995a4653d64dd1e 02-Jul-2010 Matt Madia <mattmadia@gmail.com>

Updated HAIKU_DEFAULT_IMAGE_SIZE to 200 M. For some reason, building it in
Haiku causes the image file to need 193 MB; building it in FreeBSD requires
only 180 MB.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37343 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76a4353b79418ab1d9050821a5578bef0d40df0c 01-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Add a new way of using the locale kit with static accessors instead of global variables. This has the following consequences :
* Applications don't have to declare BCatalog fCatalog themselves, it's now done automatically
* Libs and add-ons can be localized just the same way (except static libraries)
For now this new system is yet disabled as I'm looking for some peer review before going on. To enable it you have to define B_TRANSLATE_USE_NEW_MACROS in each file doing catalog access. This will not stay, I'll update the
other apps to use it.
The linking in jamfiles must be not only with liblocale.so, but also liblocalestub.a. Not sure how to handle this for user-side applications. Libraries are also required to provide a MIME signature to use any catalog.
The locale preflet is updated to the new system (as a test). Othe rapps will follow if everyone is ok with this approach.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37323 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97901ec593ec4dd50ac115c1c35a6d72f6e489a5 11-May-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Nathan Mentley:
* Added a few header files in headers/posix/arch that'll allow for an x86_64
haiku target to be compiled. fenv.h is src/lib/msun/amd64/fenv.h from
freebsd.
* configure: Added support for x86_64 arch when running
build_cross_tools_gcc4.
* config[_build]/HaikuConfig.h, BuildSetup: Added x86_64 recognition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36794 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b28334ae8886e1f3534a8d289a645b2852d4898 05-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed PackageInstaller build by adding liblocale.so to the library name map.
* Ordered the map libraries alphabetically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36620 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adfe871902055d8b6e4638f749fc2f36467ebdcd 25-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added libdebug.so to the library map.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35952 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26b5ececca97f8adcb30fbb21727070d6a70acff 15-Mar-2010 Matt Madia <mattmadia@gmail.com>

Create "anyboot-image" and define build profile rules to utilize it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 25daf1cf1e5f1872aa50cd0a0ec5ef959a0d4a0e 03-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Build libsupc++.so and libstdc++.so only when they aren't provided by the
compiler. Fixes #5322 (the ones in /boot/develop would be overwritten).
* Simplified the Jamfile building these libraries.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35396 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce89123828b772b371f920c248748628c051d75c 20-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch partially by Samuel Rodríguez Pérez:
* Added amd64-* as supported host gcc machine.
* Added work-around for AMD64 FreeBSD 8: It only has a static libsupc++,
which prevents us from building shared libraries, so we use the shared
libstdc++ instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f7b2c67b0b92af7644c62775430133a2a969631 11-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* gcc 4 features built-ins for atomic operations. If the macro
B_USE_BUILTIN_ATOMIC_FUNCTIONS is defined most atomic_*() functions are
redefined as macros using the built-ins directly.
* Enabled that feature for the x86 build. Might work on other platforms as
well, but that needs to be tested.

No significant speedup for the -j8 Haiku image build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35018 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a837b39106d608ae74f49bf5e67b62399e9a3cd 11-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Tell gcc to produce code for Pentium at least. Doesn't seem to make any
difference performancewise though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35017 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eb548a8aeb5aae0f8dd1ba21de0499b421c8a48 11-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed useless assigning of the default values and use a switch for the
architectures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35015 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e5498e4c94ca459ddb87344e26f749750bfdb03 04-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Färber modified by myself:
* Determine HOST_LD and HOST_OBJCOPY in configure.
* Removed Solaris ld work-around in BuildSetup.

The change requires configure to be re-run. Alternatively HOST_{LD,OBJCOPY}
can be added to generated/build/BuildConfig.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34892 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82cbfd3573769eae988d63fd31c7e645a10a1ffb 02-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

first stab at fixing #5091:
* let BuildSetup set HAIKU_HOST_IS_BIG_ENDIAN according to HOST_GCC_MACHINE
* minor cleanup in BuildSetup
* when building ICU, set the endianness indicator suffix according to
HAIKU_HOST_IS_BIG_ENDIAN

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34864 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b6f98637b5cbfb4108f16517f1c9549b7282e72 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Färber: Fix mixup of GNU and Sun linker on OpenSolaris.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34726 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b58d8440cdd5ffb87ff7ec5e8938818a68ec261 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adf0692b5176fabaeb35796ffddb05bcd686302b 20-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the DEBUG_PRINTF variable support.
* Simplified the HAIKU_INCLUDE_PATENTED_CODE variable support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e001389fc70748696718745993969781c0483af2 19-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added shared headers to HAIKU_PRIVATE_KERNEL_HEADERS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4dc69971bc53e4f4a1f770d505966ac315ac05f8 06-Dec-2009 François Revol <revol@free.fr>

Force 64bit for i686-apple-darwin10 (OSX), since it seems to fool everyone about it being still 32bit (well the kernel maybe but not the rest). This makes the build go further along on OSX 10.6.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc7864091e2463c0e446f8b3954df4d29e9465af 02-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Attempt at allowing to use C++ structures in C only code: We use the
CreateAsmStructOffsetsHeader mechanism to generate a header with macros
defined to the sizes of the structures we're interested in and when compiling
in C mode define the structures as "struct { char bytes[size]; }".
It works in principle, but due to how jam works, one would have to specify the
dependency to the generated header for all sources that include it directly or
indirectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba829ba0f904ac74f5985e604bb133496d8853d7 01-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjusted gcc2 work-around to renamed file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34418 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6236ae85702a77a03b8baca3f40eb684fdf9cfc2 25-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Also include HaikuBuildCompatibility.h on a Haiku host platform and
conditionally define some of the new stuff there. That fixes the build under
a r34172 Haiku, though it also causes some problems that needed working around.
Haven't tested under newer Haiku revisions yet. Will do tomorrow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f1e464a8c6cca20b7cead1ea7d55f44b54df3f5 25-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* We need to define __STDC_FORMAT_MACROS, and __STDC_LIMIT_MACROS under BeOS
compatible platforms as well, Ingo. This fixes building Haiku under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a79e0ef1ad3d400d76d865c341a9f03521121143 25-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Also add __STDC_LIMIT_MACROS to the host defines. It gives us macros like
INT32_MAX.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34240 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bdfce0e900dc66d998e21ef11913b1f45bdf542e 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Define __STDC_FORMAT_MACROS directly in HOST_DEFINES.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34217 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a85cf9d793c5c1dde0bd4887e7c66d11ed2c07ec 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* configure: Pass gcc's host machine string to the jam build system.
* BuildSetup: Set jam variable HOST_PLATFORM_IS_64_BIT and add host define
HAIKU_HOST_PLATFORM_64_BIT if the host platform is 64 bit. Removed the
check from BeOSBuildCompatibility.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9d14ecca03d3a599e063bfe597e116c789e16db9 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Build package and packagefs with -Werror.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e55dd5f8ef27965bc989a5a8f11ff387c44e9231 23-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

* When compiling on Haiku as the host platform, set HOST_LIBSUPC correctly.
This is important when setting up the TARGET_LIB* constants later, in case
the target platform is not "haiku". (i.e. libbe_test).
* Added TODO about HOST_GCC_BASE_FLAGS being wrong for GCC4. I couldn't find
the proper fix, but it is important whan compiling libbe_test on Haiku.
I worked around this by having the constant defined correctly for the
problematic file. See the TODO comment.
* Small cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33246 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b25f8906fbbc5f1501ba22fad6520e156c53ef23 19-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Fix build on Haiku. Some tools were missing libstdc++ and beos-compatible build platforms weren't setting the host compat lib dir at all, resulting in the icu build libs not being found.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b15449d320585c3fc3d521672319a34f0729253 19-Sep-2009 François Revol <revol@free.fr>

Due to the ICU merges the default image size is too small now, bump it up!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33184 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10c8ce934fbc23a475f9857fb371f9a04f2639e8 27-Aug-2009 Michael Lotz <mmlr@mlotz.ch>

Globally enabling the ATA stack now so we don't get inconsistent states between
the alpha and non-alpha profiles.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e8130d1f0ec706a252ab5f255982ad91e955950 21-Aug-2009 Jonas Sundström <jonas@kirilla.com>

Adding routerboard_mipsel platform stubs and linker script.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67838392dcea5e9a2ee3a4d30754c32fb9b0274c 21-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied stippi's no-patents patch, but without the ffmpeg part, as that one
is obviously already configured not to use patented code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32577 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c69b5b6c0e7b481a0c43366a1942a6055cbb864 19-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Made the libbe_test environment basically working under Haiku - to actually
make it work, one would need to use versioning for all libbe symbols. This is
worth an 8k price per file that links against libbe.so, so I didn't want to
commit this as is. An alternative to this solution would be to write a
separate application that is responsible for the app_server's window. Comments
welcome.
* Removed BeOS compatbility of the libbe_test stuff.
* Renamed the libbe_test targets from *haiku* to *test*, ie. libbe_haiku.so is
now called libbe_test.so, haiku_registrar is now test_registrar, etc.
* This also removes BeOS compatibility from tracker/FSUtils.cpp (all BeOS
compatibility should be removed, but I don't want to make Alexandre more work
in his branch, and it's not urgent at all).
* Replaced the former "run" scripts for the test environment with a single
run script (see updated NOTES file).
* Removed the libbe_test target from some applications - this was only to help
developing them under BeOS, and is thus no longer necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adc5ba48dcbde91502a3e60a17f5dd9855ee34ef 18-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Reverted the smaller boot image - it doesn't seem to work for Stefano (gcc4?)
anymore with the small size, and it didn't fix the problem I originally hoped
it would.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# feb750d3311808b62ca2e2f135f4a05a3608716e 12-Aug-2009 François Revol <revol@free.fr>

[ARM]
- consolidate board specific definitions into build/jam/board/*/BoardSetup to avoid duplicating address values everywhere,
- add various addresses, boot script, custom C/C++ flags and SD card definition,
- not sure BoardSetup is included at the best place though,
- replaced board-specific ldscript with passing the loader address directly to LD from BoardSetup,
- added haiku.mmc target which generates an mmc/SD card image with a FAT partition with the files needed to boot for the board, should later be integrated with haiku.image with the BFS partition offset passed to bfs_shell, requires apt:sfdisk,mtools on GNU/Linux,
- added some more rules, one to build a script for the SD image,
- fake a NetBSD loader for now, U-Boot doesn't know haiku, and we'll need a way to pass the tgz image and RAM size, we'll either use standlone way (usual C argv[]) or the NetBSD args,
- style fixes,
- 80 cols, /me pets Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32284 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f1460bceee87a897676c1f370d4211dd8f73e8e 12-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed the (intel) gart stuff from the floppy image. Not sure why this was
on it. With the other changes already made, we can now use a 1440k boot image
for x86 as well, again.
* If you build a CD, you'll have to take extra care to see whether it still fits
on the floppy or not - space is really tight already.
* Made USB support optional for the CD-ROM. It's turned on, though, since we do
want to support USB-CD-ROMs by default; this is just something you can use
once in case we need to enlarge the boot floppy to 2880k again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0b9925be1be2bccc9d2ae1def0b424c99b0426c 05-Aug-2009 François Revol <revol@free.fr>

Introduce a new level of portability: boards.
Since we don't support Flattened Device Trees yet (and they don't solve all the issues), we need a place to hole board-specific config, which are different even though we use U-Boot on ARM. Things like cpu & mmu type...
U-Boot doesn't really help us there anyway, it only passes a few board infos (RAM banks & the bill), and optionally other stuff if we fake a linux kernel or netbsd loader, but still not enough. FDT support isn't available for ARM in U-Boot yet either. So for now, and likely for stuff we can't get from FDT, we'll put board-specific config there.
Unlike desktop machines were we want a single kernel per arch, we'd rather have the kernel built for a single board without having to handle detecting mmu type at boot and switching calls like I did on m68k.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f823c251bc76468635456d845ef60720e7cf266 22-Jul-2009 François Revol <revol@free.fr>

Disable -Werror for m68k, arm and mipsel since we aren't really ready for it and we use #warning to mark things to write...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7043bc68527055dbdd5c536ebea8c6af3083f526 22-Jul-2009 François Revol <revol@free.fr>

[GSoC] [ARM] Patch by Johannes Wischert.
Add ARM defines to the build system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31692 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d5c24e533eb14b7b8a99ee9f3ec9ba66335b1e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa1f661460034468d1406e4286574a200e0c6b24 21-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Quick fix for the broken GCC2 build. The guilty one might want to have another
look at this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a474455132437ce7d22ff9f7e3457dc291abbf66 24-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the way the zip archive with the alternative gcc libraries is built.
Now that's done like building the network boot archive, which gives us a lot
more flexibility for defining its contents.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f604da453fce086b5f7d4b4afee3cf09402a656d 24-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Eric Petit: Fixed the library path for the build tools on Darwin.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30845 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c154b94624d37e53245540edfcdc6625e906987f 21-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added haiku_version_glue.o "glue code" containing the Haiku/ABI version
symbols recently introduced. Until init_term_dyn.o is linked into kernel
add-ons, too, we link with haiku_version_glue.o, so we have those symbols
in kernel add-ons as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30818 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 003ebb0e834b8bc6dd69524cc5ffd4860b0466c4 19-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Also define the build system variables TARGET_STATIC_{LIBSTDC++,LIBSUPC++}.
* runtime loader:
- Fixed gcc 4 warnings.
- Enabled -Werror.
- Renamed all remaining *.c source files to *.cpp.
- Implemented GNU style ELF symbol versioning support.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 226136446a0a436b34a160a6def44a7b78708493 02-May-2009 Jonas Sundström <jonas@kirilla.com>

Prepare mipsel for jamming. Adding mipsel target case, a simple boot platform and a -fno-pic setting for the kernel.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30585 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc80fc524437a88ef31afef26b0bd506cf3474a4 28-Apr-2009 François Revol <revol@free.fr>

Pass ATA_STACK from jam now, so one can override it with HAIKU_ATA_STACK=1 in their UserBuildConfig. Probably needs to conditionalize some targets on it too...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30478 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 357179de85e0185c49298aae73038b31f6822488 27-Apr-2009 François Revol <revol@free.fr>

Use 150kB tgz offset for m68k.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30470 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eae7ffa1ed8a33dce32d351c57658968f70b0f5 27-Apr-2009 François Revol <revol@free.fr>

Use arch specific floppy image size, Atari machines don't know about 2.88kB... plus it still fits in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30469 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77e84f219a28bcb45d9287a756e312c1d19e6623 13-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

configure does now check the yasm version for target architecture x86, and
sets the HAIKU_YASM build variable, which will be checked in BuildSetup.
Re-running configure or adding the variable manually to
generated/build/BuildConfig is required.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30145 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 317bd7dda3eb26d4d24ba5b0a831461119f70d34 03-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29876 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a8f8b7b138c9b0fb63f9503162a95bc695b112c 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Enabled -Werror for userlandfs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29405 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37aefc9c6f6dc3456d74dbccc3a606e30192baf4 23-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved jam argument processing to new build/jam/CommandLineArguments.
* Check the first argument for "help" as well. If given print a somewhat
helpful text. Consider this my excuse to close ticket #1883. :-)
* Track available and added optional packages and fail, if an optional package
is requested that doesn't exist. Closes ticket #3332.
* Check for duplicate build profile definitions and fail if encountered.
Closes ticket #3333.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29298 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2c3dec9239e1035449f39f3747a4039a9cdc38c 14-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

Preliminary support for building ISO only Haiku CDs. Not working completely
clean yet. Provides a haiku-cd target and creates a bootable image using mkisofs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb09230bae52bcdf045e1f1920b67205c29adc8 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 374c632c555507d99a32686d56d1ddc30cd7432d 25-Jan-2009 Michael Lotz <mmlr@mlotz.ch>

Rumour has it that we now have Haiku hosts with GCC > 2 as well.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64f7e20f9ce9c068586e0ed2995d7c8717d373ac 22-Jan-2009 Michael Lotz <mmlr@mlotz.ch>

Add -ffreestanding to kernel C/C++ flags. This means that ISO conventions like
the main() signature are not applied and do not generate errors when violated.
Our bootloader has a non-standard main() signature for example, which is of
course fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28983 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad06cdd1396c8d7fda28832c3fd33963c6c06d5b 09-Jan-2009 François Revol <revol@free.fr>

Move the tgz archive offset to 300k, should fix CD boot again, but it's getting tight.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28862 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c532eedf1f8919ce625ee33d6c8ceaf7fea836f 14-Nov-2008 François Revol <revol@free.fr>

Make the tgz archive offset in floppy image settable. Set it to 270k for now, until zbeos gets some diet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28657 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7d3cf5b8aef81654f2e3416034302bb63b3232c 06-Nov-2008 François Revol <revol@free.fr>

First attempt at a PPC bootable iso, doesn't work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28543 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 889903f9ddd32ff7a953b3093b6e9bb4ebe2fd65 23-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildConfig needs to be included before any other rules file. That's why
the wrong Link actions were used (always the no-attributes-support ones
which remove the target first), for instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28304 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ff1beff8d1700374d7503ceb7bbc6ceae99feb99 20-Oct-2008 François Revol <revol@free.fr>

Add OpenBSD to the list of supported build platforms.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28251 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4b00ffcea0ca9f38379cab6a1fc5756d6a01d1e 16-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Added bfs to the -Werror components.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a96cedf6ef7069d5b8a59fcc1a29066f8f96906c 14-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Improve indentation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9de80bbb8444f9d3154300123f8cb04766de81f 13-Oct-2008 Jérôme Duval <korli@users.berlios.de>

* updated build opengl headers to 7.2
* added opengl to build be api headers
* define USES_BE_API for gen_matypes
this should fix the build for Linux which don't provide GL headers :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28050 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8443ac689e2e4a17ae5f3810a93a5d6bc4c09e38 02-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* -Wno-multichar was added multiple times. It's now only in the
HAIKU[_KERNEL]_WARNING_CCFLAGS.
* Added -Werror for various parts of the source tree for the gcc 2
build. Feel encouraged to add more.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27842 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ba29206b0e8b552341887ba0b334ab4bfc25d1d 01-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Enforced 80 column limit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27837 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 127456e5b57da8bdb9827e143a8064001628414f 19-Sep-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Added user-defined image volume label support.
The default label is as previously: Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27636 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc66988f36e924bf46a45d1e8b901fbd99debdaa 12-Aug-2008 François Revol <revol@free.fr>

Bump default image size to 128MB


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d121ec0678890dc6c2b19bdf11a7b9e02785462 09-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Faerber with changes by myself: Work towards Solaris
build platform support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26899 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f104a754b0c1249fff1c19235fd9d133c99e1f1 26-Jul-2008 François Revol <revol@free.fr>

- Cleanup
- For simplicity we'll force using only insn common to 020 to 060, mostly to avoid unimplemented floating point ops in the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26647 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba97f78287a4050f033a22729ee124d096b7effc 23-Jul-2008 Maurice Kalinowski <mauricek@nowhere.fake>

julun+mauricek:
* add cygwin specific options.
* Cygwin cannot handle -fPIC option and throws warnings, thus we only use it on non windows platforms for the host tools.
* Windows uses PATH instead of LD_LIBRARY_PATH, so before calling a host tool this environment variable needs to be expanded... Brilliant...
* Using jam on Windows is kind of complicated, as the cygwin included gcc creates executables with a .exe extension. When jam parses dependencies for being up to date it ignores this extension again and tries to rebuild the executables again and again. This hack removes the extension after successful linking. Though jam has a SUFEXE variable for cygwin builds, we cannot use this one directly as crosscompiled targets do not have an extension, it is complicated to use the same jam for both platforms. A more clean attempt would be to check for the extension on each host target depending on the platform. This should be fixed later on.
* Btw. Say hello to Haiku compiling successfully on Windows :) with one patch to be discussed for jam...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26590 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21951f84dcd1b543f892b4d824ab91525c49c423 15-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Add -Wno-multichar to the kernel warning flags to avoid useless warnings.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26418 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa385c7cb2ebfa3aa8e6467832e109f752b507a5 23-Jun-2008 François Revol <revol@free.fr>

m68k build flags... same as default for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26104 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf4242194b63b732d8a34f33199d51dd3533a678 18-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Define TARGET_PRIVATE_SYSTEM_HEADERS for target libbe_test.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07ddcd64cfef3d135917011878bc7c2cb027b397 14-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed libnetapi to libbnetapi. Create a symlink in the image.
* Extended R5 compatibility check to also consider calls from
libbnetapi.
* Fixed incorrect R5 compatibility check in BNetEndpoint constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae28f0aebdd080888714a4cdd4698e120b049381 14-May-2008 François Revol <revol@free.fr>

- add sunos as possible host
- fix build (at least CodyCam), NETAPI lib is now libnetapi for Haiku...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25488 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b202f4e3da73d4c131355fcd82b792d153f84f6 13-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new header directory headers/private/system which is supposed
to contain headers shared by kernel and userland (mainly libroot).
* Moved quite a few private kernel headers to the new location. Split
several kernel headers into a shared part and one that is still kernel
private. Adjusted all affected Jamfiles and source in the standard x86
build accordingly. The build for other architectures and for test code
may be broken.
* Quite a bit of userland code still includes private kernel headers.
Mostly those are <util/*> headers. The ones that aren't strictly
kernel-only should be moved to some other place (maybe
headers/private/shared/util).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25486 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de39891a3ccf1245eb430018d4281ff381fcc9aa 19-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Add the "-fno-tree-vrp" option when building with GCC4. It seems that the
value range propagation optimization results in broken code with the GCC4
version we are currently using. Added TODO to retest/remove this flag when we
update our GCC4 compiler.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25054 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa01c3e72e2115d0caa4999e5b2e762544db7bf2 18-Apr-2008 Michael Lotz <mmlr@mlotz.ch>

Disable strict aliasing on GCCs newer than 2 until we have analyzed and fixed all aliasing issues.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0a9d225d3e48f81429a769b8c0ed5c961bf1516 02-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a new fancy build system feature called "build profiles".
Especially people building various kinds of images with different
settings may want to have a look at the respective section in the
UserBuildConfig.ReadMe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24757 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8cb30712e09e13b6eeb08f225810875aea1e6f8 02-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
should be on the image (executables: 755, others: 644). Otherwise only
root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
for adding additional users and groups (by default only root user and
group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
a wrong variable name before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24750 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 071f9c3aa2c2215feaa56a8ff59557dd00b27f37 27-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Build configurations shouldn't be done in svn controlled files, so I
finally created a solution to avoid that: Header files that contain
configuration settings (and nothing else) go to build/config_headers.
To change settings, create a directory build/user_config_headers (which
is ignored by svn), copy the respective header there and modify it at
your leisure. Currently only tracing_config.h has been moved to the new
location, but more files will follow eventually. It is also recommended
to move optional macro definitions in Jamfile (as for BFS) to a config
header instead; the build system will then automatically rebuild on
changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ba49c35b3ad2588217c45e3aa02144c7b2124f0 22-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
- Added build tool rm_attrs, a simple "rm" replacement, which also
removes the attributes directory for a given file.
- Added build/scripts/rm_attrs shell script, which wraps the
invocation of the rm_attrs tool. If it doesn't exist yet, the
ordinary rm is used.
- The RM jam variable refers to the rm_attrs script now, i.e. whenever
something is removed by the build system, the attributes are removed
too (if the build tool has already been built, that is).
- Removed the shell function attrrmrf() in build_haiku_image. We use
the rm_attrs tool instead, if necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24528 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 404a0fea4653b894fabf4d5fee8e73df7bf84e75 16-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Second stab at reorganizing standard/gcc headers. This time it not only
builds on Linux with gcc 2 and 4, but the images do even run. :-) Not
tested on BeOS.

* Removed stddef.h and stdarg.h. They are provided by the compiler.
* Adjusted size_t.h, wchar_t.h, and wchar.h accordingly.
* Made stdio.h avoid gcc 2.95.3's fixincludes hack stdio_va_list
* Added gcc 2.95.3 headers to the repository. They are used instead of
the headers of the gcc 2.95.3's we use to compile Haiku with. Should
avoid build problems with the BeOS native compiler.

For sake of personal recreation you can rebuild the cross gcc 2.95.3,
but the only thing that changed is its header directory
(lib/gcc-lib/.../include), which isn't used anymore. Replacing it with
headers/build/gcc-2.95.3 should have the same effect as rebuilding, BTW.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24413 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ed64004cc51a220be8c9d1860aab494d56db063 01-Mar-2008 François Revol <revol@free.fr>

Rules and targets to build a boot CD iso... use:
jam haiku-boot-cd


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24201 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22ec1df3f0bbe72c63303d1df4ca0977c0d17782 01-Mar-2008 François Revol <revol@free.fr>

Add rules to create a boot floppy (use jam haiku-boot-floppy), in preparation for CD booting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22d7fdd958d1ffa36231c41e53647a32307c37ff 19-Jan-2008 Jérôme Duval <korli@users.berlios.de>

fix typo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c5a61a998852cc92b0797a07675e19b3c29da68 12-Jan-2008 François Revol <revol@free.fr>

HAIKU_BOOT_PLATFORM was wrong...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23458 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34b3b26b3b8c46ba46ddde037b10dd173f4936d6 10-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged branch haiku/branches/developer/bonefish/optimization revision
23139 into trunk, with roughly the following changes (for details svn
log the branch):
* The int 99 syscall handler is now fully in assembly.
* Added a sysenter/sysexit handler and use it on Pentiums that support
it (via commpage).
* Got rid of i386_handle_trap(). A bit of functionality was moved into
the assembly handler which now uses a jump table to call C functions
handling the respective interrupt.
* Some optimizations to get user debugger support code out of the
interrupt handling path.
* Introduced a thread::flags fields which allows to skip handling of
rare events (signals, user debug enabling/disabling) on the
common interrupt handling path.
* Got rid of the explicit iframe stack. The iframes can still be
retrieved by iterating through the stack frames.
* Made the commpage an architecture independent feature. It's used for
the real time data stuff (instead of creating a separate area).
* The x86 CPU modules can now provide processor optimized versions for
common functions (currently memcpy() only). They are used in the
kernel and are provided to the userland via commpage entries.
* Introduced build system feature allowing easy use of C structure
member offsets in assembly code.

Changes after merging:
* Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp
(caused by refactoring and introduction of "call" debugger command).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23370 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 851e6dca97b76dbb5f37eaea0364019f8fbea4f1 30-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Some of Darwin's C++ runtime seems to live in libstdc++.so, so I moved
it to HOST_LIBSUBC++. Now it should be possible to remove HOST_LIBSTDC++
from the library list for build tools which don't use the STL -- it had
been added due to the Darwin peculiarity in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22773 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 794771ddff47ea26046e1e4028121bfacfffc8b4 25-Oct-2007 François Revol <revol@free.fr>

Suppress useless trigraph warnings triggered by pcihdr.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8074e217af8741e75e962b7dbf43030d15f191cd 23-Oct-2007 François Revol <revol@free.fr>

Build support for m68k.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ee83016eda202de762c9d1e3b465e8eb53c905d 21-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added header directories missing for the libbe_test target, since my changes
a while ago that removed the incorrect automatic addition of Haiku header
directories in case of targets other than "haiku". The app server test
environment does now almost build again. The problem left is related to the
recent changes of the accelerant interface. I suppose someone in the knows
should decide if we can simply use our header or if special handling is
needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61ca8e04bbfe9a6ad891db0fd12e133dacb99360 24-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a common directory for missing system on BeOS systems.
* Added the old fella <stdint.h>.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22050 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0385b0657b9c255b849c6e6031cd258e041a17ac 22-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Samuel Rodriguez Perez, slightly modified by myself: New
configure flag "--use-32bit" enabling 32 bit builds with a 64 bit host
compiler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e8ac2903b840f54bd891019fac17f2e28cbbc0c 12-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the variables NETWORK_LIBS, NETAPI_LIB, and
SELECT_UNAME_ETC_LIB with TARGET_ and introduced HAIKU_* and HOST_*
counterparts.
* Use HOST_NETWORK_LIBS for building remote_disk_server.
* Also got rid of {R5,BONE,DANO,HAIKU}_COMPATIBLE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da0f9ae040921d1af3cdbac209bdf16fe80f95b3 02-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Haiku as host platform supported by the build system ("haiku_host").
Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21802 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d96381dd5d784bc17f799cc7e3030274128967cf 02-Aug-2007 Jérôme Duval <korli@users.berlios.de>

reverted r21757 which is now fixed by the following
added $(HAIKU_GCC_LIBGCC) to HAIKU_KERNEL_ADDON_END_GLUE_CODE as suggested by Ingo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21795 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fe452e51f0e4da39118791a5d98851c008f77fab 17-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Fixed update-image and update-install which were broken after the NetBootArchive changes, courtesy Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21640 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b39c8d3711299d7ff89bbb725ad5ce6036d5c4db 10-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Refactored the image creation rules. There are now generalized rules that
work on arbitrary "containers". The image rules are just
specializations.
* Added rules, a definition file (build/jam/NetBootArchive), and a shell
script for creating a gzipped tar archive containing kernel and modules
required for network booting (the contents may need some fine-tuning).
ATM it can be built via the haiku-netboot-archive pseudo target. It is
generated in the output directory (e.g. "generated").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a9059fb38fc8568f94b6eb2635ded2fee19ee45 16-Jun-2007 Travis Geiselbrecht <geist@foobox.com>

some make system work to get x86-64 linux compiles working:
-The biggest problem with linking host libraries (libbe_build and libroot_build) was not having the source files compiled with the -fPIC flag. As far as I can tell, we want to do this on all of the other host platforms as well, so hacked the jam files a bit to add it.
Forgive me if I've committed more Jamfile sins.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a66c32dde54a61f6b5a3be37728cda8e36341ea8 20-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Introduced new configure option --distro-compatibility to specify the
compatibility relation to the official Haiku distribution. "official"
is for the official Haiku distribution itself, "compatible" for Haiku
Compatible (tm) distros, and "default" for all others (the default value
for the option). The build system variable HAIKU_DISTRO_COMPATIBILITY is
defined accordingly, and one of the
HAIKU_DISTRO_COMPATIBILITY_{OFFICIAL,COMPATIBLE,DEFAULT} macros is
defined for source code and rdefs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21177 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6dcd0ccf238263a3e5eb2e2a44e2ed0da1617a42 18-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe (slightly modified): Several changes to support
building on Mac OS X (Darwin). A problem with makebootable remains.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13246f99ab8c618ec6d544112dadaa728c8eb32f 09-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Apparently _GNU_SOURCE doesn't imply 64 bit off_t on all glibc
platforms. Funny that it still isn't the default, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21083 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ba4119ddaa5838cb2a091d7d80969392ed38722 04-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Get more features on glibc host platforms, among those ISO C 99
definitions (like LLONG_{MIN,MAX}).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21012 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f4e5272fc99dc6b2c6004c2c4f5dcff565ff6a4 07-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Under Linux it is now possible to emulate the BeOS attribute support via
xattrs. It can be enabled with the configure switch "--use-xattr". Note
that the amount of data stored in attributes may be limited by the used
file system -- e.g. AFAIK ext3 has a limit of one block (usually 4 KB)
for all attributes of a file, which might not suffice. XFS should be
fine, as should ReiserFS 3.6 (or any FS which stores attributes in
hidden files).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# afed18de795463c525d4cc3b890db77c4991e4a2 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New build system feature to shorten the turn-around times when working
with image files. E.g.

jam -q update-image libbe.so kernel_x86

will only build libbe.so and the kernel (if necessary) and copy them
onto the already existing Haiku image. The MIME DB will not be
reinstalled, and only those source directories will be copied for which
the AddSourceDirectoryToHaikuImage rule is given a second argument
(e.g. "1"). The image will otherwise remain unchanged.

The "update-vmware-image" and "update-install" work similarly for the
VMWare image and the directory installation respectively. Note that, due
to the way the VMWare image is created (prepending a header to the
standard image), the file itself is fully rebuilt, i.e. changes made
during the emulation will be lost after updating the VMWare image.

The feature requires Haiku's jam. With other jam versions a similar
effect can be reached by accordingly setting the HAIKU_IMAGE_UPDATE_ONLY
and HAIKU_INCLUDE_IN_IMAGE in the UserBuildConfig file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c24a1a9f609984ecde4c3525521518ecdf50146 05-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New handy build system feature: It is now possible to pass a command
line to jam that contains build targets and that will be executed by
the build system after building the targets and replacing their
occurrences in the command line by their paths. The keyword indicating
such a command line is "run", targets are marked by a leading ":".
E.g.:

jam -q run ':<build>xres' -l :libtracker.so

This builds the xres tool for the host platform and libtracker.so for
Haiku, and afterwards lists the resources libtracker.so contains. Note,
that this feature requires using Haiku's jam version.

The functionality is implemented by the new RunCommandLine rule, which
can, of course, also be used in the UserBuildConfig.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20598 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8ba8f58d7c5424d1726c310aac3d805b7f7cc53 28-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added the disk device API to the libbe_haiku.so, so that libtracker.so builds
again for target libbe_test. Added respective syscall stubs and other functions
to libhaikucompat.a.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20447 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9756b9b4f03f4c3c5e258bf8bb7558063f48d981 21-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

A jam invocation without given target (or the "all" target) in the output
directory, the build system root directory, or the "src" directory is
now using the "haiku-image" target instead. The variable
HAIKU_ORIGINAL_JAM_TARGETS is set to the original JAM_TARGETS value, so
that a UserBuildConfig can base its decisions on it.
The feature is only available with Haiku's jam version.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20194 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eccc7665b5e9b71ddd90cffcd728c348e56bb8ea 04-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added configure option --use-gcc-pipe to enable building with the gcc
-pipe option.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fcdce909752da039c867042c5955d5bf54523f3 29-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Added a HAIKU_BASE_CCFLAGS variable that will be added to all CCFLAGS/C++FLAGS that
build Haiku. Uncomment it to define "-pipe" which may speed up your build process
a bit if you have enough memory (it's about 25% faster on a test case over here
with BeOS).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20015 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c166aa847e95f45df54d72c645120f9bbc6e1e5e 14-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

Added -Wno-multichar to the default kernel GCC flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19514 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69b1f76d66e7870cd9a0be8c4cf13b945dfad743 29-Nov-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

FreeBSD build platform support. Original patches courtesy of
Samuel Rodriguez Perez, somewhat hacked by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b06be955a61aefaadc5d54f53bc277faaa992d82 07-Nov-2006 Jérôme Duval <korli@users.berlios.de>

added a -Wno-deprecated flag for gcc4 avoiding warnings for deprecated headers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2ae268f24f75d50043b525ef34b0f2328502f0a 07-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

libnetapi.so no longer exists under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34b8a998fc67cd041dc02e3d152ae487345de766 28-Sep-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

allow overriding TARGET_BOOT_PLATFORM on command line


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18957 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 48b8e2715554bffd36caa08bf7912d1c2a68c64e 09-Aug-2006 Jérôme Duval <korli@users.berlios.de>

improved the library name map for haiku and host keeping the simpler name input_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18465 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72cc02533eb283d56af8fdbcf2694a9f1cdf5473 08-Aug-2006 Jérôme Duval <korli@users.berlios.de>

link input addon against /system/servers/input_server on non Haiku targets, map our input_server target to it


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18464 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5abaa7ebb1d09e12d10db20cde5d47edac2cfb2a 03-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

We do now include HaikuBuildCompatibility.h and link against libhaikucompat.a
automatically for all BeOS compatible target platforms but Haiku. This should
allow more Haiku code to build for BeOS.

Disclaimer: I couldn't really test it, since my BeOS working tree is switched
to my layout branch and under Linux I obviously can't test building for BeOS.
So, if you have complaints, keep them to yourself and just fix the problem.
;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18372 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9b776de3f9a88999f05bc30df6e86f4499472f5 02-Jun-2006 Oliver Tappe <zooey@hirschkaefer.de>

- changed HAIKU_TEST_DIR to incorporate the platform and the architecture, such
that tests for different platforms don't mix.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17704 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f146dc96146f774e2b03ae767050660f1f0cd567 23-May-2006 François Revol <revol@free.fr>

allow compiling of things using find_directory on ZETA, so I can test Terminal


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17562 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a64b25838dea2517d287a920c679d5bbbe00cc71 11-Apr-2006 Jérôme Duval <korli@users.berlios.de>

added libGL.so as haiku library


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b478a399e7be8e6f634f318cb1b3e64e3f4ba91 01-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fixed network libs definition for haiku platform
it could be wrong in some cases


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9cf8b6073a7db65617055126121766327152dfd 25-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Added __HAIKU__ for target libbe_test.
Fixed FreeBSD host platform define.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16094 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 789b0b782438a981b8c7f0874481111b7962c10f 24-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Applied patch from Alexander U. Deynichenko: $HOST_PLATFORM should change
HOST_DEFINES, not TARGET_DEFINES.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 957a1b17eb9d13d6dbf164145e82997e16742549 30-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new build system variables
{HAIKU,HOST,TARGET}_KERNEL_PIC_{CC,LINK}FLAGS which define the
compiler/linker flags specifying the kind of position independence
the kernel shall have. For x86 we had and still have -fno-pic, but the
PPC kernel has -fPIE (position independent executable) now, as we
need to relocate it.
* The boot loader relocates the kernel now. Mostly copied the relocation
code from the kernel ELF loader. Almost completely rewrote the PPC
specific relocation code, though. It's more correct and more complete now
(some things are still missing though).
* Added boot platform awareness to the kernel. Moved the generic
Open Firmware code (openfirmware.c/h) from the boot loader to the kernel.
* The kernel PPC serial debug output is sent to the console for the time
being.
* The PPC boot loader counts the CPUs now and allocates the kernel stacks
(made OF device iteration a bit more flexible on the way -- the search
can be restricted to subtree). Furthermore we really enter the kernel...
(Yay! :-) ... and crash in the first dprintf() (in the atomic_set()
called by acquire_spinlock()). kprintf() works, though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15756 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f9dddcb72da81b6e56b30a3d063816095a66432 28-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

libgame.so can now be compiled again in the test environment (libbe_test).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a1f9fe07a0a16e35fbe344103767c9da37665bb 15-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Rewrote KernelAddon. We were using Addon before, with the undesired side
effect that we were linking not only against the complete glue code, but
also against libroot.so. Now we explicitly link against
crtbegin.o/crtend.o only.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15545 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 57eab4408bc999d23e870cf1566b9a47ba5d01e1 13-Dec-2005 Waldemar Kornewald <wkornew@nowhere.fake>

Now we use the legacy headers when building our compatibility libraries. Fixed BuildSetup to use root instead of libroot.so because arp would not build otherwise. Command-line apps now don't build for R5, anymore. I hope nothing is broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 365eac1beaed1212b2cf71769954e83bf02a7f3f 06-Dec-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Support PPC as target architecture.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15383 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a05e71e91495009df5460373615123b3c8c77bc 18-Nov-2005 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Made FreeBSD work with jam.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15025 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 307807f2da674c9d0f312ec72d69a1aeee9fb240 18-Nov-2005 Nathan Whitehorn <nwhitehorn@nowhere.fake>

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


# 9469b271e8313f65e5963e9b8b3911f783c25bb7 14-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Typo that broke the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14914 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c89fc8752d05038ff640b5e738e8c1c8faea2bb8 14-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* More consequent handling of libsupc++. configure looks it up now and
provides it via BuildConfig. We link everything against it.
* Temporarily pass --no-undefined to the linker. Should be in the
compiler specs, but isn't in the gcc 4 I built.
* Define _BEOS_R5_COMPATIBLE_ macro when building with gcc 2. Can be
used in headers for instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14913 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec068e96bb8cb975a8a61b02f166a19d1864ca16 13-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

No longer needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14889 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b5934c975d7c3eb1c19f396dbe2a150df4f086a 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added support for compiling Haiku with GCC 4. The main difference is that
we use the libstdc++ (including it's headers) that comes with the
compiler.
* Apparently option "-I-" has been deprecated, which is why we now treat the
include stuff a bit differently.
* Removed avcodec from the Haiku image, since the library wouldn't build with
gcc 4, and I'm not in the mood to fix that (declaration of an array of an
incomplete type).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14876 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6f43ca72cffb143a1e520692d44b1c8b698508e 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Looks like Dano headers aren't perfect. I hope this solution is at least a tiny
bit like Ingo would have done it :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 155b583ac369749fdfae25f419056389ec7eb16e 09-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed unit tests build for platforms libbe_test and r5. Only randomly tested
a few whether they actually work.
New pseudo target "unittests", which builds all unit tests for the currently
set TARGET_PLATFORM. They are placed in generated/tests/<platform>/unittests.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca9e5772c3fa971474035b57ee9226ccc429ebc9 07-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reintroduced third LinkAgainst parameter <mapLibs>, defaulting to true.
Library names are now mapped for all targets but "host" (not only for
"haiku") -- added one more level of indirection to achieve that.
(TARGET_LIBRARY_NAME_MAP -> *_LIBRARY_NAME_MAP_*).
* Renamed build/HaikuBuildCompatibility.h to BeOSBuildCompatibility.h
(auto-included when compiling something that uses the Be API for platform
"host" on anon-BeOS platform), and introduced build/HaikuBuildCompatibility.h,
which can be included when compiling something that can be built for both,
Haiku and BeOS compatible platforms.
* Introduced libhaikucompat.a, a library that adds a few functions existing
under Haiku, but not under BeOS.
* New rule AddSubDirSupportedPlatforms.
* Renamed libopenbeos.so to libbe_haiku.so.
* Introduced new target platform "libbe_test", which is basically equivalent
to a BeOS compatible host platform target, with the exception, that instead
of the host platform's libbe.so a special build of Haiku's libbe.so
(libbe_haiku.so (formerly known as libopenbeos.so)) is used. Furthermore
Haiku's public app, interface, storage, and support kit headers are used
when compiling. This replaces the less nice way in which the test app server
and applications for this test environment were built.
When building for platform "libbe_test", the library name "be" is
autotranslated to "libbe_haiku.so". Thus most applications don't need
special fiddling when them building them for the app server test environment;
usually an "AddSubDirSupportedPlatforms libbe_test ;" will suffice.
* Reduced the dependencies of <syscalls.h> and fixed problems caused by this
(e.g. source files not including the needed headers directly).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14749 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42f8a2603eae06ca7a93a31b8fe32b97a39cd4bc 01-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed last commit. Now we define HAIKU_TARGET_PLATFORM_* macros correctly
depending on the TARGET_PLATFORM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14617 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 723a9e90c9fbecd66e5e19ec6d7c3b6ff1353494 01-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

We define a preprocessor macro HAIKU_TARGET_PLATFORM_{BEOS,BONE,DANO,HAIKU,LINUX} for identifying the platform something is built for.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14616 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96