mirror of
git://repo.or.cz/tinycc.git
synced 2026-11-04 21:26:36 +08:00
Some checks failed
build and test / test-x86_64-linux (push) Has been cancelled
build and test / test-x86_64-osx (push) Has been cancelled
build and test / test-aarch64-osx (push) Has been cancelled
build and test / test-x86_64-win32 (push) Has been cancelled
build and test / test-i386-win32 (push) Has been cancelled
build and test / test-arm64-win32 (push) Has been cancelled
build and test / test-armv7-linux (push) Has been cancelled
build and test / test-aarch64-linux (push) Has been cancelled
build and test / test-riscv64-linux (push) Has been cancelled
build and test / test-i386-linux (push) Has been cancelled
- tcc_add_linker_symbols():
don't add for dlls
- bind_exe_dynsym():
update _end symbol when done
allow data definition in the .so override a bss symbol
in the exe. For example
exe: int x;
.so: int x = 123;
- set_elf_sym():
cannot compare section numbers with symbols from dlls
tcc_load_obj():
return -1 from symbol conflict errors
tests/tests2/148_linker_symbols:
- use only one file
- make it print useful output rather than just "2 errors."
In general, the tests2 setup with .expect files is meant
to compare text output. For example:
printf("val = %d\n", val);
.expect file can be generated or refreshed using
make tests2.nnn+
or in order to force generation with tcc itself
make tests2.nnn+ GEN-CC='$(GEN-TCC)'
tccgen.c:
- __attribute__((section(...))) : set section type/flags
according to first usage
- fix bcheck bounds for -fcommon
27 lines
594 B
C
27 lines
594 B
C
#ifdef DEFS
|
|
__thread signed short extern_tls_short = 1234;
|
|
__thread float extern_tls_float = 1.5f;
|
|
#else
|
|
extern __thread signed short extern_tls_short;
|
|
extern __thread float extern_tls_float;
|
|
int printf(const char *, ...);
|
|
|
|
int main(void)
|
|
{
|
|
int errors = 0;
|
|
|
|
if (extern_tls_short != 1234 || extern_tls_float != 1.5f)
|
|
errors = 1;
|
|
|
|
extern_tls_short = -2222;
|
|
extern_tls_float = 2.5f;
|
|
extern_tls_float += 1.0f;
|
|
|
|
if (extern_tls_short != -2222 || extern_tls_float != 3.5f)
|
|
errors = 1;
|
|
|
|
printf("extern tls errors: %d\n", errors);
|
|
return errors;
|
|
}
|
|
#endif
|