Yes, __SUNPRO_C is defined by DeveloperStudio compiler.

> 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
>


-- 
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

Reply via email to