Skip to content
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

minor improvement and a bug fix #7

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Conversation

vinxxe
Copy link

@vinxxe vinxxe commented May 2, 2023

Hi,
I made a few changes and maybe you are interested in some of them.

  • changes to make the scripts compatible with python3
  • changes to make the address of udynlink_get_lot_base no more needed at compile time
  • fix when compiling more than one source code file
  • added R_ARM_CALL to the check for pc relative function

thank you for your great work
vinx

vinxxe added 4 commits May 2, 2023 14:31
 - added python3 compatibility
 - added --include-path option
 - used floor division (//) to compute ABS32 symbol offset
the asm template has been changed to load into the r1 register (to jump to udynlink_get_lot_base address) the value of the defined label.
then the user shall call the function udynlink_patch_exported_func to write the address of udynlink_get_lot_base to the space reserved for the label.
the only thing that shall be known at compile time is the code length in bytes of the asm prologue.
the rodata has been moved to the data section because the udynlink_patch_exported_func patch the global symbols belonging to the text section
…e global symbols of the last file only.

this fix resolves this problem. now the script saves the global symbols of all the object files and, in the linking phase, it makes all these symbols local.
just in case you need to compile without thumb instruction set
@3Nigma
Copy link

3Nigma commented Jul 16, 2023

Thank you very much, this is good! 👏

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.

None yet

2 participants