[xmonad] darcs patch: strip generated binary
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Fri Feb 6 02:31:29 EST 2009
On 2009 Feb 5, at 11:24, Gwern Branwen wrote:
> On Thu, Feb 5, 2009 at 10:43 AM, Brandon S. Allbery KF8NH
> <allbery at ece.cmu.edu> wrote:
>> On 2009 Feb 4, at 20:39, Gwern Branwen wrote:
>>>
>>> On Wed, Feb 4, 2009 at 7:51 PM, Don Stewart <dons at galois.com> wrote:
>>>>
>>>> How portable?
>>>
>>> By a funny coincidence, I was messing with strip a few days ago (for
>>> yi), and my discussion with dcoutts covered just this.
>>>
>>> He told me that -optl-s was considered bad, as that option gets
>>> passed
>>> to the linker and -s is apparently specific to GNU ld.
>>
>> Er? ld -s has worked since Version 7 UNIX. Or is this about e.g.
>> Cygwin/mingw not implementing it?07:02:19 <dcoutts> gwern: -s is
>> specific to the GNU linker I think. So
> probably does not work on OSX, BSD, Solaris.
Solaris:
-s Strips symbolic information from the output file. Any
debugging information, that is, .line, .debug*, and
.stab* sections, and their associated relocation
entries are removed. Except for relocatable files, a
symbol table SHT_SYMTAB and its associated string
table section are not created in the output object
file. See also -z redlocsym.
FreeBSD, NetBSD: uses GNU ld
OSX 10.5:
-s Completely strip the output, including removing the
symbol
table. This file format variant is no longer
supported.
This option is obsolete.
So we do have a portability issue, thanks to Apple changing a bunch of
stuff relating to linking and object files in Leopard. But:
strip no longer removes relocation entries under any
condition.
Instead, it updates the external relocation entries (and
indirect sym-
bol table entries) to reflect the resulting symbol table.
strip prints
an error message for those symbols not in the resulting
symbol table
that are needed by an external relocation entry or an
indirect symbol
table. The link editor ld(1) is the only program that can
strip relo-
cation entries and know if it is safe to do so.
which to me says that strip can break working programs and is not
recommended --- so strip isn't safe either on OSX.
And, for the record: from the 7th Research Edition manpages
–s ‘Strip’ the output, that is, remove the symbol table and
relocation bits to save space (but impair the usefulness
of the debugger). This information can also be removed
by strip(1).
ld -s goes back a long ways.
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/xmonad/attachments/20090206/8b4b031b/PGP.bin
More information about the xmonad
mailing list