• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: does the prebinding daemon change our libs ?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: does the prebinding daemon change our libs ?


  • Subject: Re: does the prebinding daemon change our libs ?
  • From: joshua portway <email@hidden>
  • Date: Fri, 31 Oct 2003 23:16:17 +0000

does setting this flag stop the daemon on users machines, or just at our build time ?
If our app is prebound already (we set the base addresses for the frameworks, and it builds without any warnings about overlapping libraries), can we be sure that the prebinding daemon of users machines isn't going to touch it ? Or will it "fix" the prebinding on everything if they upgrade their OS or something ?


It's pretty important to us, because if the frameworks and dylibs are altered then the next time our users try to upgrade their app it'll just break completely. Strangely enough, this hasn't happened during our beta testing as far as I'm aware - we just realised today that it would be a possibility.

Does the automatic prebinding thing on users machines only happen to apps, or does it happen to frameworks and libraries too ? Our app is actually a Java application that loads a large native library as a jnilib dylib, and that in turn references 6 or 7 private frameworks which in turn load their own dylib plugins - I'm wondering if the reason we seem to have got away with it so far is because we don't actually have a native launchable executable.

thanks for your help,
josh



On 31 Oct 2003, at 22:06, Matthew Formica wrote:

Yes, the fix_prebinding daemon does modify your libraries themselves. There
is an environment variable you can set in dyld (DYLD_NO_FIX_PREBINDING) to
tell dyld to not run fix_prebinding on your application, and you can also
pass the -nofixprebinding ld flag at link time to set this up when your app
is built. I believe that the changes aren't isolated to any one spot in
your binary; prebinding affects the address of all symbols, so they are all
modified.


- Matthew

On 10/31/03 9:04 AM, "joshua portway" <email@hidden> wrote:

Our app links quite a few private frameworks and plugins, which are
stored within the app bundle.
If a user installs this on a different OS version, or for some other
reason the pre-binding daemon sees fit to fix our app, does it actually
modify the libraries themselves, or does it store this information
elsewhere ?


We have an automatic update mechanism which patches our libraries and
frameworks to update them when new releases are available, and the
problem we've just realised is that if the prebinding daemon has messed
with our libraries in the meantime the patching process will almost
certainly mess up and produce a completely scrambled library as a
result.


If the daemon does change the lib, are the changes confined to an
easily identifiable portion of the file - if they were then maybe we
could change our patcher so that it always replaced that portion of the
file, rather than patching it.


josh
_______________________________________________
xcode-users mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/xcode-users
Do not post admin requests to the list. They will be ignored.
_______________________________________________
xcode-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/xcode-users
Do not post admin requests to the list. They will be ignored.

References: 
 >Re: does the prebinding daemon change our libs ? (From: Matthew Formica <email@hidden>)

  • Prev by Date: Re: Java fun?
  • Next by Date: CVS (SCM) commits
  • Previous by thread: Re: does the prebinding daemon change our libs ?
  • Next by thread: Java fun?
  • Index(es):
    • Date
    • Thread