Revert "Add support for thread-local storage variables"

TLS support in tinyCC is absolutely not ready:
- segment register not select in load and store
- no relocation added for computing offset of per-thread symbol
- no support for TLS-specific relocations
- no program header added as per Drepper document about TLS

This reverts commit 1c4afd1350.
This commit is contained in:
Thomas Preud'homme
2013-11-03 18:55:54 +08:00
parent 1c4afd1350
commit cf02f920c1
5 changed files with 14 additions and 54 deletions

View File

@ -31,7 +31,6 @@
ST_DATA int rsym, anon_sym, ind, loc;
ST_DATA Section *text_section, *data_section, *bss_section; /* predefined sections */
ST_DATA Section *tdata_section, *tbss_section; /* thread-local storage sections */
ST_DATA Section *cur_text_section; /* current section where function code is generated */
#ifdef CONFIG_TCC_ASM
ST_DATA Section *last_text_section; /* to handle .previous asm directive */
@ -3093,10 +3092,6 @@ static int parse_btype(CType *type, AttributeDef *ad)
t |= VT_INLINE;
next();
break;
case TOK_THREAD:
t |= VT_TLS;
next();
break;
/* GNUC attribute */
case TOK_ATTRIBUTE1:
@ -5500,26 +5495,10 @@ static void decl_initializer_alloc(CType *type, AttributeDef *ad, int r,
/* allocate symbol in corresponding section */
sec = ad->section;
if (!sec) {
if (has_init) {
if (type->t & VT_TLS) {
if (!tdata_section)
tdata_section = new_section(tcc_state, ".tdata",
SHT_PROGBITS,
SHF_ALLOC | SHF_WRITE | SHF_TLS);
sec = tdata_section;
} else
sec = data_section;
}
else if (tcc_state->nocommon) {
if (type->t & VT_TLS) {
if (!tbss_section)
tbss_section = new_section(tcc_state, ".tbss",
SHT_NOBITS,
SHF_ALLOC | SHF_WRITE | SHF_TLS);
sec = tbss_section;
} else
sec = bss_section;
}
if (has_init)
sec = data_section;
else if (tcc_state->nocommon)
sec = bss_section;
}
if (sec) {
data_offset = sec->data_offset;