On Jun 21, 2015, at 17:52 , Roland King <[email protected]> wrote:
>
> But this isn’t a framework weak link - it should just be a symbol weak link. 
> That symbol has the availability macro on it, so it should be in the binary 
> as weak as long as the target is, as Scott said earlier, set to pre-10.7. But 
> if the deployment target is 10.7, that information should be in the binary as 
> well and it should fail to load at all, usually with a very cryptic error 
> message. Not making much sense.

Looking back at the error message:

> Dyld Error Message:
> Symbol not found: _OBJC_CLASS_$_NSDataDetector
> Referenced from: /Applications/Mellel.app/Contents/MacOS/MyApp
> Expected in: 
> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation


then, yes, it looks like a weak *class* link problem, not a weak *framework* 
link problem.

However, my theory is still the same. My theory is that Xcode [hypothetically] 
knows that automatic weak linking of class symbols wasn’t available prior to 
10.6.8 [hypothetically], and so a deployment target of 10.6.0 will set the 
unresolved symbol to require a strong link**. Changing the deployment target to 
10.6.8 [hypothetically] will cause Xcode [hypothetically] to emit a weak link 
for the class symbol.

Alternatively, there may be a linker command that forces it to make the 
_OBJC_CLASS_$_NSDataDetector symbol a weak reference at link time. That might 
solve it with the existing code and deployment target [hypothetically].

I freely admit that I know very little about this stuff. My intended 
contribution to the conversation was to remind everyone that the “modern” 
weak-linking mechanism that made everyone’s life easier was *not* introduced on 
a major OS X version boundary, IIRC.


** Or something that turns into a dyld error message on 10.6 at load time.



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to