#
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.
|
#
4198265f |
|
30-Sep-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
build: Optimize for size in the bootloaders, not for speed. This saves almost 100K in size: BIOS: 367K -> 271K EFI: 541K -> 454K Fixes #17961.
|
#
5613c37e |
|
29-Sep-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
BootRules: Add -fvisibility=hidden to BootStaticLibrary as well. Does not seem to affect the size of the bios_ia32 loader, but takes the x86_64 EFI loader down from 678k -> 554k.
|
#
f18aba2c |
|
02-Dec-2021 |
David Karoly <karolyd577@gmail.com> |
BootRules: use non-legacy ld Change-Id: I0dc6a1c8731e710a9c43b6dfa5ea08c84fa5d3a6 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4759 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
acf8592e |
|
04-Nov-2021 |
David Karoly <karolyd577@gmail.com> |
build: don't use regular TARGET_*_FLAGS for .S files in bootloader This is one more change to prepare for the transition to soft-float for the ARM EFI bootloader. We need this change to remove the kernel compiler flags from .S files for the bootloader. Otherwise there would be hard-float and soft-float flags at the same time, giving a compile error. Change-Id: I0b66c3c16937228eb76351e359160187d3ab826b Reviewed-on: https://review.haiku-os.org/c/haiku/+/4690 Reviewed-by: Jérôme Duval <jerome.duval@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
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>
|
#
1d08d399 |
|
26-Feb-2020 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
efi: Don't skip TargetBootLibgcc, we need it for 32-bit fp math Change-Id: I23db3cbb57fea1f9346db9477f72bcc164794926 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2282 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
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.
|