|
From: | Fred Kiefer |
Subject: | Re: applications that fail to build with new gnustep from svn |
Date: | Wed, 06 Apr 2011 20:30:22 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.14) Gecko/20110221 SUSE/3.1.8 Thunderbird/3.1.8 |
On 06.04.2011 19:15, Sebastian Reitenbach wrote:
On 04/05/11 15:48, Sebastian Reitenbach wrote:Hi, the list below are the gnustep related ports on OpenBSD (some are not yet in there, but I plan to add them). The commented out ports fail to build with llvm/clang and gcc objective-c runtime. * libobjc2 works, but is just commented out, to just not build it at the time being, the ports below fail too, also with libobjc2 * gnumail is commented out, because pantomime failed to build, the mail I sent earlier, where I need to check the header thingie, Fred pointed out. * gworkspace fails, due to failing pdfkit. Also probably only a header issue, the port is patch to use the xpdf from the ports tree, instead of the one that is bundled with the pdfkit sources. * with price and graphos, I haven't yet tested the latest svn checkout, Riccardo, do you tested to compile those two? * projectcenter failes, even with latest svn checkout * steptalk is from svn, but still fails. SUBDIR += addresses SUBDIR += back SUBDIR += base SUBDIR += dl2 SUBDIR += easydiff SUBDIR += examples SUBDIR += fisicalab SUBDIR += ftp SUBDIR += gemas # SUBDIR += gnumailcompiles now, since pantomime compiles too.SUBDIR += gorm # SUBDIR += graphosThanks to Riccardo, the CVS version now compiles fine.SUBDIR += gshisen SUBDIR += gspdf SUBDIR += gui # SUBDIR += gworkspacetaking gworkspace from svn, it compiles now too. But I had to add -lt1 -lm to the LDFLAGS so that configure detected the PDFKit, and later linked against it. Anyways, it segfaults after it starts up. I have to recompile with debugging symbols, to see why...SUBDIR += highlighterkit SUBDIR += imageviewer SUBDIR += laternamagica # SUBDIR += libobjc2this worked already before, was just omitted for the experiment.SUBDIR += make # SUBDIR += pantomimethis compiles now. I found that the culprit missing include file seems to be not needed at all.SUBDIR += performance # SUBDIR += pdfkitwith llvm, it did not found t1lib.h, so I added /usr/local/include to the CPPFLAGS, and -lt1 to the LDFLAGS and it worked afterwards. With gcc it did not had the problem of finding this include. Is gnustep-make doing sth. differently with the different compilers here? I have to admit, PDFKit uses the xpdf sources from the ports tree, and not the xpdf sources that are bundled in the source.# SUBDIR += priceAlso here, thanks to Riccardo, the CVS version compiles fine.# SUBDIR += projectcenter SUBDIR += remotedesk SUBDIR += renaissance SUBDIR += simpleagenda SUBDIR += sqlclient # SUBDIR += steptalk SUBDIR += systempreferences SUBDIR += terminal SUBDIR += timemon SUBDIR += webserver SUBDIR += webservicesNot in the list, but what I got fixed is oolite, it had some plain C variables declared within @interface, moving them outside fixed the issue for now. but running it, I get the console spammed of warnings like this: Calling [GSMutableArray -count] with incorrect signature. Method has L8@0:4, selector has I8@0:4 Calling [GSMutableArray -objectAtIndex:] with incorrect signature. Method has @12@0:4L8, selector has @12@0:4I8 Calling [GSMutableArray -count] with incorrect signature. Method has L8@0:4, selector has I8@0:4 Calling [GSMutableArray -objectAtIndex:] with incorrect signature. Method has @12@0:4L8, selector has @12@0:4I8 Calling [GSMutableArray -count] with incorrect signature. Method has L8@0:4, selector has I8@0:4 Calling [NSConstantString -rangeOfString:options:] with incorrect signature. Method has {_NSRange=II}16@0:4@8L12, selector has {_NSRange=II}16@0:4@8I12 Calling [NSConstantString -substringToIndex:] with incorrect signature. Method has @12@0:4L8, selector has @12@0:4I8 Calling [GSCSubString -rangeOfString:options:] with incorrect signature. Method has {_NSRange=II}16@0:4@8L12, selector has {_NSRange=II}16@0:4@8I12 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -lockWhenCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSDataMalloc -length] with incorrect signature. Method has L8@0:4, selector has I8@0:4 Calling [NSConditionLock -lockWhenCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSDataMalloc -length] with incorrect signature. Method has L8@0:4, selector has I8@0:4 Calling [NSConditionLock -lockWhenCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 Calling [NSConditionLock -unlockWithCondition:] with incorrect signature. Method has v12@0:4l8, selector has v12@0:4i8 also when I try to run SimpleAgenda I get spammed with those lines: Calling [Date -dayOfMonth] with incorrect signature. Method has i8@0:4, selector has l8@0:4
All these errors look like you are using two different definitions of NSInteger. Could you please grep the code where the second definition comes from?
FisicaLab also only just segfaults immediately on startup. Need to rebuild now to see why. So the things that are still failing to build are: steptalk projectcenter gdl2 sope (maybe sogo too) oolite see below for the errors: regarding SOPE; * what do I do regarding this MethodList_t, is there an equivalent replacement? * what do I do with those friends: error: incomplete definition of type 'struct objc_class' regarding gdl2: * what can I do with the Ivar related things David pointed out already to use some ivar_* functions, any examples available? SOPE fails to compile here: clang NGObjCRuntime.m -c \ -MMD -MP -pipe -Wall -Wno-protocol -DFHS_INSTALL_ROOT=\@\"/usr/local\" -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fPIC -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -O2 -pipe -g -fgnu-runtime -fconstant-string-class=NSConstantString -I.. -I../NGStreams/ -I../../sope-xml -I./NGExtensions/ -I./FdExt.subproj/ -I./EOExt.subproj/ -I.. -I. -I/usr/local/include -I/SOPE-1.3.4_writes_to_HOME/GNUstep/Library/Headers -I/usr/local/include \ -o obj/libNGExtensions.obj/NGObjCRuntime.m.o NGObjCRuntime.m:118:25: error: unknown type name 'MethodList_t' fillMethodListWithSpecs(MethodList_t methods, SEL _selector, va_list *va) ^ NGObjCRuntime.m:151:16: warning: 'sel_get_name' is deprecated [-Wdeprecated-declarations] selname = sel_get_name(selector); ^ NGObjCRuntime.m:172:23: error: incomplete definition of type 'struct objc_class' return ((Class)self)->instance_size; ~~~~~~~~~~~~~^ In file included from NGObjCRuntime.m:22: In file included from ./NGExtensions/NGObjCRuntime.h:25: In file included from /usr/local/include/Foundation/NSObject.h:30: In file included from /usr/local/include/Foundation/NSObjCRuntime.h:35: In file included from /usr/local/include/GNUstepBase/GSVersionMacros.h:193: In file included from /usr/local/include/GNUstepBase/GSConfig.h:229: In file included from /usr/local/include/GNUstepBase/preface.h:112: In file included from /usr/local/include/objc/objc.h:1: /usr/local/include/objc/runtime.h:57:16: note: forward declaration of 'struct objc_class' typedef struct objc_class *Class; ^ NGObjCRuntime.m:177:24: error: expected a type + (void)addMethodList:(MethodList_t)_methods { ^ NGObjCRuntime.m:179:17: error: no member named 'method_count' in 'struct objc_object' if (_methods->method_count == 0) return; ~~~~~~~~ ^ NGObjCRuntime.m:185:53: error: unknown type name 'MethodList_t' extern void class_add_method_list (Class class, MethodList_t list); ^ NGObjCRuntime.m:191:29: error: expected a type + (void)addClassMethodList:(MethodList_t)_methods { ^ NGObjCRuntime.m:193:17: error: no member named 'method_count' in 'struct objc_object' if (_methods->method_count == 0) return; ~~~~~~~~ ^ NGObjCRuntime.m:198:53: error: unknown type name 'MethodList_t' extern void class_add_method_list (Class class, MethodList_t list); ^ NGObjCRuntime.m:199:40: error: incomplete definition of type 'struct objc_class' class_add_method_list(((Class)self)->class_pointer, _methods); ~~~~~~~~~~~~~^ In file included from NGObjCRuntime.m:22: In file included from ./NGExtensions/NGObjCRuntime.h:25: In file included from /usr/local/include/Foundation/NSObject.h:30: In file included from /usr/local/include/Foundation/NSObjCRuntime.h:35: In file included from /usr/local/include/GNUstepBase/GSVersionMacros.h:193: In file included from /usr/local/include/GNUstepBase/GSConfig.h:229: In file included from /usr/local/include/GNUstepBase/preface.h:112: In file included from /usr/local/include/objc/objc.h:1: /usr/local/include/objc/runtime.h:57:16: note: forward declaration of 'struct objc_class' typedef struct objc_class *Class;
Find the #ifdef for the Apple runtime and use that code path instead.
gdl2 fails to compile this way: clang EODebug.m -c \ -MMD -MP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -g -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fPIC -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -O2 -pipe -g -fgnu-runtime -fconstant-string-class=NSConstantString -I./. -I.. -I. -I/usr/local/include -I/gnustep-dl2-0.13.0_writes_to_HOME/GNUstep/Library/Headers -I/usr/local/include \ -o obj/EOControl.obj/EODebug.m.o EODebug.m:329:42: error: incomplete definition of type 'struct objc_ivar' void *pValue = ((void*)object) + ivar->ivar_offset; ~~~~^ In file included from EODebug.m:38: In file included from /usr/local/include/Foundation/NSThread.h:28: In file included from /usr/local/include/GNUstepBase/GSVersionMacros.h:193: In file included from /usr/local/include/GNUstepBase/GSConfig.h:229: In file included from /usr/local/include/GNUstepBase/preface.h:112: In file included from /usr/local/include/objc/objc.h:1: /usr/local/include/objc/runtime.h:36:16: note: forward declaration of 'struct objc_ivar' typedef struct objc_ivar* Ivar; ^ EODebug.m:330:42: error: incomplete definition of type 'struct objc_ivar' NSString *pType = TypeToNSString(ivar->ivar_type); ~~~~^ In file included from EODebug.m:38: In file included from /usr/local/include/Foundation/NSThread.h:28: In file included from /usr/local/include/GNUstepBase/GSVersionMacros.h:193: In file included from /usr/local/include/GNUstepBase/GSConfig.h:229: In file included from /usr/local/include/GNUstepBase/preface.h:112: In file included from /usr/local/include/objc/objc.h:1: /usr/local/include/objc/runtime.h:36:16: note: forward declaration of 'struct objc_ivar' typedef struct objc_ivar* Ivar; ^ EODebug.m:331:40: error: incomplete definition of type 'struct objc_ivar' NSString *pIVar = IVarInString(ivar->ivar_type,pValue); ~~~~^ In file included from EODebug.m:38: In file included from /usr/local/include/Foundation/NSThread.h:28: In file included from /usr/local/include/GNUstepBase/GSVersionMacros.h:193: In file included from /usr/local/include/GNUstepBase/GSConfig.h:229: In file included from /usr/local/include/GNUstepBase/preface.h:112: In file included from /usr/local/include/objc/objc.h:1: /usr/local/include/objc/runtime.h:36:16: note: forward declaration of 'struct objc_ivar' typedef struct objc_ivar* Ivar; ^ EODebug.m:333:5: error: incomplete definition of type 'struct objc_ivar'
You seem to be including the wrong runtime.h here and as David already pointed out, the whole ivar dumping code needs a rewrite.
Any taker? David, I am not looking at you :-)
ProjectCenter fails to compile this way, but I think I already know how to get this fixed, I already fixed sth. similar in SOPE: Making all for bundle ProjectCenter... clang PCParser.m -c \ -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fPIC -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -O2 -pipe -g -fgnu-runtime -fconstant-string-class=NSConstantString -I../../../ -I../../../Headers -I. -I/usr/local/include -I/projectcenter-0.7.0_writes_to_HOME/GNUstep/Library/Headers -I/usr/local/include \ -o obj/ProjectCenter.obj/PCParser.m.o PCParser.m:127:24: error: initializer element is not a compile-time constant static SEL selString = @selector(string:); ^~~~~~~~~~~~~~~~~~ PCParser.m:128:24: error: initializer element is not a compile-time constant static SEL selNumber = @selector(number:); ^~~~~~~~~~~~~~~~~~ PCParser.m:129:33: error: initializer element is not a compile-time constant static SEL selSpaceAndNewLine = @selector(spaceAndNewLine:); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ PCParser.m:130:27: error: initializer element is not a compile-time constant static SEL selInvisible = @selector(invisible:); ^~~~~~~~~~~~~~~~~~~~~ PCParser.m:131:24: error: initializer element is not a compile-time constant static SEL selSymbol = @selector(symbol:); ^~~~~~~~~~~~~~~~~~ 5 errors generated.
This just requires the variables to be declared inside the method. If nobody beats me on that I'll change it in SVN.
[Prev in Thread] | Current Thread | [Next in Thread] |