On 20/07/2022 13:41, Alexander Monakov wrote:
On Wed, 20 Jul 2022, Sebastian Huber wrote:

How does Ada get its default TLS model?
You shouldn't need to do anything special, GCC automatically selects
initial-exec or local-exec for non-PIC (including PIE).

I am not sure, for this test program:

extern _Thread_local int i;
_Thread_local int j;

int f(void)
{
  return i + j;
}

I get:

powerpc-rtems6-gcc -S -O2 -o - tls.c
        .file   "tls.c"
        .machine ppc
        .section        ".text"
        .align 2
        .globl f
        .type   f, @function
f:
.LFB0:
        .cfi_startproc
        lis 9,_GLOBAL_OFFSET_TABLE_@ha
        addis 10,2,j@tprel@ha
        la 9,_GLOBAL_OFFSET_TABLE_@l(9)
        addi 10,10,j@tprel@l
        lwz 9,i@got@tprel(9)
        lwz 10,0(10)
        add 9,9,i@tls
        lwz 3,0(9)
        add 3,3,10
        blr
        .cfi_endproc
.LFE0:
        .size   f,.-f
        .globl j
        .section        .tbss,"awT",@nobits
        .align 2
        .type   j, @object
        .size   j, 4
j:
        .zero   4
        .ident  "GCC: (GNU) 12.1.1 20220711 [master 5efa23f3389]"
        .section        .note.GNU-stack,"",@progbits

and:

powerpc-rtems6-gcc -S -O2 -o - tls.c -ftls-model=local-exec
        .file   "tls.c"
        .machine ppc
        .section        ".text"
        .align 2
        .globl f
        .type   f, @function
f:
.LFB0:
        .cfi_startproc
        addis 10,2,i@tprel@ha
        addis 9,2,j@tprel@ha
        addi 10,10,i@tprel@l
        addi 9,9,j@tprel@l
        lwz 3,0(10)
        lwz 9,0(9)
        add 3,3,9
        blr
        .cfi_endproc
.LFE0:
        .size   f,.-f
        .globl j
        .section        .tbss,"awT",@nobits
        .align 2
        .type   j, @object
        .size   j, 4
j:
        .zero   4
        .ident  "GCC: (GNU) 12.1.1 20220711 [master 5efa23f3389]"
        .section        .note.GNU-stack,"",@progbits

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

Reply via email to