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? > >