.text .type foo_resolver, @function foo_resolver: ret .size foo_resolver, .-foo_resolver .globl foo .type foo, %gnu_indirect_function .set foo, foo_resolver .globl bar .type bar, @function bar: .L1: auipc x1, %got_pcrel_hi (foo) .ifdef __64_bit__ ld x1, %pcrel_lo (.L1) (x1) .else lw x1, %pcrel_lo (.L1) (x1) .endif .L2: auipc x2, %pcrel_hi (foo_addr) .ifdef __64_bit__ ld x2, %pcrel_lo (.L2) (x2) .else lw x2, %pcrel_lo (.L2) (x2) .endif ret .size bar, .-bar .data foo_addr: .ifdef __64_bit__ .quad foo .else .long foo .endif