http://llvm.org/bugs/show_bug.cgi?id=14119
Bug #: 14119
Summary: [Objective-C] Unrecognized selector when using
categories in static libraries
Product: clang
Version: trunk
Platform: PC
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: -New Bugs
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Classification: Unclassified
Created attachment 9380
--> http://llvm.org/bugs/attachment.cgi?id=9380
Small setup to reproduce the bug.
Symbols added through the use of Objective-C categories inside static libraries
are not properly linked. This only happens on 64-bit builds.
Steps to reproduce:
1. Compile an objective-c source containing ONLY category methods.
2. Link the object file into a static library.
3. Link an executable/dylib against the static library.
What should happen:
The final binary should contain the category methods from the static library.
What actually happens:
Category methods from the static library are not linked in the final binary.
Running the executable yields unrecognized selector errors.
Possible workarounds:
A possible fix for this is to use force-load when linking the static library.
Another fix is to include a dummy class implementation in the source file
containing the category.
Tested with:
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM 2.9svn)
clang svn trunk
Note: on older clang versions -force_load does not fix the problem either.
Also happens in gcc: i686-apple-darwin10-gcc-4.2.1
I've attached a small test project that reproduces the bug.
Build with: "make";
USE_CHUCKNORRIS=1 make; -> this will include a dummy class inside the category
source file, fixing the bug.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs