Changeset eb630cf in mainline for uspace/lib/c/arch/arm32/src/crt0.S


Ignore:
Timestamp:
2023-01-18T20:20:29Z (23 months ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b67ce1ff
Parents:
b83c5e4
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2022-09-02 18:43:01)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-01-18 20:20:29)
Message:

Fix handling of ABS32 relocation on arm32

A bad symbol reference in entryjmp.S was creating
an ABS32 relocation causing issues for dynamic
linker, leading to the ABS32 relocation being
generally ignored. However, that was not the
correct solution, as doing so breaks stacktrace
code (which emits global function pointers in
static data, creating ABS32 relocs).

The symbol reference in entryjmp.S was fixed by
converting the function to inline assembly, let
GCC deal with variable addresses.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/arm32/src/crt0.S

    rb83c5e4 reb630cf  
    4040SYMBOL(_start)
    4141        # Store the RAS page address into the ras_page variable
     42        // FIXME: This only works for not-PIC executables.
    4243        ldr r0, =ras_page
    4344        str r2, [r0]
Note: See TracChangeset for help on using the changeset viewer.