Thanks to visit codestin.com
Credit goes to github.com

Skip to content

SFrame V3 MVP#1898

Draft
mati865 wants to merge 7 commits into
wild-linker:mainfrom
mati865:push-psuukqllkpkt
Draft

SFrame V3 MVP#1898
mati865 wants to merge 7 commits into
wild-linker:mainfrom
mati865:push-psuukqllkpkt

Conversation

@mati865
Copy link
Copy Markdown
Member

@mati865 mati865 commented May 7, 2026

Commits starting with update and account are what https://sourceware.org/binutils/docs-2.46/sframe-spec.html#Changes-from-Version-2-to-Version-3 is about.

Just like ld.bfd did, this change drops support for SFrame V2 due to how annoying it would be to support both formats at the same time, and the fact that the decisions by the distros to enable SFrame V2 by default were short-lived.

At the time of writing this description, glibc still can only read SFrame V2 (the changes are lingering on the mailing list), so I'm posting this as a draft. Hopefully it doesn't take too long from now before we can test it on the CI.
Can be tested with https://gist.github.com/mati865/5d5fead3a7cbefcbe9a609274a0d27eb if your system has Binutils 2.46.

This PR only ports existing code from SFrame V2 to V3. It doesn't add new SFRAME_FDE_TYPE_FLEX or SFRAME_FDE_TYPE_DEFAULT.

Fixes #1576

@macmv
Copy link
Copy Markdown

macmv commented May 18, 2026

I just ran into this when I updated Arch. I'm using binutils 2.46.0. This branch seems to work fine for me. Please let me know if you want me to debug anymore/upload an artifact or whatnot. readelf can read the sframe section just fine.

The test script works just fine:

% /tmp/sframe_test
Captured 7 frames via SFrame:
  [0] 0x560f35b23ea1 in check_bt+0x2c
  [1] 0x560f35b23f9b in level3+0x9
  [2] 0x560f35b23fa9 in level2+0x9
  [3] 0x560f35b23fb7 in level1+0x9
  [4] 0x560f35b23fd9 in main+0x1d
  [5] 0x7f34b8027741 (symbol not found)
  [6] 0x7f34b8027879 in __libc_start_main+0x89

@mati865
Copy link
Copy Markdown
Member Author

mati865 commented May 18, 2026

@macmv you won't see SFrame issue on main branch, Wild will just discard .sframe section.

This PR is on hold until glibc fixes/implements SFrame v3 support, so it can be reasonably tested.

@macmv
Copy link
Copy Markdown

macmv commented May 20, 2026

Huh... strange. I think I'm seeing this on the main branch, or at least on the version I have installed. Oh, bah, yeah, it's fine on main. I didn't realize it wasn't released yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SFrame version 3 support

2 participants