Hi all,

I’m trying to compile GNUstep base inside a Guix environment. The Guix GNUstep module (https://codeberg.org/guix/guix/src/branch/master/gnu/packages/gnustep.scm) is a bit of a mix; it defines a GNUstep make that’s configured with gcc, and libobjc2 that needs clang. I’ve defined a package that inherits from their GNUstep make but uses clang as the compiler, then a shell guix.scm environment at the top-level of the libs-base checkout, to try and build libs-base. The shell uses clang, libobjc2, and my GNUstep-make package configured with clang.

It configures fine, but in make I get errors from the objc runtime headers, shown below. Is this a mistake in configuring the package (it seems like it’s trying to use both the local and the libobjc2 header for objc/runtime.h), or did I get something else wrong? Does anyone have advice for me here?

Thanks,

Graham.

Making all for subproject ObjectiveC2...
 Compiling file NSBlocks.m ...
In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:89:15: error: typedef redefinition with different types ('void *' vs 'struct objc_property *')
typedef void *objc_property_t;
              ^
/gnu/store/x7w055xaaqlpivfavr352kvcyg06qy04-profile/include/objc/runtime.h:150:31: note: previous definition is here
typedef struct objc_property* objc_property_t;
                              ^
[…]

In file included from NSBlocks.m:19:
../../Headers/ObjectiveC2/objc/runtime.h:133:1: error: unknown type name 'Method_t'; did you mean 'Method'?
Method * class_copyMethodList(Class cls, unsigned int *outCount);
^~~~~~
Method
../../Headers/ObjectiveC2/objc/runtime.h:84:17: note: expanded from macro 'Method'
#       define Method Method_t
                      ^
/gnu/store/x7w055xaaqlpivfavr352kvcyg06qy04-profile/include/objc/runtime.h:126:29: note: 'Method' declared here
typedef struct objc_method *Method;
                            ^
[…]

NSBlocks.m:35:8: error: unknown type name 'objc_mutex_t'
extern objc_mutex_t __objc_runtime_mutex;
       ^
NSBlocks.m:42:12: error: incomplete definition of type 'struct objc_class'
  metaClass->class_pointer = superclass->class_pointer;
  ~~~~~~~~~^
/gnu/store/x7w055xaaqlpivfavr352kvcyg06qy04-profile/include/objc/runtime.h:84:16: note: forward declaration of 'struct objc_class'
typedef struct objc_class *Class;
               ^


Attachment: guix.scm
Description: Binary data

  • M... Graham Lee
    • ... Andreas Fink via Discussion list for the GNUstep programming environment
      • ... Graham Lee
        • ... Andreas Fink via Discussion list for the GNUstep programming environment

Reply via email to