Skip to content
  1. Mar 20, 2018
  2. Mar 19, 2018
  3. Mar 17, 2018
  4. Mar 15, 2018
  5. Mar 12, 2018
  6. Mar 11, 2018
  7. Mar 10, 2018
  8. Mar 09, 2018
  9. Mar 08, 2018
  10. Mar 07, 2018
  11. Mar 06, 2018
  12. Mar 04, 2018
  13. Mar 03, 2018
  14. Mar 01, 2018
  15. Feb 28, 2018
    • David Benjamin's avatar
      Always use adr with __thumb2__. · fa9ab9ee
      David Benjamin authored
      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: default avatarAndy Polyakov <appro@openssl.org>
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/5431)
      
      (cherry picked from commit 8a5d8bc4)
      fa9ab9ee