Re: Framework and Prebinding
Re: Framework and Prebinding
- Subject: Re: Framework and Prebinding
- From: Gwynne <email@hidden>
- Date: Fri, 29 Oct 2004 11:15:57 -0400
On Oct 29, 2004, at 10:53 AM, Wade Tregaskis wrote:
You can actually disable prebinding in apps a different way - remake
one of the libraries it depends on, and the prebinding fails in the
applications (and update_prebinding is unable to update it). I found
this out when I compiled a newer version of zlib - there's a lot of
apps & libraries that link against it, it seems. I actually built it
prebound, but it seems update_prebinding can't redo the prebinding
anyway.
I've noticed this a lot - my console used to be filled with thousands
of lines of failed update-prebinding messages. I don't think it's as
simple as upgrading the library; I'd say it's caused by some specific
reason, e.g. some existing symbol in the library changing. I've had
cases in my own software where prebinding gets broken and then fixes
itself again (many builds later), and so on, over and over.
Also, I'm not certain how certain parts of prebinding work, but from
memory Apple's code cannot enlarge or shrink the actual binary - it
has to make do with the originally allocated space, which is in 4k
chunks... I'm pretty sure redo_prebinding barfs if the new bindings
would require more than the available space (can't recall about the
opposite scenario; I think they just fill in the blanks with
whitespace, so to speak, although I'm not certain). I guess if the
prebinding has to copy in references to every symbol (although I
wouldn't think so, intuitively) a newer version is likely to have
more, and so overflow it.
But, I'm going entirely from my distant memory at this point, rounded
off with conjecture, so I may be regurgitating absolute drivel. I'm
surprised one of the relevant engineers at Apple hasn't piped up yet.
Perhaps they're afraid. ;)
I rebuilt libxml2 on my system, on which anything linked to Cocoa
depends. It's not prebound unless I add a pile of LDFLAGS during
configure, so prebinding tends to fail on things. But when I DID go in
and add the necessary linker flags, the entire system went down after
make install, and I had to copy the old libxml2 from another Panther
system and rebuild the new one without the prebinding. Frankly, I wish
I could do away with prebinding altogether. It's not at all helpful on
modern machines.
-- Gwynne, key to the Code that runs us all
Email: email@hidden
Web:
http://musicimage.plasticchicken.com/Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden