Hi all,

I'm currently working on distention, cleaning up and refactoring tccelf.c. The 
process already uncovered some bugs and one of them is that PLT0 is broken for 
ARM [1]. Since binaries are working, I investigated and found that the lazy 
relocation of PLTGOT entries is not in effect. When _start is run, PLTGOT 
entries already hold their final values.

I tries comparing the output of readelf -a for an hello world program but there 
are too many differences and I didn't spot anything obvious. So I'm turning to 
you dear TinyCC community[2] for some explanation. Why does ld.so behave as if 
RTLD_BIND_NOW was set when running TinyCC generated executables?

[1] it lacks an extra 4 bytes to hold offset to GOT and code in relocate_plt to 
write the offset in that space.
[2] Michael, I'm asking you explicitly since you are one of the author of the 
System V ABI for x86_64 and thus probably know a fair amount on the subject.

_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to