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

Erik Forsberg erik at efca.com
Wed Aug 17 16:38:35 UTC 2016


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_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
>
>-- 
>openssl-dev mailing list
>To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev



More information about the openssl-dev mailing list