try following this

https://github.com/andreasfink/ulib/blob/master/doc/README-Debian13-trixie.txt

Note: you need to uninstall gnustep which comes with debian first if its 
installed


> On 20 Jan 2026, at 18:50, Graham Lee <[email protected]> wrote:
> 
> 
> Agreed, which is why I’m using clang in both base and make, and libobjc2. I 
> still don’t understand this error.
> 
> Thanks,
> Graham.
> 
>>> On 20 Jan 2026, at 17:30, Andreas Fink <[email protected]> wrote:
>>> 
>> 
>> if you use libobjc2, you use clang. if you use old runtime, you use gcc. 
>> mixing code with old and new runtime will not work. Code using automatic 
>> reference counting must use clang and libobjc2 runtime.
>> 
>> As gnustep make defines compiler flags etc its important to use the right 
>> version of runtime flags.
>> 
>>>> On 20 Jan 2026, at 18:12, Graham Lee <[email protected]> wrote:
>>>> 
>>> 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;
>>>                ^
>>> 
>>> 
>>> <guix.scm>
  • 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