openssl: OpenSSL 3.2.0 build fails on 32bit PowerPC macs running OS X
On a 32bit (ppc7450) PowerPC Mac (iBook G4) running Mac OS X 10.5 (darwin 9), the build of OpenSSL 3.2.0 fails due to the use of 64bit instructions in crypto/aes/aesp8-ppc.s which I guess is for POWER8 but targets ppc970 (G5) which is 64bit.
I guess we now need to state no-asm on such systems?
Invoking the build with
perl Configure --prefix=/tmp/openssl3 no-ssl3 no-ssl3-method no-zlib darwin-ppc-cc
Build eventually fails with
cc -fPIC -fno-common -arch ppc -std=gnu9x -Wa,-force_cpusubtype_ALL -O3 -DB_ENDIAN -DOPENSSL_PIC -DOPENSSLDIR="\"/tmp/openssl3/ssl\"" -DENGINESDIR="\"/tmp/openssl3/lib/engines-3\"" -DMODULESDIR="\"/tmp/openssl3/lib/ossl-modules\"" -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -c -o crypto/aes/libcrypto-shlib-aesp8-ppc.o crypto/aes/aesp8-ppc.s
crypto/aes/aesp8-ppc.s:2343:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2345:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2350:Invalid mnemonic 'lxvw4x'
crypto/aes/aesp8-ppc.s:2411:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2412:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2421:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2422:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2432:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2433:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2443:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2444:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2454:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2455:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2465:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2466:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2492:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2510:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2511:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2527:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2528:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2549:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2550:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2566:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2567:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2583:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2584:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2606:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2607:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2608:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:2609:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:2642:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3021:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3023:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3028:Invalid mnemonic 'lxvw4x'
crypto/aes/aesp8-ppc.s:3081:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3082:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3091:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3092:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3102:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3103:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3113:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3114:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3124:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3125:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3135:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3136:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3162:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3180:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3181:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3197:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3198:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3219:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3220:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3236:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3237:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3253:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3254:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3276:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3277:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3278:Invalid mnemonic 'vpermxor'
crypto/aes/aesp8-ppc.s:3279:Invalid mnemonic 'xxlor'
crypto/aes/aesp8-ppc.s:3310:Invalid mnemonic 'xxlor'
Config dump
Command line (with current working directory = .):
/Users/sme/tigerbrew/opt/perl/bin/perl ./Configure --prefix=/tmp/openssl3 no-ssl3 no-ssl3-method no-zlib darwin-ppc-cc
Perl information:
/Users/sme/tigerbrew/opt/perl/bin/perl
5.38.0 for darwin-thread-multi-2level
Enabled features:
apps
argon2
aria
asm
async
autoalginit
autoerrinit
autoload-config
bf
blake2
bulk
cached-fetch
camellia
capieng
cast
chacha
cmac
cmp
cms
comp
ct
default-thread-pool
deprecated
des
dgram
dh
docs
dsa
dso
dtls
dynamic-engine
ec
ec2m
ecdh
ecdsa
ecx
engine
err
filenames
gost
http
idea
legacy
loadereng
makedepend
md4
mdc2
module
multiblock
nextprotoneg
ocb
ocsp
padlockeng
pic
pinshared
poly1305
posix-io
psk
quic
rc2
rc4
rdrand
rfc3779
rmd160
scrypt
secure-memory
seed
shared
siphash
siv
sm2
sm2-precomp
sm3
sm4
sock
srp
srtp
sse2
ssl
ssl-trace
static-engine
stdio
tests
thread-pool
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 [not-linux] OPENSSL_NO_AFALGENG
asan [default] OPENSSL_NO_ASAN
brotli [default] OPENSSL_NO_BROTLI
brotli-dynamic [default] OPENSSL_NO_BROTLI_DYNAMIC
buildtest-c++ [default]
winstore [not-windows] OPENSSL_NO_WINSTORE
crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG
devcryptoeng [default] OPENSSL_NO_DEVCRYPTOENG
ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128
egd [default] OPENSSL_NO_EGD
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
md2 [default] OPENSSL_NO_MD2 (skip crypto/md2)
msan [default] OPENSSL_NO_MSAN
rc5 [default] OPENSSL_NO_RC5 (skip crypto/rc5)
sctp [default] OPENSSL_NO_SCTP
tfo [default] OPENSSL_NO_TFO
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 [option] OPENSSL_NO_ZLIB
zlib-dynamic [default] OPENSSL_NO_ZLIB_DYNAMIC
zstd [default] OPENSSL_NO_ZSTD
zstd-dynamic [default] OPENSSL_NO_ZSTD_DYNAMIC
ssl3 [option(ssl3-method)] OPENSSL_NO_SSL3
ssl3-method [option] OPENSSL_NO_SSL3_METHOD
Config target attributes:
AR => "ar",
ARFLAGS => "qc",
CC => "cc",
CFLAGS => "-O3",
HASHBANGPERL => "/usr/bin/env perl",
RANLIB => "ranlib -c",
RC => "windres",
asm_arch => "ppc32",
bn_ops => "BN_LLONG RC4_CHAR",
build_file => "Makefile",
build_scheme => [ "unified", "unix" ],
cflags => "-arch ppc -std=gnu9x -Wa,-force_cpusubtype_ALL",
cppflags => "-D_REENTRANT",
defines => [ "OPENSSL_BUILDING_OPENSSL" ],
disable => [ ],
dso_scheme => "dlfcn",
enable => [ ],
ex_libs => "",
includes => [ ],
lflags => "-Wl,-search_paths_first",
lib_cflags => "",
lib_cppflags => "-DB_ENDIAN",
lib_defines => [ ],
module_cflags => "-fPIC -fno-common",
module_cxxflags => undef,
module_ldflags => "-bundle",
perl_platform => "Unix",
perlasm_scheme => "osx32",
shared_cflag => "-fPIC -fno-common",
shared_defines => [ ],
shared_extension => ".\$(SHLIB_VERSION_NUMBER).dylib",
shared_ldflag => "-dynamiclib -current_version \$(SHLIB_VERSION_NUMBER) -compatibility_version \$(SHLIB_VERSION_NUMBER)",
shared_rcflag => "",
shared_sonameflag => "-install_name \$(libdir)/",
shared_target => "darwin-shared",
sys_id => "MACOSX",
thread_defines => [ ],
thread_scheme => "pthreads",
unistd => "<unistd.h>",
Recorded environment:
AR =
ARFLAGS =
AS =
ASFLAGS =
BUILDFILE =
CC =
CFLAGS =
CPP =
CPPDEFINES =
CPPFLAGS =
CPPINCLUDES =
CROSS_COMPILE =
CXX =
CXXFLAGS =
HASHBANGPERL =
LD =
LDFLAGS =
LDLIBS =
MT =
MTFLAGS =
OPENSSL_LOCAL_CONFIG_DIR =
PERL =
RANLIB =
RC =
RCFLAGS =
RM =
WINDRES =
__CNF_CFLAGS =
__CNF_CPPDEFINES =
__CNF_CPPFLAGS =
__CNF_CPPINCLUDES =
__CNF_CXXFLAGS =
__CNF_LDFLAGS =
__CNF_LDLIBS =
Makevars:
AR = ar
ARFLAGS = qc
ASFLAGS =
CC = cc
CFLAGS = -O3
CPPDEFINES =
CPPFLAGS =
CPPINCLUDES =
CXXFLAGS =
HASHBANGPERL = /usr/bin/env perl
LDFLAGS =
LDLIBS =
PERL = /Users/sme/tigerbrew/opt/perl/bin/perl
RANLIB = ranlib -c
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
About this issue
- Original URL
- State: closed
- Created 7 months ago
- Comments: 17 (11 by maintainers)
Commits related to this issue
- Disable build of HWAES on PPC Macs Fixes #22818 — committed to t8m/openssl by t8m 7 months ago
- Disable build of HWAES on PPC Macs Fixes #22818 Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from h... — committed to openssl/openssl by t8m 7 months ago
- Disable build of HWAES on PPC Macs Fixes #22818 Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from h... — committed to rsbeckerca/openssl by t8m 7 months ago
Works for me, tested on a G5 running Tiger, and a G4 running Leopard and with the proposed patch v3.2.0 builds. Only tried
darwin-ppc-cc.Could you please try the patch from #22860 if it fixes this issue for you?
Maybe - not really sure if that will cover all cases. I was thinking something similar to this, for consistency:
https://github.com/openssl/openssl/blob/a435d786046fabc85acdb89cbf47f154a09796e1/crypto/chacha/build.info#L17-L21
That said, perhaps all the PPC conditional stuff needs cleaning up.