For the time being, I think the atomic function should be GNU GCC only conditional. #if defined(__GNUC__) && defined(__ATOMIC_RELAXED)
>-- Original Message -- > >Hello, > >% ./Configure solaris-x86-cc >% make > : >Undefined first referenced > symbol in file >__atomic_add_fetch ./libcrypto.so >ld: fatal: symbol referencing errors. No output written to fuzz/asn1parse-test > > >% ./Configure solaris64-x86_64-cc >% make >has the same error. > >Tested on Solaris10 x86/64, with Solaris developerstudio12.5. > > >This is caused because __ATOMIC_RELAXED is #defined as 0 >in /opt/developerstudio12.5/lib/compilers/include/CC/gnu/builtins.h > > >Sample patch: >--- ../openssl-1.1.0-pre6.orig/crypto/threads_pthread.c >+++ ./crypto/threads_pthread.c >@@ -109,7 +109,7 @@ > > int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock) > { >-#ifdef __ATOMIC_RELAXED >+#if __ATOMIC_RELAXED > *ret = __atomic_add_fetch(val, amount, __ATOMIC_RELAXED); > #else > if (!CRYPTO_THREAD_write_lock(lock)) > > >With this patch, >% ./Configure solaris-x86-cc >% make >% make test >passes. > >% ./Configure solaris64-x86_64-cc >% make >passes but >% make test >stops. >This is another problem, which seems to be the same as bug #4641. > > >Regards, > >--- Kiyoshi <yoi_no_myou...@yahoo.co.jp> > > > >-- >Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4642 >Please log in as guest with password guest if prompted > >-- >openssl-dev mailing list >To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev -- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev