On 21.11.2025 11:59, Grygorii Strashko wrote: > > > On 17.11.25 11:34, Jan Beulich wrote: >> On 17.11.2025 10:31, Jan Beulich wrote: >>> On 14.11.2025 19:01, Grygorii Strashko wrote: >>>> From: Grygorii Strashko <[email protected]> >>>> >>>> Now all libfdt features are built-it unconditionally, but... >>>> >>>> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen >>>> nodes, so full libfdt is not needed in this case and minimal, RO >>>> configuration can be used. >>>> >>>> ARM - situation is more complicated: >>>> 1) ARM reads Host DT (fdt.c RO) >>>> 2) ARM reads passthrough DT (RO) >>>> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW >>>> APIs) >>>> 4) ARM generates domU DT (there is a mix of WIP and SW APIs) >>>> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree >>>> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API >>> >>> This goes too far, imo. >> >> The more that, unless OVERLAY_DTB=y, all code and data moves to .init.*. Is >> coverage in in .init.* really of as much concern as runtime code/data? > > It is less priority, but still is. Any way it is unnecessary build units > (build time) and > increased binary size. > > > Actually, I see interesting behavior - when build with > CONFIG_CC_SPLIT_SECTIONS=y (CONFIG_LIVEPATCH=y) > the libfdt code is not moved in ".init" > > 0xa000027aa10 T fdt_ro_probe_ > > 0xa00002c0000 T __init_begin
Hmm, that's a bug, resulting from libfdt/ not using the usual machinery to do the conversion. Jan
