[openssl-dev] [openssl.org #4642] [openssl-1.1.0-pre6] make failes with solaris-x86-cc & solaris64-x86_64-cc

Richard Levitte via RT rt at openssl.org
Wed Aug 17 16:15:58 UTC 2016


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_myoujou at 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_myoujou at yahoo.co.jp>


--
Richard Levitte
levitte at openssl.org

-- 
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4642
Please log in as guest with password guest if prompted



More information about the openssl-dev mailing list