Can OpenSSL 3.1.0 be compiled without atomic.h ?
Dennis Clarke
dclarke at blastwave.org
Thu Mar 30 21:50:50 UTC 2023
All :
This is exactly the sort of thing this email list for ordinary users
was intended for. Custom designed for this sort of off the wall crazy
question. A github bug report would be a vulgar display of stupid.
So I like to compile and test things on strange machines. I have FreeBSD
running neatly on SiFive RISC-V and Gentoo Linux on old sparcv9. I even
have an old SparcStation 20 running Solaris 8 wherein I bootstrapped the
reasonable old GCC 4.5.1 which seems to work there. Really I need to get
something more recent like GCC 7.5.0 but that will take a month.
Since OpenSSL is supposedly portable darn near everywhere why not give
it a whirl? I was just thrilled to see that OpenSSL 3.1.0 can at least
be configured for solaris-sparcv7-gcc thus :
nix$ /opt/bw/bin/perl ./Configure solaris-sparcv7-gcc no-asm
--prefix=/opt/bw shared no-engine -DPEDANTIC
Configuring OpenSSL version 3.1.0 for target solaris-sparcv7-gcc
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
The perl being used there is very up to date :
nix$
nix$ /opt/bw/bin/perl -V 2>&1 | head
Summary of my perl5 (revision 5 version 36 subversion 0) configuration:
Platform:
osname=solaris
osvers=2.8
archname=sun4-solaris-64int
uname='sunos nix 5.8 generic_117350-62 sun4m sparc
sunw,sparcstation-20 '
config_args='-Dcc=/opt/csw/gcc4/bin/gcc -Dprefix=/opt/bw
-Dmksymlinks -Accflags=-m32 -g -O0 -mno-app-regs -mhard-float
-mno-faster-structs -mstd-struct-return -mcpu=v8 -mno-v8plus -mno-vis
-L/opt/bw/lib -R/opt/bw/lib -I/opt/bw/include'
hint=recommended
useposix=true
nix$
So I was quite happy to see the compile run and crank and churn until :
/opt/csw/gcc4/bin/gcc -I. -Iinclude -Iproviders/common/include
-Iproviders/implementations/include -fPIC -m32 -g -O0 -fno-builtin
-mno-app-regs -mhard-float -mno-faster-structs -mstd-struct-return
-mcpu=v8 -mno-v8plus -mno-vis -pthread -I/opt/bw/include
-D_LARGEFILE64_SOURCE -m32 -g -O0 -fno-builtin -mno-app-regs
-mhard-float -mno-faster-structs -mstd-struct-return -mcpu=v8
-mno-v8plus -mno-vis -DFILIO_H -DB_ENDIAN -DBN_DIV2W -DOPENSSL_PIC
-DOPENSSLDIR="\"/opt/bw/ssl\"" -DENGINESDIR="\"/opt/bw/lib/engines-3\""
-DMODULESDIR="\"/opt/bw/lib/ossl-modules\"" -DOPENSSL_BUILDING_OPENSSL
-DNDEBUG -DPEDANTIC -I/opt/bw/include -D_LARGEFILE64_SOURCE -MMD -MF
crypto/libcrypto-lib-threads_pthread.d.tmp -MT
crypto/libcrypto-lib-threads_pthread.o -c -o
crypto/libcrypto-lib-threads_pthread.o crypto/threads_pthread.c
crypto/threads_pthread.c:17:21: fatal error: atomic.h: No such file or
directory
compilation terminated.
gmake[1]: *** [Makefile:14613: crypto/libcrypto-lib-threads_pthread.o]
Error 1
gmake[1]: Leaving directory '/opt/bw/build/openssl-3.1.0_SunOS5.8_sun4m.001'
gmake: *** [Makefile:2406: build_sw] Error 2
Well gee. That can be annoying.
Any thoughts?
--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
Four decades of geek. Or five?
--------------- the perl configdata.pm --dump ---------------
nix$ /opt/bw/bin/perl configdata.pm --dump
Command line (with current working directory = .):
/opt/bw/bin/perl ./Configure solaris-sparcv7-gcc no-asm
--prefix=/opt/bw shared no-engine -DPEDANTIC
Perl information:
/opt/bw/bin/perl
5.36.0 for sun4-solaris-64int
Enabled features:
aria
async
autoalginit
autoerrinit
autoload-config
bf
blake2
bulk
cached-fetch
camellia
cast
chacha
cmac
cmp
cms
comp
ct
deprecated
des
dgram
dh
dsa
dso
dtls
ec
ec2m
ecdh
ecdsa
err
filenames
gost
idea
legacy
makedepend
md4
mdc2
module
multiblock
nextprotoneg
ocb
ocsp
pic
pinshared
poly1305
posix-io
psk
rc2
rc4
rdrand
rfc3779
rmd160
scrypt
secure-memory
seed
shared
siphash
siv
sm2
sm3
sm4
sock
srp
srtp
sse2
ssl
ssl-trace
static-engine
stdio
tests
threads
tls
ts
ui-console
whirlpool
tls1
tls1-method
tls1_1
tls1_1-method
tls1_2
tls1_2-method
tls1_3
dtls1
dtls1-method
dtls1_2
dtls1_2-method
Disabled features:
acvp-tests [cascade] OPENSSL_NO_ACVP_TESTS
afalgeng [cascade] OPENSSL_NO_AFALGENG
asan [default] OPENSSL_NO_ASAN
asm [no asm_arch] OPENSSL_NO_ASM
buildtest-c++ [default]
capieng [cascade] OPENSSL_NO_CAPIENG
crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG
devcryptoeng [default] OPENSSL_NO_DEVCRYPTOENG
dynamic-engine [cascade]
ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128
egd [default] OPENSSL_NO_EGD
engine [option] OPENSSL_NO_ENGINE (skip
engines, crypto/engine)
external-tests [default] OPENSSL_NO_EXTERNAL_TESTS
fips [default]
fips-securitychecks [cascade] OPENSSL_NO_FIPS_SECURITYCHECKS
fuzz-afl [default] OPENSSL_NO_FUZZ_AFL
fuzz-libfuzzer [default] OPENSSL_NO_FUZZ_LIBFUZZER
ktls [default] OPENSSL_NO_KTLS
loadereng [cascade] OPENSSL_NO_LOADERENG
md2 [default] OPENSSL_NO_MD2 (skip crypto/md2)
msan [default] OPENSSL_NO_MSAN
padlockeng [cascade] OPENSSL_NO_PADLOCKENG
rc5 [default] OPENSSL_NO_RC5 (skip crypto/rc5)
sctp [default] OPENSSL_NO_SCTP
trace [default] OPENSSL_NO_TRACE
ubsan [default] OPENSSL_NO_UBSAN
unit-test [default] OPENSSL_NO_UNIT_TEST
uplink [no uplink_arch] OPENSSL_NO_UPLINK
weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS
zlib [default]
zlib-dynamic [default]
ssl3 [default] OPENSSL_NO_SSL3
ssl3-method [default] OPENSSL_NO_SSL3_METHOD
Config target attributes:
AR => "ar",
ARFLAGS => "qc",
CC => "gcc",
CFLAGS => "-O0 -g -O0 -g",
HASHBANGPERL => "/usr/bin/env perl",
RANLIB => "ranlib",
RC => "windres",
bn_ops => "BN_LLONG RC4_CHAR",
build_file => "Makefile",
build_scheme => [ "unified", "unix" ],
cflags => "-m32 -g -O0 -fno-builtin -mno-app-regs -mhard-float
-mno-faster-structs -mstd-struct-return -mcpu=v8 -mno-v8plus -mno-vis
-pthread -I/opt/bw/include -D_LARGEFILE64_SOURCE",
cppflags => "",
defines => [ "OPENSSL_BUILDING_OPENSSL" ],
disable => [ ],
dso_scheme => "dlfcn",
enable => [ ],
ex_libs => "-lsocket -lnsl -ldl -lrt -pthread",
includes => [ ],
lflags => "",
lib_cflags => "",
lib_cppflags => "-DFILIO_H -DB_ENDIAN -DBN_DIV2W",
lib_defines => [ ],
module_cflags => "-fPIC",
module_cxxflags => undef,
module_ldflags => "-shared -static-libgcc -Wl,-Bsymbolic",
perl_platform => "Unix",
shared_cflag => "-fPIC",
shared_defflag => "-Wl,-M,",
shared_defines => [ ],
shared_ldflag => "-shared -static-libgcc -Wl,-Bsymbolic",
shared_rcflag => "",
shared_sonameflag => "-Wl,-h,",
shared_target => "solaris-gcc-shared",
thread_defines => [ ],
thread_scheme => "pthreads",
unistd => "<unistd.h>",
Recorded environment:
AR = /opt/bw/bin/gar
BUILDFILE =
CC = /opt/csw/gcc4/bin/gcc
CFLAGS = -m32 -g -O0 -fno-builtin -mno-app-regs -mhard-float
-mno-faster-structs -mstd-struct-return -mcpu=v8 -mno-v8plus -mno-vis
CPPFLAGS = -I/opt/bw/include -D_LARGEFILE64_SOURCE
CROSS_COMPILE =
CXX = /opt/csw/gcc4/bin/c++
CXXFLAGS = -m32 -g -O0 -fno-builtin -mno-app-regs -mhard-float
-mno-faster-structs -mstd-struct-return -mcpu=v8 -mno-v8plus -mno-vis
HASHBANGPERL =
LDFLAGS =
LDLIBS =
OPENSSL_LOCAL_CONFIG_DIR =
PERL = /opt/bw/bin/perl
RANLIB = /opt/bw/bin/granlib
RC =
RCFLAGS =
WINDRES =
__CNF_CFLAGS =
__CNF_CPPDEFINES =
__CNF_CPPFLAGS =
__CNF_CPPINCLUDES =
__CNF_CXXFLAGS =
__CNF_LDFLAGS =
__CNF_LDLIBS =
Makevars:
AR = /opt/bw/bin/gar
ARFLAGS = qc
CC = /opt/csw/gcc4/bin/gcc
CFLAGS = -m32 -g -O0 -fno-builtin -mno-app-regs
-mhard-float -mno-faster-structs -mstd-struct-return -mcpu=v8
-mno-v8plus -mno-vis
CPPDEFINES = PEDANTIC
CPPFLAGS = -I/opt/bw/include -D_LARGEFILE64_SOURCE
CPPINCLUDES =
CXX = /opt/csw/gcc4/bin/c++
CXXFLAGS = -m32 -g -O0 -fno-builtin -mno-app-regs
-mhard-float -mno-faster-structs -mstd-struct-return -mcpu=v8
-mno-v8plus -mno-vis
HASHBANGPERL = /opt/bw/bin/perl
LDFLAGS =
LDLIBS =
PERL = /opt/bw/bin/perl
RANLIB = /opt/bw/bin/granlib
RC = windres
RCFLAGS =
NOTE: These variables only represent the configuration view. The build file
template may have processed these variables further, please have a look
at the
build file for more exact data:
Makefile
build file:
Makefile
build file templates:
Configurations/common0.tmpl
Configurations/unix-Makefile.tmpl
More information about the openssl-users
mailing list