.hidden global_b .text .align 2 main: # R_AARCH64_ADR_PREL_PG_HI21 # R_AARCH64_ADR_PREL_PG_HI21_NC # R_AARCH64_ADR_LO_21 adrp x0, :pg_hi21:global_a adrp x1, :pg_hi21_nc:global_a adr x2, global_a #R_AARCH64_LD_PREL_LO19 ldr x3, global_a # R_AARCH64_PREL16 # R_AARCH64_PREL32 # R_AARCH64_PREL64 .hword global_a - . .word global_a - . .xword global_a - . # Defined global symbol may bind externally because of copy relocation, # while defined hidden symbol binds locally. LD should be able to # differenciate this. adrp x0, :pg_hi21:global_b .xword global_b - .