[build] Add build knowledge of dynamic libraries

Bonnibel will now build dynamic libraries when they're dependencies for
non-statically linked modules. It will also copy those shared libraries
into the initrd image for programs being copied into the image.
This commit is contained in:
Justin C. Miller
2023-08-26 19:06:18 -07:00
parent c4bb60299e
commit eda816ad90
15 changed files with 122 additions and 62 deletions

View File

@@ -1,5 +1,3 @@
# This file is automatically generated by bonnibel
rule compile.c
command = $cc -MMD -MF $out.d $cflags $ccflags -o $out -c $in
description = Compiling [$target]:$name
@@ -42,15 +40,19 @@ rule parse.cog
rule exe
command = $ld $ldflags -o $out $in $libs
description = Linking $name
rule lib
command = $ar qcs $out $in
description = Archiving [$target]:$name
description = Linking exe [$target]:$name
rule driver
command = $ld $ldflags -shared -o $out $in $libs
description = Linking $name
command = $ld $ldflags -o $out $in $libs
description = Linking driver [$target]:$name
rule lib
command = $ld -shared $ldflags -o $out $in $libs
description = Linking [$target]:$name
rule lib_static
command = $ar qcs $out $in
description = Archiving [$target]:$name
rule cp
command = cp $in $out

View File

@@ -5,6 +5,6 @@ ccflags: [
ldflags: [
"-pie",
"--dynamic-linker", "/jsix/tools/ld.so",
"-lc++", "-lc++abi", "-lunwind",
"--dynamic-linker", "/jsix/lib/ld.so",
"--push-state", "--as-needed", "-Bstatic", "-lc++", "-lc++abi", "-lunwind", "--pop-state",
]

View File

@@ -15,6 +15,7 @@ ccflags: [
"-U__linux__",
"--sysroot='${source_root}/sysroot'",
"-fpic",
]
cxxflags: [
@@ -29,5 +30,4 @@ ldflags: [
"-L", "${source_root}/sysroot/lib",
"-z", "separate-code",
"--no-dependent-libraries",
"-Bstatic",
]

View File

@@ -12,5 +12,5 @@ services:
drivers:
- drv.uart
- drv.uefi_fb
tools:
libs:
- ld.so