Re: gnustep make packaging issue

Andreas Fink via Discussion list for the GNUstep programming environment <[email protected]>
Newsgroups gmane.comp.lib.gnustep.general
Message-ID <[email protected]>
On 02.10.2025 11:57, R Frith-Macdonald wrote:
>
> On 02/10/2025 09:29, Andreas Fink via Discussion list for the GNUstep 
> programming environment wrote:
>>
>> Hello
>>
>> Im trying to update my gnustep2 packages for Debian13
>>
>> As Debian 13 comes with gnustep with the old GNU runtime which is 
>> incompatible with modern objective C technologies such as ARC, I 
>> always have to build separate packages.
>>
>> To separate them from the old runtime so they could coexist on a 
>> Linux system, I use separate directory layouts so applications with 
>> old and new runtimes could coexist.
>>
>> This worked for many years but now with Debian13 I run into the issue 
>> that GNUstep make always adds -DGNUSTEP_RUNTIME=1 and thus subsequent 
>> code fails to compile as it thinks it uses the old runtime. 
>
>
> From your description, this appears to be gnustep-make doing the 
> correct thing (-DGNUSTEP_RUNTIME=1 means the new runtim,e is in use), 
> and the issue would be in the 'subsequent code'
>
>
>>
>> The setup is like this:
>>
>> export CC="/usr/bin/clang"
>> export CXX="/usr/bin/clang++"
>> export PREFIX="/"
>> export 
>> PATH="/usr/GNUstep2/System/Tools:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
>> export PKG_CONFIG_PATH="/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/"
>> export RUNTIME_VERSION="gnustep-2.0"
>> export OBJCFLAGS="-fblocks"
>> export GNUSTEP_INSTALLATION_DOMAIN="SYSTEM"
>>
>>     ./configure \
>>             --with-layout=gnustep2 \
>>             --disable-importing-config-file \
>>             --enable-native-objc-exceptions \
>>             --enable-objc-arc \
>>             --enable-install-ld-so-conf \
>>             --with-library-combo=ng-gnu-gnu \
>>             --with-config-file=/etc/GNUstep/GNUstep.conf \
>>             --with-user-config-file='.GNUstep.conf' \
>>             --with-user-defaults-dir='GNUstep/Library/Defaults' \
>>             --with-objc-lib-flag="-l:libobjc.so.4.6"
>>
>>
>> especially the RUNTIME_VERSION environment variable and 
>> the --with-library-combo=ng-gnu-gnu should enforce the newer runtime.
>>
>> but when I install gnustep make and then run
>>
>> # /usr/GNUstep2/System/Tools/gnustep-config --objc-flags
>> -MMD -MP -DGNUSTEP_RUNTIME=1 -D_NONFRAGILE_ABI=1 
>> -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions 
>> -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall 
>> -DGSWARN -DGSDIAGNOSE -Wno-import -fblocks -fobjc-runtime=gnustep-2.0 
>> -fblocks -I. -I/root/GNUstep/Library/Headers -I/usr/local/include
>>
>> this is especially troublesome:
>>
>> -DGNUSTEP_RUNTIME=1  && -fobjc-runtime=gnustep-2.0  ??
>>
>>
>> Does anyone have an idea whats wrong with GNUstep make here or how 
>> this could be worked around?
>
> I suppose your problem might be that you are using the more recent 2.2 
> ABI but the default is specifying the 2.0 ABI?
>
> You can override the default using --with-runtime-abi configuration 
> option.


Thanks for that hint. Indeed I use the latest libobjc2.2.1. I'm 
surprised the ABI has changed.

would that mean -fobjc-runtime=gnustep-2.0 has to be changed 
to -fobjc-runtime=gnustep-2.2.1 as well?


>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.