You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The system libelf and "legacy" libelf conflict on compilation under Arch Linux. Forcing to compile with just legacy-libelf under 32-bit fails as legacy-libelf does not define Elf32_Xword -- saying in a source file that there is no such thing ({libelf_path}/src/lib/32.size.c). The system libelf on Arch (from elfutils) defines Elf32_Xword as uint64 (same as Elf64_Xword), and this is confirmed in the elf(5) manpage (http://man7.org/linux/man-pages/man5/elf.5.html).
From previous discussions here and looking at the source, it seems Android is currently the only platform that deviates from this definition (please correct me if I'm wrong).
Therefore, perhaps it'd be best to define Elf_Xword as Elf64_Xword for 64 and 32-bit platforms, and have Android cross-compilation typedef Elf64_Xword as Elf32_Word
The text was updated successfully, but these errors were encountered:
Thanks for the info. I will take a look at the patch described in the coprthr app note for android and try to remember
why I did things the way I did them. Getting Android ELF to work was tricky. Possibly this additional info will
suggest a better solution. The original issues was that I had to patch libelf, I tried half dozen ways around it and
none worked.
sctincman wrote:
The system libelf and "legacy" libelf conflict on compilation under Arch
Linux. Forcing to compile with just legacy-libelf under 32-bit fails as
legacy-libelf does not define Elf32_Xword -- saying in a source file
that there is no such thing ({libelf_path}/src/lib/32.size.c). The
system libelf on Arch (from elfutils) defines Elf32_Xword as uint64
(same as Elf64_Xword), and this is confirmed in the elf(5) manpage
(http://man7.org/linux/man-pages/man5/elf.5.html).
From previous discussions here and looking at the source, it seems
Android is currently the only platform that deviates from this
definition (please correct me if I'm wrong).
Therefore, perhaps it'd be best to define Elf_Xword as Elf64_Xword for
64 and 32-bit platforms, and have Android cross-compilation typedef
Elf64_Xword as Elf32_Word
—
Reply to this email directly or view it on GitHub #17.
The system libelf and "legacy" libelf conflict on compilation under Arch Linux. Forcing to compile with just legacy-libelf under 32-bit fails as legacy-libelf does not define Elf32_Xword -- saying in a source file that there is no such thing ({libelf_path}/src/lib/32.size.c). The system libelf on Arch (from elfutils) defines Elf32_Xword as uint64 (same as Elf64_Xword), and this is confirmed in the elf(5) manpage (http://man7.org/linux/man-pages/man5/elf.5.html).
From previous discussions here and looking at the source, it seems Android is currently the only platform that deviates from this definition (please correct me if I'm wrong).
Therefore, perhaps it'd be best to define Elf_Xword as Elf64_Xword for 64 and 32-bit platforms, and have Android cross-compilation typedef Elf64_Xword as Elf32_Word
The text was updated successfully, but these errors were encountered: