summaryrefslogtreecommitdiff
path: root/Configurations
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2022-07-29 12:47:29 +0200
committerTomas Mraz <tomas@openssl.org>2022-08-22 08:09:25 +0200
commita9389c0b75e69ebaf74fdc8fee0c983809e45931 (patch)
tree6c62e827d0e56fb82e1e9a3a198d9dd95b8c2b2c /Configurations
parent63b94b3fc7feb12713fa46d386e10d109f074d28 (diff)
downloadopenssl-new-a9389c0b75e69ebaf74fdc8fee0c983809e45931.tar.gz
Add BSD-armv4 target based on linux-armv4
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18910)
Diffstat (limited to 'Configurations')
-rw-r--r--Configurations/10-main.conf37
1 files changed, 37 insertions, 0 deletions
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 2c53f56bff..036f0bbbc9 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1111,6 +1111,43 @@ my %targets = (
asm_arch => 'riscv64',
},
+ "BSD-armv4" => {
+ ################################################################
+ # Note that -march is not among compiler options in linux-armv4
+ # target description. 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. With all
+ # this in mind here is an example of how to configure
+ # "universal" build:
+ #
+ # ./Configure BSD-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8
+ #
+ inherit_from => [ "BSD-generic32" ],
+ asm_arch => 'armv4',
+ perlasm_scheme => "linux32",
+ },
+
"bsdi-elf-gcc" => {
inherit_from => [ "BASE_unix" ],
CC => "gcc",