New behavior of GCC_SYMBOLS_PRIVATE_EXTERN
New behavior of GCC_SYMBOLS_PRIVATE_EXTERN
- Subject: New behavior of GCC_SYMBOLS_PRIVATE_EXTERN
- From: Gabriele de Simone <email@hidden>
- Date: Fri, 11 Dec 2009 14:20:30 -0500
When building a Cocoa framework in 64bit, I noticed that the "Symbols Hidden by Default" option (GCC_SYMBOLS_PRIVATE_EXTERN) actually had an effect on Cocoa classes as well as C symbols.
In the 32bit days, the Cocoa classes implemented in my framework would always be exported and available to anybody linking against the framework, regardless of the current setting of GCC_SYMBOLS_PRIVATE_EXTERN. In a freshly minted 64 bit version of the framework, the same classes would now be hidden to other objects linking against the framework if GCC_SYMBOLS_PRIVATE_EXTERN = YES.
Does this change only affect linking operations, or does it "really" hide the symbols? It is my understanding that if an Obj-C class has been added to the runtime, anyone can look it up with NSClassFromString() or similar methods anyway. Does this hold true in the 64bit runtime?
For example, if the framework implements a hidden Obj-C class called MyFancyClass, and another class with the same name is also implemented and exported (public) by another linked object, would there still be a symbol-name collision in the eyes of the runtime?
Thanks,
Gabe
Noise Industries, LLC _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden