@ we can relax local and non-weak globals for non-shared links .arch armv5te .text .arm .p2align 2 foo: @tlscall global, manually relaxed to IE ldr r0, 1f 2: ldr r0, [pc, r0] nop .p2align 2 1: .word gd1(gottpoff) + (. - 2b - 8) .p2align 2 @tlscall global, should relax to IE ldr r0, 1f 2: blx gd1(tlscall) nop .p2align 2 1: .word gd1(tlsdesc) + (. - 2b) .p2align 2 @tlscall local, manually relaxed to LE ldr r0, 1f nop nop .p2align 2 1: .word ld1(tpoff) .p2align 2 @tlscall local, should relax to LE ldr r0, 1f 2: blx ld1(tlscall) nop .p2align 2 1: .word ld1(tlsdesc) + (. - 2b) .p2align 2 @open coded global, manually relaxed to IE ldr r0, 1f 2: add r0, pc, r0 ldr r1, [r0] mov r0, r1 nop .p2align 2 1: .word gd1(gottpoff) + (. - 2b - 8) .p2align 2 @open coded global, should relax to IE ldr r0, 1f 2: .tlsdescseq gd1 add r0, pc, r0 .tlsdescseq gd1 ldr r1, [r0,#4] .tlsdescseq gd1 blx r1 nop .p2align 2 1: .word gd1(tlsdesc) + (. - 2b) .p2align 2 @open coded local, manually relaxed to LE ldr r0, 1f 2: nop nop nop nop .p2align 2 1: .word ld1(tpoff) .p2align 2 @open coded local, should relax to LE ldr r0, 1f 2: .tlsdescseq ld1 add r0, pc, r0 .tlsdescseq ld1 ldr r1, [r0,#4] .tlsdescseq ld1 blx r1 nop .p2align 2 1: .word ld1(tlsdesc) + (. - 2b) .thumb .p2align 1 bar: @tlscall global, manually relaxed to IE ldr r0, 1f 2: add r0, pc, r0 ldr r0, [r0] nop .p2align 2 1: .word gd1(gottpoff) + (. - 2b - 4) .p2align 1 @tlscall global, should relax to IE ldr r0, 1f 2: blx gd1(tlscall) nop .p2align 2 1: .word gd1(tlsdesc) + (. - 2b + 1) .p2align 1 @tlscall global, should relax to IE ldr r0, 1f 2: blx r1(tlscall) nop .p2align 2 1: .word r1(tlsdesc) + (. - 2b + 1) .p2align 1 @tlscall local, manually relaxed to LE ldr r0, 1f nop nop .p2align 2 1: .word ld1(tpoff) .p2align 1 @tlscall local, should relax to LE ldr r0, 1f 2: blx ld1(tlscall) nop .p2align 2 1: .word ld1(tlsdesc) + (. - 2b + 1) .p2align 1 @tlscall local, should relax to LE ldr r0, 1f 2: blx r0(tlscall) nop .p2align 2 1: .word r0(tlsdesc) + (. - 2b + 1) .p2align 1 @open coded global, manually relaxed to IE ldr r0, 1f 2: add r0, pc ldr r1, [r0] mov r0, r1 nop .p2align 2 1: .word gd1(gottpoff) + (. - 2b - 4) .p2align 1 @open coded global, should relax to IE ldr r0, 1f 2: .tlsdescseq gd1 add r0, pc .tlsdescseq gd1 ldr r1, [r0,#4] .tlsdescseq gd1 blx r1 nop .p2align 2 1: .word gd1(tlsdesc) + (. - 2b + 1) .p2align 1 @open coded local, manually relaxed to LE ldr r0, 1f 2: nop nop nop nop .p2align 2 1: .word ld1(tpoff) .p2align 1 @open coded local, should relax to LE ldr r0, 1f 2: .tlsdescseq ld1 add r0, pc .tlsdescseq ld1 ldr r1, [r0,#4] .tlsdescseq ld1 blx r1 nop .p2align 2 1: .word ld1(tlsdesc) + (. - 2b + 1) .section .tdata,"awT" .global gd1 gd1: .space 4 ld1: .space 4 .globl r1 r1: .space 4 r0: .space 4