From f2a071e808db2896823463089531e08d0b2d0ee8 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Sun, 4 Sep 2016 00:19:47 +0200 Subject: [PATCH] Fix aliases on 64 bit Use correct width ELF structure. --- tccgen.c | 4 ++-- tests/tcctest.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tccgen.c b/tccgen.c index 410dcb70..1dc58640 100644 --- a/tccgen.c +++ b/tccgen.c @@ -6919,13 +6919,13 @@ static int decl0(int l, int is_for_loop_init) if (ad.alias_target) { Section tsec; - Elf32_Sym *esym; + ElfW(Sym) *esym; Sym *alias_target; alias_target = sym_find(ad.alias_target); if (!alias_target || !alias_target->c) tcc_error("unsupported forward __alias__ attribute"); - esym = &((Elf32_Sym *)symtab_section->data)[alias_target->c]; + esym = &((ElfW(Sym) *)symtab_section->data)[alias_target->c]; tsec.sh_num = esym->st_shndx; put_extern_sym2(sym, &tsec, esym->st_value, esym->st_size, 0); } diff --git a/tests/tcctest.c b/tests/tcctest.c index 4e51ea12..d1f6c9b9 100644 --- a/tests/tcctest.c +++ b/tests/tcctest.c @@ -2962,6 +2962,7 @@ void __attribute__((weak)) weak_test(void) printf("weak_asm_v1=%d\n",&weak_asm_v1 != NULL); printf("weak_asm_v2=%d\n",&weak_asm_v2 != NULL); printf("weak_asm_v3=%d\n",&weak_asm_v3 != NULL); + printf("some_lib_func=%d\n", &some_lib_func ? some_lib_func() : 0); } int __attribute__((weak)) weak_f2() { return 222; }