Use -ftls-model=local-exec for RTEMS by default?

Sebastian Huber sebastian.huber@embedded-brains.de
Wed Jul 20 11:48:49 GMT 2022


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.huber@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/


More information about the Gcc mailing list