discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: applications that fail to build with new gnustep from svn


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 += gnumail
compiles now, since pantomime compiles too.
      SUBDIR += gorm
#     SUBDIR += graphos
Thanks to Riccardo, the CVS version now compiles fine.
      SUBDIR += gshisen
      SUBDIR += gspdf
      SUBDIR += gui
#     SUBDIR += gworkspace
taking 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 += libobjc2
this worked already before, was just omitted for the experiment.
      SUBDIR += make
#     SUBDIR += pantomime
this compiles now. I found that the culprit missing include file seems
to be not needed at all.

      SUBDIR += performance
#     SUBDIR += pdfkit
with 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 += price
Also 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 += webservices

Not 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]