mirror of
git://repo.or.cz/tinycc.git
synced 2026-06-17 23:54:16 +08:00
Currently tcc does not use lazy binding. It puts all relocations in the RELX
section and solve them all at startup.
This was not working on bsd.
tcc.h:
- New RELPLT_SECTION_FMT for plt relocations
- New entry relocplt in struct Section
tccelf.c:
- put_elf_reloca: put R_JMP_SLOT in relocplt section
- build_got_entries*: Use two passes because R_JMP_SLOT and R_GLOB_DAT
can not be intermixed on some targets (arm, arm64)
- layout_sections: Calculate correct size relocplt section for DT_ values.
Make sure relocplt is last
- fill_dynamic: Add DT_ values when got is filled
move DT_VERSYM because dynamic linker cannot handle it standone
- Add note section for NetBSD
arm-link.c/arm64-link.c/i386-link.c/riscv64-link.c/x86_64-link.c:
- fill got table with pointer to plt section or symbol value in case
of TCC_OUTPUT_MEMORY
arm-link.c/arm64-link.c:
- fix offset first plt entry
i386-link.c/x86_64-link.c:
- use correct reloc entry
- use relofs - sizeof (ElfW_Rel) because the reloc is already done
lib/bcheck.c:
- no __libc_freeres on FreeBSD and NetBSD
tests/Makefile:
- Add -fno-stack-protector for OpenBSD
tests/tests2/Makefile:
- disable 106_pthread/114_bound_signal
|
||
|---|---|---|
| .. | ||
| alloca86_64-bt.S | ||
| alloca86_64.S | ||
| alloca86-bt.S | ||
| alloca86.S | ||
| alloca-arm.S | ||
| armeabi.c | ||
| armflush.c | ||
| bcheck.c | ||
| bt-dll.c | ||
| bt-exe.c | ||
| bt-log.c | ||
| dsohandle.c | ||
| fetch_and_add_arm64.S | ||
| fetch_and_add_arm.S | ||
| fetch_and_add_riscv64.S | ||
| lib-arm64.c | ||
| libtcc1.c | ||
| Makefile | ||
| va_list.c | ||