I figured out. ARM_EXIDX was skipped because TCC_ARM_EABI was not
defined. What I did was just run ./configure without any arguments and
then a "make". Maybe this provides a clue to the maintainers.
After hacking the defines (-DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT), tcc now
does not crash during linking, because it now cannot compile. Weird.
Aron
On 12/23/18 1:18 PM, Barath Aron wrote:
In tccelf.c:2359, it clearly jumps to the end of the loop.
And dies in the next loop: /* second short pass to update... */
Take this gdb fragment as an explanation:
Breakpoint 3, tcc_load_object_file (s1=0x45a098, s1@entry=0x454150,
fd=4562744, fd@entry=3, file_offset=4563600, file_offset@entry=0)
at tccelf.c:2357
2357 sh_name = (char *) strsec + sh->sh_name;
(gdb) p i
$21 = 6
(gdb) n
2359 if (sh->sh_type != SHT_PROGBITS &&
(gdb) p *sh
$22 = {sh_name = 79, sh_type = 1879048193, sh_flags = 130, sh_addr = 0,
sh_offset = 176, sh_size = 8, sh_link = 2, sh_info = 0, sh_addralign
= 4,
sh_entsize = 0}
(gdb) n
2439 next: ;
(gdb) n
2354 if (i == ehdr.e_shstrndx)
(gdb) p i
$23 = 7
1879048193 == 0x70000001 == SHT_ARM_EXIDX
Aron
On 12/23/18 11:52 AM, Daniel Glöckner wrote:
On Sun, Dec 23, 2018 at 11:44:50AM +0100, Barath Aron wrote:
I traced the whole object loading procedure with gdb:
- ARM_EXIDX (section 6) is definitely not loaded, I traced it with gdb.
Where did tcc decide to skip ARM_EXIDX?
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel