fixes a crash for the empry program (tcc -b empty.c) empty.c: int main() { return 0; }
Unified · Split
| @@ -140,6 +140,7 @@ PROGS_CROSS=$($(X64_CROSS)_LINK) $($(WIN32_CROSS)_LINK) $($(WIN64_CROSS)_LINK) $ · 139 unmodified lines | |||
| 140 | LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a lib/x86_64/libtcc1.a \ | 140 | LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a lib/x86_64/libtcc1.a \ |
| 141 | lib/arm64/libtcc1.a | 141 | lib/arm64/libtcc1.a |
| 142 | LIBTCC1=libtcc1.a | 142 | LIBTCC1=libtcc1.a |
| 143 | BCHECK=yes | ||
| 143 | else ifeq ($(ARCH),x86-64) | 144 | else ifeq ($(ARCH),x86-64) |
| 144 | NATIVE_FILES=$(X86_64_FILES) | 145 | NATIVE_FILES=$(X86_64_FILES) |
| 145 | PROGS_CROSS=$($(I386_CROSS)_LINK) $($(WIN32_CROSS)_LINK) $($(WIN64_CROSS)_LINK) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) | 146 | PROGS_CROSS=$($(I386_CROSS)_LINK) $($(WIN32_CROSS)_LINK) $($(WIN64_CROSS)_LINK) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) |
| @@ -283,6 +284,10 @@ install: $(PROGS) $(TCCLIBS) $(TCCDOCS) · 137 unmodified lines | |||
| 283 | ifneq ($(LIBTCC1),) | 284 | ifneq ($(LIBTCC1),) |
| 284 | mkdir -p "$(tccdir)/$(ARCH)" | 285 | mkdir -p "$(tccdir)/$(ARCH)" |
| 285 | $(INSTALL) -m644 $(LIBTCC1) "$(tccdir)/$(ARCH)" | 286 | $(INSTALL) -m644 $(LIBTCC1) "$(tccdir)/$(ARCH)" |
| 287 | endif | ||
| 288 | ifneq ($(BCHECK),) | ||
| 289 | -mkdir -p "$(tccdir)/$(ARCH)" | ||
| 290 | $(INSTALL) -m644 lib/$(ARCH)/bcheck.o "$(tccdir)/$(ARCH)" | ||
| 286 | endif | 291 | endif |
| 287 | $(INSTALL) -m644 $(addprefix $(top_srcdir)/include/,$(TCC_INCLUDES)) $(top_srcdir)/tcclib.h "$(tccdir)/include" | 292 | $(INSTALL) -m644 $(addprefix $(top_srcdir)/include/,$(TCC_INCLUDES)) $(top_srcdir)/tcclib.h "$(tccdir)/include" |
| 288 | mkdir -p "$(libdir)" | 293 | mkdir -p "$(libdir)" |
| @@ -303,6 +308,7 @@ ifdef CONFIG_CROSS · 14 unmodified lines | |||
| 303 | mkdir -p "$(tccdir)/arm64" | 308 | mkdir -p "$(tccdir)/arm64" |
| 304 | $(INSTALL) -m644 lib/arm64/libtcc1.a "$(tccdir)/arm64" | 309 | $(INSTALL) -m644 lib/arm64/libtcc1.a "$(tccdir)/arm64" |
| 305 | $(INSTALL) -m644 lib/i386/libtcc1.a "$(tccdir)/i386" | 310 | $(INSTALL) -m644 lib/i386/libtcc1.a "$(tccdir)/i386" |
| 311 | $(INSTALL) -m644 lib/i386/bcheck.o "$(tccdir)/i386" | ||
| 306 | $(INSTALL) -m644 lib/x86_64/libtcc1.a "$(tccdir)/x86-64" | 312 | $(INSTALL) -m644 lib/x86_64/libtcc1.a "$(tccdir)/x86-64" |
| 307 | $(INSTALL) -m644 $(top_srcdir)/win32/lib/*.def "$(tccdir)/win32/lib" | 313 | $(INSTALL) -m644 $(top_srcdir)/win32/lib/*.def "$(tccdir)/win32/lib" |
| 308 | $(INSTALL) -m644 lib/i386-win/libtcc1.a "$(tccdir)/win32/lib/32" | 314 | $(INSTALL) -m644 lib/i386-win/libtcc1.a "$(tccdir)/win32/lib/32" |
| @@ -1564,7 +1564,10 @@ ST_FUNC void tcc_add_bcheck(TCCState *s1) · 1563 unmodified lines | |||
| 1564 | pinit = section_ptr_add(init_section, 5); | 1564 | pinit = section_ptr_add(init_section, 5); |
| 1565 | pinit[0] = 0xe8; | 1565 | pinit[0] = 0xe8; |
| 1566 | put32(pinit + 1, -4); | 1566 | put32(pinit + 1, -4); |
| 1567 | sym_index = find_elf_sym(symtab_section, "__bound_init"); | 1567 | tcc_add_support(s1, "bcheck.o"); |
| 1568 | sym_index = find_elf_sym(symtab_section, "__bound_init"); | ||
| 1569 | if (!sym_index) | ||
| 1570 | tcc_error("__bound_init not defined"); | ||
| 1568 | put_elf_reloc(symtab_section, init_section, | 1571 | put_elf_reloc(symtab_section, init_section, |
| 1569 | init_section->data_offset - 4, R_386_PC32, sym_index); | 1572 | init_section->data_offset - 4, R_386_PC32, sym_index); |
| 1570 | } | 1573 | } |