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, address@hidden,
fd=4562744, address@hidden, file_offset=4563600, address@hidden)
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
address@hidden
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
_______________________________________________
Tinycc-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/tinycc-devel