Re: Prebinding disabled because of overlap warning
Re: Prebinding disabled because of overlap warning
- Subject: Re: Prebinding disabled because of overlap warning
- From: Brent Gulanowski <email@hidden>
- Date: Mon, 8 Mar 2004 09:26:09 -0500
On Mar 8, 2004, at 8:57 AM, Jeremy Dronfield wrote:
> I've just tidied up my project, clearing out redundant files and
> frameworks and cleaning targets. I then built my app target and
> embedded framework in Deployment mode and got this series of warnings
> in the log:
>
> ld: warning prebinding disabled because (__PAGEZERO segment (address =
> 0x0 size = 0x1000) of
> /Users/jeremy/Projects/MyApp/MyApp/build/MyApp.app/Contents/MacOS/
> MyApp overlaps with __TEXT segment (address = 0x0 size = 0x9000) of
> @executable_path/../Frameworks/MyFramework.framework/Versions/A/
> MyFramework
> ld: warning prebinding disabled because (__TEXT segment (address =
> 0x1000 size = 0x25000) of
> /Users/jeremy/Projects/MyApp/MyApp/build/MyApp.app/Contents/MacOS/
> MyApp overlaps with __TEXT segment (address = 0x0 size = 0x9000) of
> @executable_path/../Frameworks/MyFramework.framework/Versions/A/
> MyFramework
> ld: warning prebinding disabled because (__TEXT segment (address =
> 0x1000 size = 0x25000) of
> /Users/jeremy/Projects/MyApp/MyApp/build/MyApp.app/Contents/MacOS/
> MyApp overlaps with __DATA segment (address = 0x9000 size = 0x2000) of
> @executable_path/../Frameworks/MyFramework.framework/Versions/A/
> MyFramework
> ld: warning prebinding disabled because (__TEXT segment (address =
> 0x1000 size = 0x25000) of
> /Users/jeremy/Projects/MyApp/MyApp/build/MyApp.app/Contents/MacOS/
> MyApp overlaps with __OBJC segment (address = 0xb000 size = 0x1000) of
> @executable_path/../Frameworks/MyFramework.framework/Versions/A/
> MyFramework
> ld: warning prebinding disabled because (__TEXT segment (address =
> 0x1000 size = 0x25000) of
> /Users/jeremy/Projects/MyApp/MyApp/build/MyApp.app/Contents/MacOS/
> MyApp overlaps with __LINKEDIT segment (address = 0xc000 size =
> 0x3000) of
> @executable_path/../Frameworks/MyFramework.framework/Versions/A/
> MyFramework
>
> The build succeeded, but could someone explain what's causing these
> warnings?
Prebinding of libraries requires specification of a memory location,
otherwise it defaults to putting the first segment at 0x000 (the
__PAGEZERO segment). But that's where your app is meant to go, so it
causes a conflict. Unfortunately, only applications are dynamically
located in memory on load, not frameworks.
If you debug your application from within Xcode, then choose
Debug->Shared Libraries... you will get a window that shows you where
all of the code segments are in memory for your application and the
libraries it is using. What you need to do is to find an area of memory
up above where Apple's frameworks are loaded or wherever else they've
left a big enough hole. They used to publish which areas were free for
3rd party libraries to use, but I haven't checked if that is still
available. Wait, here it is:
http://developer.apple.com/documentation/ReleaseNotes/Prebinding.html
(circa 10.2)
If you depend on other 3rd party frameworks, they will also have to be
prebound or you will get the same kind of errors as above. Some 3rd
party libraries are not built properly for prebinding (mostly open
source and/or hasty ports).
--
Brent Gulanowski email@hidden
[demime 0.98b removed an attachment of type application/pkcs7-signature which had a name of smime.p7s]
_______________________________________________
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.