mirror of
https://github.com/justinian/jsix.git
synced 2025-12-09 16:04:32 -08:00
While bonnibel already had the concept of a manifest, which controls what goes into the built disk image, the bootloader still had filenames hard-coded. Now bonnibel creates a 'jsix_boot.dat' file that tells the bootloader what it should load. Changes include: - Modules have two new fields: location and description. location is their intended directory on the EFI boot volume. description is self-explanatory, and is used in log messages. - New class, boot::bootconfig, implements reading of jsix_boot.dat - New header, bootproto/bootconfig.h, specifies flags used in the manifest and jsix_boot.dat - New python module, bonnibel/manifest.py, encapsulates reading of the manifest and writing jsix_boot.dat - Syntax of the manifest changed slightly, including adding flags - Boot and Kernel target ccflags unified a bit (this was partly due to trying to get enum_bitfields to work in boot) - util::counted gained operator+= and new free function util::read<T>
31 lines
530 B
YAML
31 lines
530 B
YAML
---
|
|
extends: base
|
|
|
|
variables:
|
|
ld: clang++
|
|
|
|
ccflags: [
|
|
"-nostdlib",
|
|
"-nodefaultlibs",
|
|
"-fno-builtin",
|
|
|
|
"-I${source_root}/external",
|
|
"--target=x86_64-unknown-windows",
|
|
"-ffreestanding",
|
|
"-mno-red-zone",
|
|
"-fshort-wchar",
|
|
"-fno-omit-frame-pointer",
|
|
"-ggdb",
|
|
"-g3" ]
|
|
|
|
cxxflags: [ "-fno-exceptions", "-fno-rtti" ]
|
|
|
|
ldflags: [
|
|
"--target=x86_64-unknown-windows",
|
|
"-nostdlib",
|
|
"-Wl,-entry:efi_main",
|
|
"-Wl,-subsystem:efi_application",
|
|
"-fuse-ld=lld-link",
|
|
"-g" ]
|
|
|