More fixes on ppcle rewriting of statically linked binaries
authorXiaozhu Meng <xmeng@cs.wisc.edu>
Wed, 30 Jan 2019 19:46:16 +0000 (19:46 +0000)
committerXiaozhu Meng <xmeng@cs.wisc.edu>
Wed, 30 Jan 2019 19:46:16 +0000 (19:46 +0000)
commit8406a8facd884374c6767b5b5ed947bfda4c2d3c
tree5f0e156069343ba5cb9f0ab461609d9e615693e4
parent219df01f7502451e05603ecbcac86446d2dc9800
More fixes on ppcle rewriting of statically linked binaries

1. Revert the change made in "760bfda6e409b4b61a6acd093548afa5860b4af1" about undefined symbols.
Section with number 0 is NULL section, not .bss. So, symbols with section number 0 are indeed
undefined symbols.
2. libc.a depends on libgcc.a on fedora 28 ppcle. So, also open libgcc.a to resolve undefined symbols.
3. Fix the handling of relocation entry "R_PPC64_REL24". R_PPC64_REL24 means the caller has set
up R2, so we should call the local entry point. Calling the global entry may lead to wrong r2, because
r12 is not properly set at the call site.
4. IFUNC should not be treated as a need for PLT.
dyninstAPI/src/parse-power.C
symtabAPI/src/Object-elf.C
symtabAPI/src/emitElfStatic-ppc64.C
symtabAPI/src/emitElfStatic.C