[yocto] prelink-cross with -fno-plt
Shane Peelar
lookatyouhacker at gmail.com
Thu May 23 08:05:01 PDT 2019
Hi Everyone @ the Yocto project,
I'm Shane Peelar, a PhD Candidate at the University of Windsor.
I'm writing to you about prelink-cross, as part of the Yocto project.
Specifically, I'm looking at using it with executables built using
`-fno-plt` under GCC.
I wasn't quite sure where to send this email to, so I figured I'd try
here. If there's a better place to send this, please let me know.
Right now, prelink-cross seems to fail an assertion in arch-x86_64.c, line
421, when
using it with an executable built with `-fno-plt`:
...
assert (i < dso->ehdr.e_shnum)
...
This snippet seems to be looking for the ".plt" section and, since it can't
find it, the assertion fires. This makes sense because in `-fno-plt`
executables, the `.plt` section is missing entirely.
I'm not an expert on ELF stuff, although I am learning quickly. It looks
like
this code wants to write into GOT[1] the address of ".plt" + 0x16 -- since
".plt" doesn't
exist, does it make sense to just change this assert to an if statement
like so:
...
if (i < dso->ehdr.e_shnum)
{ ... }
...
and skip over that part? Or is this a real error condition for
prelink-cross and it really should not continue? The executable in
question is also non-PIE, if that makes a difference.
Thanks for your time,
Shane
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190523/2c6548e3/attachment.html>
More information about the yocto
mailing list