boringssl/crypto/bn
David Benjamin 96ac819197 Remove inconsistency in ARM support.
This facilitates "universal" builds, ones that target multiple
architectures, e.g. ARMv5 through ARMv7.

(Imported from upstream's c1669e1c205dc8e695fb0c10a655f434e758b9f7)

This is a change from a while ago which was a source of divergence between our
perlasm and upstream's. This change in upstream came with the following comment
in Configure:

 Note that -march is not among compiler options in below linux-armv4
 target line. Not specifying one is intentional to give you choice to:

 a) rely on your compiler default by not specifying one;
 b) specify your target platform explicitly for optimal performance,
    e.g. -march=armv6 or -march=armv7-a;
 c) build "universal" binary that targets *range* of platforms by
    specifying minimum and maximum supported architecture;

 As for c) option. It actually makes no sense to specify maximum to be
 less than ARMv7, because it's the least requirement for run-time
 switch between platform-specific code paths. And without run-time
 switch performance would be equivalent to one for minimum. Secondly,
 there are some natural limitations that you'd have to accept and
 respect. Most notably you can *not* build "universal" binary for
 big-endian platform. This is because ARMv7 processor always picks
 instructions in little-endian order. Another similar limitation is
 that -mthumb can't "cross" -march=armv6t2 boundary, because that's
 where it became Thumb-2. Well, this limitation is a bit artificial,
 because it's not really impossible, but it's deemed too tricky to
 support. And of course you have to be sure that your binutils are
 actually up to the task of handling maximum target platform.

Change-Id: Ie5f674d603393f0a1354a0d0973987484a4a650c
Reviewed-on: https://boringssl-review.googlesource.com/4488
Reviewed-by: Adam Langley <agl@google.com>
2015-05-04 22:43:51 +00:00
..
asm Remove inconsistency in ARM support. 2015-05-04 22:43:51 +00:00
add.c Inital import. 2014-06-20 13:17:32 -07:00
bn_test.cc Test BN_mul for negative zero. 2015-05-04 22:41:25 +00:00
bn.c Add in missing curly braces part 1. 2015-02-11 19:31:01 +00:00
CMakeLists.txt Convert bn_test to C++. 2015-04-01 19:53:51 +00:00
cmp.c Inital import. 2014-06-20 13:17:32 -07:00
convert.c Ensure BN_asc2bn, BN_dec2bn, and BN_hex2bn never give -0. 2015-04-23 20:53:24 +00:00
ctx.c Add in missing curly braces part 1. 2015-02-11 19:31:01 +00:00
div.c Add some missing error failure checks. 2015-02-17 20:55:56 +00:00
exponentiation.c Fix error handling in bn_exp 2015-03-19 11:10:27 +00:00
gcd.c Add some missing error failure checks. 2015-02-17 20:55:56 +00:00
generic.c Add in missing curly braces part 1. 2015-02-11 19:31:01 +00:00
internal.h Define __STDC_FORMAT_MACROS before inttypes.h. 2015-04-02 18:39:18 +00:00
kronecker.c Inital import. 2014-06-20 13:17:32 -07:00
montgomery.c Convert BN_MONT_CTX to new-style locking. 2015-04-14 20:10:27 +00:00
mul.c Add in missing curly braces part 1. 2015-02-11 19:31:01 +00:00
prime.c Avoid undefined behavior in probable_prime. 2015-03-19 11:36:49 +00:00
random.c Remove string.h from base.h. 2015-02-02 19:14:15 +00:00
rsaz_exp.c Support building with PNaCl. 2014-07-11 19:04:04 +00:00
rsaz_exp.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
shift.c Remove string.h from base.h. 2015-02-02 19:14:15 +00:00
sqrt.c Add function to recover RSA CRT params. 2014-06-20 13:17:35 -07:00