Hello David & all

Today I tried to build libobjc2 exactly the way you did as you seemed to have 
no errors.
So I installed Debian Testing (sid) on to an empty VM and got clang-7.0.1 with 
it.


I built then libobjc2 and all tests passed.


Then I went  onto gnustep-make and gnustep-base
Now gnustep-base doesn't want to configure..


It breaks with


The objc runtime library does not appear to have synchronisation support.  Try 
re-configuring gnustep-make with a CPPFLAGS variable containing a -L point to 
specify the directory containing the correct libobjc, or using the 
--with-objc-lib-flag=... option.




This came from the following code test:



configure:8000: checking for objc_sync_enter
configure:8000: /usr/bin/clang-7 -o conftest -I /opt/universalss7/include -L 
/opt/universalss7/lib/ -I/opt/universalss7/include -I/opt/universalss7/include 
-I/opt/universalss7/include -l/opt/universalss7/include -fblocks -x objective-c 
-L /opt/universalss7/lib/ -L/opt/universalss7/lib -L/opt/universalss7/lib 
-L/opt/universalss7/lib -L/opt/universalss7/lib conftest.c -lrt -ldl -lpthread 
-rdynamic -L /opt/universalss7/lib/ -pthread -fexceptions 
-fobjc-runtime=gnustep-2.0 -fblocks -L/root/GNUstep/Library/Libraries 
-L/opt/universalss7/lib -lpthread -l:libobjc.so.4.6 -lm   -lpthread  >&5


conftest.c:130:6: warning: incompatible redeclaration of library function 
'objc_sync_enter' [-Wincompatible-library-redeclaration]
char objc_sync_enter ();
     ^
conftest.c:130:6: note: 'objc_sync_enter' is a builtin with type 'int (id)'
1 warning generated.
/usr/bin/ld: /tmp/conftest-ca1f4b.o:(.data..objc_init[.objc_init]+0x18): 
undefined reference to `__start___objc_classes'
/usr/bin/ld: /tmp/conftest-ca1f4b.o:(.data..objc_init[.objc_init]+0x20): 
undefined reference to `__stop___objc_classes'
/usr/bin/ld: conftest: hidden symbol `__start___objc_classes' isn't defined
/usr/bin/ld: final link failed: bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)




As you can see
the libobjc2 is here:



-rw-r--r-- 1 root root 1151786 Jan 30 08:54 /opt/universalss7/lib/libobjc.a
lrwxrwxrwx 1 root root      14 Jan 30 08:55 /opt/universalss7/lib/libobjc.so -> 
libobjc.so.4.6
-rw-r--r-- 1 root root  683024 Jan 30 08:54 /opt/universalss7/lib/libobjc.so.4.6




gnustep-make was configured that way:



    cd make
    export PREFIX=/opt/universalss7/
    export CC=clang-7
    export CXX=clang++-7


    cat FilesystemLayouts/fhs | sed 
's/^GNUSTEP_DEFAULT_PREFIX=.*$/GNUSTEP_DEFAULT_PREFIX=\/opt\/universalss7/g' > 
FilesystemLayouts/universalss7
    export RUNTIME_VERSION=gnustep-2.0
    export OBJCFLAGS="-fblocks"
    export LDLAGS="-L${PREFIX}/lib"
    ./configure \
     --includedir=${PREFIX}/include \
     --libdir==${PREFIX}/lib \
            --with-layout=universalss7 \
            --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=${PREFIX}/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"




I noticed there is another libobjc runtime on the system which came with 
clang-7 which is at /usr/lib/x86_64-linux-gnu/libobjc.so.4
but given we have put -l:libobjc.so.4.6 , this should not be an issue. (note 
the /opt/universalss7/lib directory is in /etc/ld.so.conf.d/gnustep-make.conf)
_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to