fix: disable SFrame support by default#1871
Conversation
|
Great, there is only CI platform able to test current implementation, and it becomes EoL in 2 months. |
22abfd5 to
8a1e349
Compare
| @@ -308,7 +307,7 @@ fn fill_padding(mut section_buffers: OutputSectionMap<&mut [u8]>) { | |||
| } | |||
|
|
|||
| fn write_sframe_section(sframe_buffer: &mut [u8], layout: &ElfLayout) -> Result { | |||
There was a problem hiding this comment.
Not sure how difficult it would be, but could we avoid loading those sections altogether? Similar to how we handle the debug info section with --strip-debug?
There was a problem hiding this comment.
I attempted that in 8a1e349 (this PR).
There is no consistency at all in all of this.
Older ld.bfd versions were handling (merging and sorting) SFrame sections just fine but removed them if --gc-sections was enabled. Recent versions preserve SFrame sections with sections GC enabled.
LLD doesn't merge them, and retains one of SFrame sections unless sections GC is enabled (standard ELF behaviour for unknown sections).
Before and with this PR Wild retains one of SFrame sections regardless of sections GC. If I make it retain SFrame sections only when the experimental flag is passed (basically revert last two reverts) we get CI failures like here https://github.com/wild-linker/wild/actions/runs/25107607314/job/73572763695?pr=1871. Although we could ignore SFrame entirely in linker-diff, if you prefer that way.
There was a problem hiding this comment.
Well, given the time and experiments you made, let's go with the currently suggested approach in this PR.
The change is pretty minimal.
marxin
left a comment
There was a problem hiding this comment.
Thanks for working on it, it's really annoying the feature in such an inconsistent shape.
SFrame support is so hopelessly broken everywhere right now that making it experimental is the best course of action.
With this PR
.sframesection is emitted if present in the inputs regardless of sections GC, although it will be broken unless--wild-experimental-sframeis passed and system'sasoutputs SFrame version 2.I made an attempt to never emit it unless explicitly enabled fix: Emit SFrame section only when enabled but it doesn't seem worth the hassle.
CC #1576