-
Notifications
You must be signed in to change notification settings - Fork 300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
changed section .rela__jump_table not selected for inclusion #157
Comments
This is very similar to the .smp_locks issue, except these relocations are 8 bytes:
|
Almost a line-for-line copy/paste of the smp locks function. The only differences are the section name, and an offset increment of 8 instead of 4. Fixes dynup#157.
Revised analysis: __jump_table is a table of from arch/x86/include/asm/jump_label.h
.rela__jump_table looks like this:
The "code" and "target" fields point to locations within the function with the tracepoint. The "key" field points to a symbol "__tracepoint_timer_expire_entry" which references the __tracepoints section. There is a _tracepoint* symbol for each tracepoint in the __tracepoints section. The __tracepoints section, in turn, is a table of from include/linux/tracepoint.h
The "name" field is reloc'ed, referencing an offset in a string table contained in the __tracepoints_strings section:
There are _tpstrtab* symbols pointing to each string in the string in the table. Additionally there is a __tracepoints_ptrs section that is a table of pointers that reference the So... this rabbit hole goes much deeper than originally thought. |
Add support for the following special sections: - __jump_table - __tracepoints - __tracepoints_ptrs - __tracepoints_strings Fixes dynup#157.
The text was updated successfully, but these errors were encountered: