-
Notifications
You must be signed in to change notification settings - Fork 481
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
Add changes to support 32 bit addend address in ELF patching #8649
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is getting out of hand, shifting, bit specific, long long functions that appear to be generic and not specific to a particular bit pattern.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the impact to the exsiting elf? I think type filed is 'a' though I don't why. Does that mean new XRT with exsiting elf will be broken?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's go with OSABI Version change and use the whole 32 bits addend as argplus.
Signed-off-by: rbramand <[email protected]>
Signed-off-by: rbramand <[email protected]>
f2fc943
to
add8364
Compare
Yeah Soren. Discussed with Sonal aswell. He suggested to move all of this code to aiebu and XRT uses functions from it. It is going to take some time :-) |
Hi @larry9523 made changes as discussed, please review |
Signed-off-by: ch vamshi krishna <[email protected]>
…8676) Signed-off-by: ch vamshi krishna <[email protected]> Co-authored-by: ch vamshi krishna <[email protected]>
Problem solved by the commit
Earlier rela dynamic sections addend fields higher 28 bits were used for holding base buffers addend address but 28 bits are not sufficient in all cases.
This change adds support for 32 bit addend.
AIEBU generates new ELF with ABI version 2 which uses rela section entries r_addend for 32 bit addend address and type is used for patching schema. Made changes according to new spec.
Bug / issue (if any) fixed, which PR introduced the bug, how it was discovered
Added support for 32 bit addend
How problem was solved, alternative solutions (if any) and why they were rejected
Ideally moving to 64 bit ELF should solve the problem but it requires lot of changes from both aiebu and XRT side so this is planned for upcoming releases. Also other solutions which breaks existing ELFs are rejected.
This change doesn't cause any issue as there are version checks
Risks (if any) associated the changes in the commit
Low
What has been tested and how, request additional testing if necessary
Tested failing psq2 application and test passes with this fix
Documentation impact (if any)
NA