as __atomic_* is non-standard, I propose guarding with __GNUC__ The C11 standard names are atomic_* Would be nice if they could be supported ?
>-- Original Message -- > >To only allow the use of __atomic_add_fetch when __ATOMIC_RELAXED is non-zero >isn't the right move here. So it seems that different compilers either only >implement a subset of the __atomic builtins, or name them differently. > >What was the macro defined by the DeveloperStudio compiler? __SUNPRO_C or >something else? In that case, the correct method might be to exclude it, like >this: > >#if defined(__ATOMIC_RELAXED) && !defined(__SUNPRO_C) > >On Mon Aug 08 08:33:34 2016, yoi_no_myou...@yahoo.co.jp wrote: >> 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> > > >-- >Richard Levitte >levi...@openssl.org > >-- >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