diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base index 0d97f43ce8..8d85dbf5af 100644 --- a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base +++ b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base @@ -119,9 +119,11 @@ SECTIONS { _TLS_BSS_end = .; } > REGION_RODATA AT > REGION_RODATA_LOAD _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin; + _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin; + _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin; _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin; _TLS_Size = _TLS_BSS_end - _TLS_Data_begin; - _TLS_Alignment = ALIGNOF (.tdata); + _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss)); .preinit_array : ALIGN_WITH_INPUT { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) |