History log of /haiku/build/jam/BootRules
Revision Date Author Comments
# cb101bda 22-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

BootRules: Fix BuildMBR under Clang.

We need to force -m32 here, and we also need to tell Clang that we
want to allow relocations in .text.

Clang builds now get to kernel entry, but the bootloader fails to
load the early-boot modules with strange remapping errors, and so
panics with "get boot partitions failed!"


# df34a271 22-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Do not use regular TARGET_*FLAGS in kernel and bootloader.

The generic CCFLAGS are already appended to the HAIKU_KERNEL_*FLAGS
and HAIKU_BOOT_*FLAGS, so these were just duplicates. And now that
we strip certain flags out of the base ones, this was incorrect
(and causes Clang to error in some circumstances.)


# 8b4ab454 02-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

BootRules: BuildMBR links as well as compiles, so pass in LINKFLAGS.

Clang builds presently have some magic in it that is required for
linking to work at all.


# 8522edfe 19-Oct-2018 Alexander von Gluck IV <kallisti5@unixzen.com>

jam: Ensure common boot LDFLAGS and ASFLAGS get distributed


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

system/boot: Add support for multiple bootloaders


# 74bfec3b 06-May-2018 Jessica Hamilton <jessica.l.hamilton@gmail.com>

build/jam: whitespace cleanup.

Change-Id: I80c9a51417631b1f283923451f5bb530097b74f3


# 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>


# 9e5091d7 28-Oct-2015 Simon South <ssouth@simonsouth.com>

Build without linker warnings about missing entry symbols.

* BootRules: Use -Xlinker option correctly to specify entry point.
* KernelRules: Build kernel add-ons as shared objects explicitly.

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>


# 11e8ecdd 01-Jun-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

writembr: Implement support for GPT partitions, #4028.

* This should support both GPT and MBR formatted partitions.
* To boot Haiku from a GPT partition, it must have the correct
BFS UUID for the partition.
* Tools such as gdisk/gptfdisk can create partitions with
the correct BFS UUID.


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

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# bd04aa37 15-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup: Fix missing evaluation of HAIKU_NO_LIBSUPC++.

* There's no user of HAIKU_NO_LIBSUPC++ anywhere, so the typo didn't
have any effect.


# 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.


# 66a7f29f 15-Jan-2014 Jérôme Duval <jerome.duval@gmail.com>

x86_64: include the "32" dir when targeting 32-bit

* helps with building boot loader with GCC 4.8


# 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).


# 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.


# 11e8ecdd9488eee107d519d6ab8005af1017531d 01-Jun-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

writembr: Implement support for GPT partitions, #4028.

* This should support both GPT and MBR formatted partitions.
* To boot Haiku from a GPT partition, it must have the correct
BFS UUID for the partition.
* Tools such as gdisk/gptfdisk can create partitions with
the correct BFS UUID.


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

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# bd04aa3772fea5fc96a4cbe332108305d464a53c 15-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup: Fix missing evaluation of HAIKU_NO_LIBSUPC++.

* There's no user of HAIKU_NO_LIBSUPC++ anywhere, so the typo didn't
have any effect.


# 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.


# 66a7f29f59a4b9a9d014f77aeeb64f27a479200a 15-Jan-2014 Jérôme Duval <jerome.duval@gmail.com>

x86_64: include the "32" dir when targeting 32-bit

* helps with building boot loader with GCC 4.8


# 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).


# 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.