Re: Prebinding disabled because of overlap warning
Re: Prebinding disabled because of overlap warning
- Subject: Re: Prebinding disabled because of overlap warning
- From: Jeremy Dronfield <email@hidden>
- Date: Mon, 8 Mar 2004 19:19:01 +0000
Thanks. That did it for me. I had the framework set to prebind in the
info window, and never got any warnings until I did my little
spring-cleaning operation. Now I've given the framework a -segladdr
address and it compiles okay. Thanks again.
-Jeremy
On 8 Mar 2004, at 2:31 pm, Brent Gulanowski wrote:
On Mar 8, 2004, at 9:26 AM, Brent Gulanowski wrote:
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.
Sorry that's not right. They are loaded dynamically, but that's slower
than if they are prebound. You can always specify a different location
for your executable if you want to, that put its up above the
framework. You can calculate the size of the framework using the
information in the library window.
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
--
Brent Gulanowski email@hidden
_______________________________________________
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.