|
From: | Christian Jullien |
Subject: | [Tinycc-devel] tcc no longer compiles on Windows |
Date: | Fri, 7 Dec 2018 07:03:42 +0100 |
Tccelf.c has an undefined reference to sym_index with R_X86_64_PC32 case line 897. The declaration of sym_index at line 877 is not covered by this case. static int prepare_dynamic_rel(TCCState *s1, Section *sr) { ElfW_Rel *rel; int type, count; count = 0; for_each_elem(sr, 0, rel, ElfW_Rel) { type = ELFW(R_TYPE)(rel->r_info); switch(type) { #if defined(TCC_TARGET_I386) || defined(TCC_TARGET_X86_64) #if defined(TCC_TARGET_I386) int sym_index = ELFW(R_SYM)(rel->r_info); <<<< definition limited to I386 case R_386_32: if (!get_sym_attr(s1, sym_index, 0)->dyn_index && ((ElfW(Sym)*)symtab_section->data + sym_index)->st_shndx == SHN_UNDEF) { /* don't fixup unresolved (weak) symbols */ rel->r_info = ELFW(R_INFO)(sym_index, R_386_RELATIVE); break; } #elif defined(TCC_TARGET_X86_64) case R_X86_64_32: case R_X86_64_32S: case R_X86_64_64: #endif count++; break; #if defined(TCC_TARGET_I386) case R_386_PC32: #elif defined(TCC_TARGET_X86_64) case R_X86_64_PC32: #endif if (get_sym_attr(s1, sym_index, 0)->dyn_index) count++; break; #endif default: break; } } if (count) { /* allocate the section */ sr->sh_flags |= SHF_ALLOC; sr->sh_size = count * sizeof(ElfW_Rel); } return count; } |
[Prev in Thread] | Current Thread | [Next in Thread] |