Skip to content

Compare function-local statics without their compiler numbering in rk sections-diff - #40

Merged
tamnd merged 1 commit into
mainfrom
sites-local-names
Oct 3, 2026
Merged

tamnd merged 1 commit into
mainfrom
sites-local-names

Conversation

@tamnd

@tamnd tamnd commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Summary

A function-local static such as the ___once_key behind DO_ONCE gets a number after its name, and gcc and rucc count those numbers differently. net/ipv4/udp.o has ___once_key.0 and ___once_key.1 from gcc and ___once_key.2 and ___once_key.8 from rucc for the same two keys. So the site comparison from #39 reported each of them as a site missing on one side and added on the other.

Now the number is dropped from a local symbol's name when a table entry is named by it. A global name is kept as it is. Jump table entries also no longer carry the bytes left over between relocations: they are always zero, and they showed up only because the width of the 64 bit PC relative key relocation was not read.

Effect on the 7.2.8 defconfig comparison

__jump_table goes from 20 objects to 1, and all differences go from 267 to 248. The one left is kernel/entry/common.o, where gcc has a jump label on __tracepoint_rseq_ip_fixup and rucc does not.

@tamnd tamnd added kind/bug Something in the harness is wrong area/rk The rk command line row/x64 x86-64 labels Oct 3, 2026
@tamnd
tamnd merged commit f1776d4 into main Oct 3, 2026
@tamnd
tamnd deleted the sites-local-names branch October 3, 2026 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/rk The rk command line kind/bug Something in the harness is wrong row/x64 x86-64

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant