Still doesn’t work, same error output. I am at svn version 38351. Which revision have you pushed it to?
P.S. Since I have a homebrew OS project lying somewhere (can be reduced to custom userland on top of Ubuntu kernel+libc) and if I had the time I would try rewriting Base and CoreBase into one library. > On Feb 20, 2015, at 01:07, Stefan Bidigaray <[email protected]> wrote: > > Oh well, I forgot to CC the list on my previous e-mail. No problem, I > committed a fix to this problem just now. Can you try again and let me know > if it works as expected? > > Thanks > > On Wed, Feb 18, 2015 at 10:51 AM, Stefan Bidigaray <[email protected] > <mailto:[email protected]>> wrote: > So when CoreBase first came around ARC was at it's infancy and being able to > seemingly go from CF to ObjC objects was a good idea. All the "toll-free > bridged" types have a construct similar to: > #ifdef __OBJC__ > @class NSData; > @class NSMutableData; > typedef NSData* CFDataRef; > typedef NSMutableData* CFMutableDataRef; > #else > typedef const struct __CFData * CFDataRef; > typedef struct __CFData * CFMutableDataRef; > #endif > This is very handy, but after doing some research on ARC it requires explicit > transferring control to C because ARC cannot keep up with what's going on in > C structs. See > https://developer.apple.com/library/mac/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html > > <https://developer.apple.com/library/mac/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html> > if you're interested in the details. > > The obvious compatibility solution here would be to get rid of those #ifdef's > and always define CF types to be typedef struct ... > > I would appreciate if David C. could confirm that this is the correct > solution before committing, though. > > On Tue, Feb 17, 2015 at 11:25 AM, Maxthon Chan <[email protected] > <mailto:[email protected]>> wrote: > I am getting a bit of trouble compiling code with CoreBase and ARC at the > same time. I am using latest trunk version of base and corebase on Ubuntu > 14.04 LTS with clang 3.5. Here is the log: > > $ make > This is gnustep-make 2.6.6. Type 'make print-gnustep-make-help' for help. > Making build-headers for framework CGIKit... > Creating CGIKit.framework/Versions/H/Headers... > Creating derived_src/.stamp... > Creating CGIKit.framework/Versions/H/Resources... > Updating Version/Current symlink... > Making all for framework CGIKit... > Compiling file CGIApplication.m ... > In file included from CGIApplication.m:9: > In file included from ./CGIApplication.h:12: > In file included from ../CGIKit/CGIKitDefines.h:51: > In file included from > /usr/local/include/GNUstep/CoreFoundation/CoreFoundation.h:36: > In file included from /usr/local/include/GNUstep/CoreFoundation/CFBundle.h:31: > In file included from /usr/local/include/GNUstep/CoreFoundation/CFURL.h:34: > /usr/local/include/GNUstep/CoreFoundation/CFString.h:538:15: error: ARC > forbids Objective-C objects in struct > CFStringRef theString; > ^ > In file included from CGIApplication.m:9: > In file included from ./CGIApplication.h:12: > In file included from ../CGIKit/CGIKitDefines.h:51: > In file included from > /usr/local/include/GNUstep/CoreFoundation/CoreFoundation.h:48: > In file included from > /usr/local/include/GNUstep/CoreFoundation/CFPropertyList.h:33: > In file included from /usr/local/include/GNUstep/CoreFoundation/CFStream.h:33: > /usr/local/include/GNUstep/CoreFoundation/CFSocket.h:61:13: error: ARC > forbids Objective-C objects in struct > CFDataRef address; > ^ > In file included from CGIApplication.m:9: > In file included from ./CGIApplication.h:12: > In file included from ../CGIKit/CGIKitDefines.h:51: > In file included from > /usr/local/include/GNUstep/CoreFoundation/CoreFoundation.h:60: > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:76:12: error: ARC > forbids Objective-C objects in struct > CFURLRef systemID; > ^ > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:83:15: error: ARC > forbids Objective-C objects in struct > CFStringRef attributeName; > ^ > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:98:12: error: ARC > forbids Objective-C objects in struct > CFURLRef sourceURL; > ^ > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:111:19: error: ARC > forbids Objective-C objects in struct > CFDictionaryRef attributes; > ^ > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:119:15: error: ARC > forbids Objective-C objects in struct > CFStringRef contentDescription; > ^ > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:126:15: error: ARC > forbids Objective-C objects in struct > CFStringRef replacementText; > ^ > /usr/local/include/GNUstep/CoreFoundation/CFXMLNode.h:146:15: error: ARC > forbids Objective-C objects in struct > CFStringRef dataString; > ^ > CGIApplication.m:30:65: error: expected method body > - (instancetype)_init __attribute__((objc_method_family(init))) > NS_REPLACES_RECEIVER > ^ > 10 errors generated. > make[2]: *** [obj/CGIKit.obj/CGIApplication.m.o] Error 1 > make[1]: *** [internal-framework-run-compile-submake] Error 2 > make: *** [CGIKit.all.framework.variables] Error 2 > > And then I got this trying to check for “pesky typedefs": > > $ clang -E $(gnustep-config --objc-flags) -fobjc-arc -I. -I.. CGIApplication.m > // … lines removed … > # 268 "/usr/local/include/GNUstep/CoreFoundation/CFBase.h" > typedef CFTypeRef CFPropertyListRef; > > > > > > @class NSString; > @class NSMutableString; > typedef NSString * CFStringRef; > typedef NSMutableString * CFMutableStringRef; > # 294 "/usr/local/include/GNUstep/CoreFoundation/CFBase.h" > typedef const struct __CFAllocator * CFAllocatorRef; > > typedef void* (*CFAllocatorAllocateCallBack)(CFIndex allocSize, > CFOptionFlags hint, void *info); > // … lines removed … > > The typedef here works “seemingly” well without ARC but it bites me in the > ass when ARC is used. > > Does this call for a change? How to do it? > _______________________________________________ > Discuss-gnustep mailing list > [email protected] <mailto:[email protected]> > https://lists.gnu.org/mailman/listinfo/discuss-gnustep > <https://lists.gnu.org/mailman/listinfo/discuss-gnustep> > >
_______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
