Re: gnustep make packaging issue
R Frith-Macdonald <[email protected]>
| Newsgroups | gmane.comp.lib.gnustep.general |
|---|---|
| Message-ID | <[email protected]> |
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.