OpenSSL version 3.3.0 published

Matt Caswell matt at openssl.org
Mon May 13 07:34:49 UTC 2024



On 13/05/2024 02:42, Neil Horman wrote:
> We added support for RCU locks in 3.3 which required the use of atomics 
> (or emulated atomic where they couldn't be supported), but those were in 
> libcrypro not liberal
> 

Right - its supposed to fallback to emulated atomic calls where atomics 
aren't available on a particular platform.

Some platforms have some atomics support but you have to link in a 
separate atomics library to get it to work. You might try adding 
"-latomic" to Configure command line and see if that helps at all.

Matt

> 
> 
> On Sun, May 12, 2024, 7:26 PM Dennis Clarke via openssl-users 
> <openssl-users at openssl.org <mailto:openssl-users at openssl.org>> wrote:
> 
> 
>     On 4/9/24 08:56, OpenSSL wrote:
>      > -----BEGIN PGP SIGNED MESSAGE-----
>      > Hash: SHA256
>      >
>      >
>      >     OpenSSL version 3.3.0 released
>      >     ==============================
>      >
> 
> 
>     Trying to compile this on an old Solaris 10 machine and over and over
>     and over I see these strange things as Undefined symbols :
> 
>     Undefined                       first referenced
>        symbol                             in file
>     __atomic_store_4                    ./libssl.so
>     __atomic_fetch_add_4                ./libssl.so
>     __atomic_fetch_sub_4                ./libssl.so
>     atomic_thread_fence                 ./libssl.so
>     __atomic_load_4                     ./libssl.so
>     ld: fatal: symbol referencing errors. No output written to apps/openssl
>     gmake[1]: *** [Makefile:12601: apps/openssl] Error 2
>     gmake[1]: Leaving directory
>     '/opt/bw/build/openssl-3.3.0_SunOS_5.10_SPARC64.002'
>     gmake: *** [Makefile:1978: build_sw] Error 2
> 
> 
>     Those look like strange C11 atomics. Are they really needed somewhere?
> 
>     I see include/internal/refcount.h talks about C11 atomics and yet the
>     entire code base is supposed to be C90 clean.  See section the OpenSSL
>     Coding Style policy :
> 
>     https://www.openssl.org/policies/technical/coding-style.html
>     <https://www.openssl.org/policies/technical/coding-style.html>
> 
>           Chapter 14: Portability
> 
>               To maximise portability the version of C defined in
>               ISO/IEC 9899:1990 should be used. This is more commonly
>               referred to as C90. ISO/IEC 9899:1999 (also known as C99) is
>               not supported on some platforms that OpenSSL is used on and
>               therefore should be avoided.
> 
> 
>     Perhaps I need to define OPENSSL_DEV_NO_ATOMICS ?
> 
> 
>     Dennis Clarke
>     RISC-V/SPARC/PPC/ARM/CISC
>     UNIX and Linux spoken
> 


More information about the openssl-users mailing list