It builds and kind of works on arm64. It's much less broken than 9.2 so I don't believe that's a blocker, but stepping between shared objects is strange.
As you can see in this reproducer, instead of breaking at the entry of EVP_aead_aes_256_gcm() when I try to step, it slithers way past that and only remembers to break much later in libc rather than libcrypto. $ egdb -q openssl Reading symbols from openssl... (No debugging symbols found in openssl) (gdb) b tls13_cipher_aead Function "tls13_cipher_aead" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (tls13_cipher_aead) pending. (gdb) run s_client -connect libressl.org:443 Starting program: /usr/bin/openssl s_client -connect libressl.org:443 CONNECTED(00000003) Breakpoint 1, tls13_cipher_aead (cipher=<optimized out>) at /usr/src/lib/libssl/tls13_lib.c:78 78 if (cipher == NULL) (gdb) bt #0 tls13_cipher_aead (cipher=<optimized out>) at /usr/src/lib/libssl/tls13_lib.c:78 #1 0x00000012501a2b28 in tls13_client_engage_record_protection (ctx=0x12a8be6180) at /usr/src/lib/libssl/tls13_client.c:353 #2 tls13_server_hello_recv (ctx=0x12a8be6180, cbs=<optimized out>) at /usr/src/lib/libssl/tls13_client.c:492 #3 0x00000012501a29d8 [PAC] in tls13_server_hello_retry_request_recv (ctx=0x12a8be6180, cbs=0x7dc49c23e8) at /usr/src/lib/libssl/tls13_client.c:409 #4 0x0000001250185520 [PAC] in tls13_handshake_recv_action (ctx=0x12a8be6180, action=0x12501d3820 <state_machine+64>) at /usr/src/lib/libssl/tls13_handshake.c:549 #5 tls13_handshake_perform (ctx=0x12a8be6180) at /usr/src/lib/libssl/tls13_handshake.c:412 #6 0x000000125018acac [PAC] in tls13_legacy_connect (ssl=0x134c957a00) at /usr/src/lib/libssl/tls13_legacy.c:466 #7 0x000000125018a744 [PAC] in tls13_legacy_write_bytes (ssl=0x134c957a00, type=32, vbuf=0x0, len=0) at /usr/src/lib/libssl/tls13_legacy.c:266 #8 0x0000000e4f8e2c20 [PAC] in ?? () #9 0x0000000e4f8d7e38 [PAC] in ?? () #10 0x0000000e4f8c038c [PAC] in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) n 80 if (cipher->algorithm_ssl != SSL_TLSV1_3) (gdb) 83 switch (cipher->algorithm_enc) { (gdb) 87 return EVP_aead_aes_256_gcm(); (gdb) s _libc_time (t=<optimized out>) at /usr/src/lib/libc/gen/time.c:36 36 { (gdb) bt #0 _libc_time (t=<optimized out>) at /usr/src/lib/libc/gen/time.c:36 #1 0x00000012f2c9b5b0 in x509_verify_cert_times (cert=0x12951ce620, cmp_time=<error reading variable: Cannot access memory at address 0x0>, error=<optimized out>) at /usr/src/lib/libcrypto/x509/x509_verify.c:820 #2 x509_verify_cert_valid (ctx=0x12a49c3280, cert=0x12951ce620, current_chain=0x134c95b720) at /usr/src/lib/libcrypto/x509/x509_verify.c:940 #3 0x00000012f2c9bbcc [PAC] in x509_verify_consider_candidate (ctx=0x12a49c3280, cert=0x12951ce0e0, is_root_cert=0, candidate=0x12951ce620, current_chain=0x134c95b720, full_chain=1, name=<optimized out>) at /usr/src/lib/libcrypto/x509/x509_verify.c:592 #4 0x00000012f2c9b1b4 [PAC] in x509_verify_build_chains (ctx=0x12a49c3280, cert=0x12951ce0e0, current_chain=0x134c95b720, full_chain=1, name=0x0) at /usr/src/lib/libcrypto/x509/x509_verify.c:729 #5 0x00000012f2c9a66c [PAC] in x509_verify (ctx=0x12a49c3280, leaf=0x12951ce0e0, name=0x0) at /usr/src/lib/libcrypto/x509/x509_verify.c:1164 #6 0x00000012f2c8f830 [PAC] in _lcry_X509_verify_cert (ctx=0x12a49bfe40) at /usr/src/lib/libcrypto/x509/x509_vfy.c:644 #7 0x00000012501b74c0 [PAC] in ssl_verify_cert_chain (s=0x134c957a00, certs=<optimized out>) at /usr/src/lib/libssl/ssl_cert.c:437 #8 0x00000012501a3338 [PAC] in tls13_server_certificate_recv (ctx=0x12a8be6180, cbs=<optimized out>) at /usr/src/lib/libssl/tls13_client.c:605 #9 0x0000001250185520 [PAC] in tls13_handshake_recv_action (ctx=0x12a8be6180, action=0x12501d38a0 <state_machine+192>) at /usr/src/lib/libssl/tls13_handshake.c:549 #10 tls13_handshake_perform (ctx=0x12a8be6180) at /usr/src/lib/libssl/tls13_handshake.c:412 #11 0x000000125018acac [PAC] in tls13_legacy_connect (ssl=0x134c957a00) at /usr/src/lib/libssl/tls13_legacy.c:466 #12 0x000000125018a744 [PAC] in tls13_legacy_write_bytes (ssl=0x134c957a00, type=1284996096, vbuf=0x1a, len=0) at /usr/src/lib/libssl/tls13_legacy.c:266 #13 0x0000000e4f8e2c20 [PAC] in ?? () #14 0x0000000e4f8d7e38 [PAC] in ?? () #15 0x0000000e4f8c038c [PAC] in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb)