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
On Sun, May 12, 2024, 7:26 PM Dennis Clarke via openssl-users <openssl-users@xxxxxxxxxxx> 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
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