This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
unstriped PE executables contain data from the import library after the end of the last section - is this correct ?
- From: Pavel Tsekov <ptsekov at syntrex dot com>
- To: binutils at sources dot redhat dot com
- Cc: cygwin at cygwin dot com
- Date: Mon, 8 Jul 2002 15:18:36 +0200
- Subject: unstriped PE executables contain data from the import library after the end of the last section - is this correct ?
- Organization: Syntrex, Inc.
- Reply-to: Pavel Tsekov <ptsekov at syntrex dot com>
Hello,
Some days ago I sent a simialiar message to the binutils list but I
haven't received an answer yet - http://sources.redhat.com/ml/binutils/2002-07/msg00122.html.
I assume this is because I haven't asked smart-enough. Here is a
refined version of the original question, which I hope will qualify
for an answer :)
In short: I noticed that the executables produced with cygwin tools
contain some additional data after the last valid section i.e. having
an executable with the following sections:
.text
.data
.bss
.idata
.stab
.stabstr
there will be some data after the end of the .stabstr section.
Stripping with --strip-debug removes the data from .stab and .stabstr,
but this additional data is still there.
Stripping with --strip-unneeded still leaves some of it the binary.
Stripping with --strip-all removes the last pieces of this data
completly.
Now since my initial post I tried to find what this data is and it
seems that it is the output of the functions make_one() and friends
from ld/pe-dll.c. Now my question is - what is the purpose of having
this data from the import library, appended to the executable itself ?
Is this correct ?
Thanks.