openssl/crypto
David Benjamin 8a5d8bc4bc Always use adr with __thumb2__.
Thumb2 addresses are a bit a mess, depending on whether a label is
interpreted as a function pointer value (for use with BX and BLX) or as
a program counter value (for use with PC-relative addressing). Clang's
integrated assembler mis-assembles this code. See
https://crbug.com/124610#c54 for details.

Instead, use the ADR pseudo-instruction which has clear semantics and
should be supported by every assembler that handles the OpenSSL Thumb2
code. (In other files, the ADR vs SUB conditionals are based on
__thumb2__ already. For some reason, this one is based on __APPLE__, I'm
guessing to deal with an older version of clang assembler.)

It's unclear to me which of clang or binutils is "correct" or if this is
even a well-defined notion beyond "whatever binutils does". But I will
note that https://github.com/openssl/openssl/pull/4669 suggests binutils
has also changed behavior around this before.

Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5431)
2018-02-27 18:46:33 -05:00
..
aes Always use adr with __thumb2__. 2018-02-27 18:46:33 -05:00
aria Fix potential null problem. 2017-09-01 09:30:18 +10:00
asn1 Update copyright year 2018-02-27 13:59:42 +00:00
async Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
bf Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
bio Update copyright year 2018-02-27 13:59:42 +00:00
blake2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
bn Update copyright year 2018-02-27 13:59:42 +00:00
buffer Remove parentheses of return. 2017-10-18 16:05:06 +01:00
camellia Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
cast Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
chacha Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
cmac Don't use deprecated EVP_CIPHER_CTX_cleanup() internally 2017-03-01 11:42:50 +01:00
cms Check for malloc failure 2017-11-27 14:47:42 -05:00
comp Add comments to NULL func ptrs in bio_method_st 2017-12-18 07:04:48 +10:00
conf Update copyright year 2018-02-27 13:59:42 +00:00
ct Null pointer used. 2017-09-18 06:52:13 +10:00
des Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
dh Support public key and param check in EVP interface 2017-11-20 07:20:30 +01:00
dsa Check return value of OBJ_nid2obj in dsa_pub_encode. 2017-11-03 15:46:51 +01:00
dso Remove parentheses of return. 2017-10-18 16:05:06 +01:00
ec crypto/ec/asm/x25519-x86_64.pl: close STDOUT, not $STDOUT 2018-02-27 21:17:57 +01:00
engine Update copyright year 2018-02-13 13:59:25 +00:00
err STORE 'file' scheme loader: Add search capibility 2018-02-23 07:40:42 +01:00
evp bio_b64.c: prevent base64 filter BIO from decoding out-of-bound data 2018-02-27 18:38:33 +01:00
hmac Remove OPENSSL_assert() from crypto/hmac 2017-08-21 08:44:44 +01:00
idea Remove parentheses of return. 2017-10-18 16:05:06 +01:00
include/internal Update copyright year 2018-02-27 13:59:42 +00:00
kdf More updates following review feedback 2017-08-21 08:44:44 +01:00
lhash Remove unused num.pl,segregnam scripts 2018-02-22 15:36:27 -05:00
md2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
md4 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
md5 Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
mdc2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
modes Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
objects Make some perl scripts output to stdout 2018-02-27 16:06:12 -05:00
ocsp Update copyright year 2018-02-13 13:59:25 +00:00
pem Remove parentheses of return. 2017-10-18 16:05:06 +01:00
perlasm Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
pkcs7 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
pkcs12 Add checks for alloc failing. 2017-09-06 09:52:16 -04:00
poly1305 Update copyright year 2018-02-27 13:59:42 +00:00
rand Update copyright year 2018-02-27 13:59:42 +00:00
rc2 Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
rc4 Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
rc5 Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
ripemd Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
rsa Update copyright year 2018-02-27 13:59:42 +00:00
seed Use _WIN32 over WIN32 for preprocessor conditional 2017-02-16 08:59:47 -05:00
sha sha/asm/keccak1600-armv8.pl: add hardware-assisted ARMv8.2 subroutines. 2018-02-19 14:15:31 +01:00
siphash Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
sm3 SM3: restructure to EVP internal and update doc to right location 2017-11-06 07:21:15 +08:00
sm4 SM4: Add SM4 block cipher to EVP 2017-10-31 15:19:14 +10:00
srp Remove custom base64 code. 2017-08-22 11:03:32 -04:00
stack Add sk_TYPE_new_reserve() function 2017-10-26 09:35:36 +10:00
store STORE 'file' scheme loader: Add search capibility 2018-02-23 07:40:42 +01:00
ts struct timeval include guards 2017-09-01 09:55:43 +10:00
txt_db Remove parentheses of return. 2017-10-18 16:05:06 +01:00
ui Removre comment with user's name 2017-11-08 10:37:52 -05:00
whrlpool Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
x509 Update copyright year 2018-02-27 13:59:42 +00:00
x509v3 Update copyright year 2018-02-27 13:59:42 +00:00
alphacpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
arm64cpuid.pl Update copyright year 2018-02-13 13:59:25 +00:00
arm_arch.h Update copyright year 2018-02-13 13:59:25 +00:00
armcap.c Update copyright year 2018-02-13 13:59:25 +00:00
armv4cpuid.pl ARMv4 assembly pack: harmonize Thumb-ification of iOS build. 2017-02-15 23:16:01 +01:00
build.info Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
c64xpluscpuid.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
cpt_err.c make error tables const and separate header file 2017-06-07 15:12:03 -04:00
cryptlib.c Make OPENSSL_rdtsc universally available. 2018-02-07 10:08:15 +10:00
ctype.c Check for EOF in ASCII conversions. 2017-08-25 06:42:17 +10:00
cversion.c Fix SOURCE_DATE_EPOCH bug; use UTC 2017-11-27 14:34:14 -05:00
dllmain.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
ebcdic.c Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
ex_data.c Update copyright year 2018-02-13 13:59:25 +00:00
ia64cpuid.S Fix typo in files in crypto folder 2017-08-05 20:42:06 +02:00
init.c OPENSSL_cleanup: cleanup secure memory 2018-02-13 17:32:54 +01:00
LPdir_nyi.c Fix typo (note by oneton@users.github) 2017-06-20 08:15:00 -04:00
LPdir_unix.c Fix typo (note by oneton@users.github) 2017-06-20 08:15:00 -04:00
LPdir_vms.c Fix typo (note by oneton@users.github) 2017-06-20 08:15:00 -04:00
LPdir_win.c Fix typo (note by oneton@users.github) 2017-06-20 08:15:00 -04:00
LPdir_win32.c Fix typo (note by oneton@users.github) 2017-06-20 08:15:00 -04:00
LPdir_wince.c Fix typo (note by oneton@users.github) 2017-06-20 08:15:00 -04:00
mem.c Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
mem_clr.c Fix some style issues... 2016-08-02 09:59:23 +02:00
mem_dbg.c Update copyright year 2018-02-13 13:59:25 +00:00
mem_sec.c mem_sec.c: relax POSIX requirement. 2018-02-26 17:50:52 +01:00
mips_arch.h Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
o_dir.c Move e_os.h to be the very first include. 2017-08-30 07:20:44 +10:00
o_fips.c Clean up references to FIPS 2017-02-28 15:26:25 +01:00
o_fopen.c Fix a few if(, for(, while( inside code. 2016-07-20 07:21:53 -04:00
o_init.c Use "" not <> on e_os.h include 2017-08-22 11:07:56 -04:00
o_str.c Revert "GH614: Use memcpy()/strdup() when possible" 2017-09-14 10:26:54 +10:00
o_time.c Fix typo in files in crypto folder 2017-08-05 20:42:06 +02:00
pariscid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
ppc_arch.h GH919: Fix wrappers for two headers 2016-05-24 11:04:38 -04:00
ppccap.c crypto/ppccap.c: SIGILL-free processor capabilities detection on MacOS X. 2017-04-02 20:45:59 +02:00
ppccpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
s390x_arch.h s390x assembly pack: add KMAC code path for aes-ccm 2018-02-06 19:39:52 +01:00
s390xcap.c s390x assembly pack: extend s390x capability vector. 2017-10-30 14:31:32 +01:00
s390xcpuid.pl s390x assembly pack: implement OPENSSL_rdtsc as STCKF 2018-02-13 20:34:38 +01:00
sparc_arch.h Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
sparccpuid.S Clean up references to FIPS 2017-02-28 15:26:25 +01:00
sparcv9cap.c Create a prototype for OPENSSL_rdtsc 2017-11-25 14:30:11 +01:00
threads_none.c Add atomic write call 2017-10-10 08:45:53 +10:00
threads_pthread.c Return a value from atomic read on Windows. 2017-10-11 09:47:54 +10:00
threads_win.c Return a value from atomic read on Windows. 2017-10-11 09:47:54 +10:00
uid.c Cleaning UEFI Build with additional OPENSSL_SYS_UEFI flags 2017-03-29 07:35:59 +02:00
vms_rms.h Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
x86_64cpuid.pl crypto/x86_64cpuid.pl: suppress AVX512F flag on Skylake-X. 2017-12-08 12:57:09 +01:00
x86cpuid.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00