parser.add_option('--dest-cpu',
action='store',
dest='dest_cpu',
- help='CPU architecture to build for. Valid values are: arm, ia32, x32, x64')
+ help='CPU architecture to build for. '
+ 'Valid values are: arm, arm64, ia32, x32, x64')
parser.add_option('--dest-os',
action='store',
k = cc_macros()
matchup = {
- '__x86_64__' : 'x64',
- '__i386__' : 'ia32',
+ '__aarch64__' : 'arm64',
'__arm__' : 'arm',
+ '__i386__' : 'ia32',
'__mips__' : 'mips',
+ '__x86_64__' : 'x64',
}
rtn = 'ia32' # default
if target_arch == 'arm':
configure_arm(o)
+ elif (target_arch == 'arm64' and
+ not options.shared_openssl and
+ not options.without_ssl):
+ # FIXME(bnoordhuis) It's not possible to build the bundled openssl due to
+ # deps/openssl/asm/arm-elf-gas/modes/ghash-armv4.S, which is 32 bits only.
+ warn('not building openssl, arm64 not yet supported')
+ options.without_ssl = True
if flavor in ('solaris', 'mac', 'linux', 'freebsd'):
use_dtrace = not options.without_dtrace
* boundary. See crypto/rc4/rc4_enc.c for further details.
*/
# undef RC4_CHUNK
-# if defined(_M_X64) || defined(__x86_64__)
+# if defined(_M_X64) || defined(__aarch64__) || defined(__x86_64__)
# define RC4_CHUNK unsigned long long
# elif defined(__arm__)
# define RC4_CHUNK unsigned long
# undef THIRTY_TWO_BIT
# undef SIXTEEN_BIT
# undef EIGHT_BIT
-# if defined(_M_X64) || defined(__x86_64__)
+# if defined(_M_X64) || defined(__aarch64__) || defined(__x86_64__)
# if defined(_LP64)
# define SIXTY_FOUR_BIT_LONG
# else