Version bump

This commit is contained in:
Hakase
2018-04-27 20:47:40 +09:00
parent 6aa2bc2941
commit a08448ab40
304 changed files with 7574 additions and 2162 deletions
+387 -441
View File
@@ -6,16 +6,20 @@ my $vc_win64a_info = {};
sub vc_win64a_info {
unless (%$vc_win64a_info) {
if (`nasm -v 2>NUL` =~ /NASM version ([0-9]+\.[0-9]+)/ && $1 >= 2.0) {
$vc_win64a_info = { as => "nasm",
asflags => "-f win64 -DNEAR -Ox -g",
asoutflag => "-o" };
$vc_win64a_info = { AS => "nasm",
ASFLAGS => "-g",
asflags => "-Ox -f win64 -DNEAR",
asoutflag => "-o " };
} elsif ($disabled{asm}) {
$vc_win64a_info = { as => "ml64",
asflags => "/c /Cp /Cx /Zi",
# assembler is still used to compile uplink shim
$vc_win64a_info = { AS => "ml64",
ASFLAGS => "/nologo /Zi",
asflags => "/c /Cp /Cx",
asoutflag => "/Fo" };
} else {
$die->("NASM not found - please read INSTALL and NOTES.WIN for further details\n");
$vc_win64a_info = { as => "{unknown}",
$vc_win64a_info = { AS => "{unknown}",
ASFLAGS => "",
asflags => "",
asoutflag => "" };
}
@@ -29,18 +33,22 @@ sub vc_win32_info {
my $ver=`nasm -v 2>NUL`;
my $vew=`nasmw -v 2>NUL`;
if ($ver ne "" || $vew ne "") {
$vc_win32_info = { as => $ver ge $vew ? "nasm" : "nasmw",
$vc_win32_info = { AS => $ver ge $vew ? "nasm" : "nasmw",
ASFLAGS => "",
asflags => "-f win32",
asoutflag => "-o",
asoutflag => "-o ",
perlasm_scheme => "win32n" };
} elsif ($disabled{asm}) {
$vc_win32_info = { as => "ml",
asflags => "/nologo /Cp /coff /c /Cx /Zi",
# not actually used, uplink shim is inlined into C code
$vc_win32_info = { AS => "ml",
ASFLAGS => "/nologo /Zi",
asflags => "/Cp /coff /c /Cx",
asoutflag => "/Fo",
perlasm_scheme => "win32" };
} else {
$die->("NASM not found - please read INSTALL and NOTES.WIN for further details\n");
$vc_win32_info = { as => "{unknown}",
$vc_win32_info = { AS => "{unknown}",
ASFLAGS => "",
asflags => "",
asoutflag => "",
perlasm_scheme => "win32" };
@@ -150,9 +158,10 @@ sub vms_info {
if ($config{target} =~ /-ia64/) {
`PIPE ias -H 2> NL:`;
if ($? == 0) {
$vms_info->{as} = "ias";
$vms_info->{asflags} = '-d debug "-N" vms_upcase';
$vms_info->{asoutflag} = "-o";
$vms_info->{AS} = "ias";
$vms_info->{ASFLAGS} = '-d debug';
$vms_info->{asflags} = '"-N" vms_upcase';
$vms_info->{asoutflag} = "-o ";
$vms_info->{perlasm_scheme} = "ias";
}
}
@@ -165,27 +174,28 @@ my %targets = (
#### Basic configs that should work on any 32-bit box
"gcc" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cflags => picker(debug => "-O0 -g",
CC => "gcc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O3"),
thread_scheme => "(unknown)",
bn_ops => "BN_LLONG",
},
"cc" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-O",
CC => "cc",
CFLAGS => "-O",
thread_scheme => "(unknown)",
},
#### VOS Configurations
"vos-gcc" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cflags => picker(default => "-Wall",
CC => "gcc",
CFLAGS => picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
cppflags => "-D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN",
cppflags => "-D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES",
lib_cppflags => "-DB_ENDIAN",
thread_scheme => "(unknown)",
sys_id => "VOS",
lflags => add("-Wl,-map"),
@@ -197,7 +207,7 @@ my %targets = (
"solaris-common" => {
inherit_from => [ "BASE_unix" ],
template => 1,
cppflags => "-DFILIO_H",
lib_cppflags => "-DFILIO_H",
ex_libs => add("-lsocket -lnsl -ldl"),
dso_scheme => "dlfcn",
thread_scheme => "pthreads",
@@ -210,12 +220,12 @@ my %targets = (
# /usr/ccs/bin/as. Failure to comply will result in compile
# failures [at least] in 32-bit build.
inherit_from => [ "solaris-common", asm("x86_elf_asm") ],
cc => "gcc",
cflags => add_before(picker(default => "-Wall",
CC => "gcc",
CFLAGS => add_before(picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3 -fomit-frame-pointer"),
threads("-pthread")),
cppflags => add("-DL_ENDIAN"),
release => "-O3 -fomit-frame-pointer")),
cflags => add(threads("-pthread")),
lib_cppflags => add("-DL_ENDIAN"),
ex_libs => add(threads("-pthread")),
bn_ops => "BN_LLONG",
shared_cflag => "-fPIC",
@@ -231,12 +241,12 @@ my %targets = (
# to consider using gcc shared build even with vendor compiler:-)
# -- <appro@openssl.org>
inherit_from => [ "solaris-common", asm("x86_64_asm") ],
cc => "gcc",
cflags => add_before(picker(default => "-m64 -Wall",
CC => "gcc",
CFLAGS => add_before(picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cppflags => add("-DL_ENDIAN"),
release => "-O3")),
cflags => add_before("-m64", threads("-pthread")),
lib_cppflags => add("-DL_ENDIAN"),
ex_libs => add(threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "elf",
@@ -260,11 +270,12 @@ my %targets = (
#
"solaris64-x86_64-cc" => {
inherit_from => [ "solaris-common", asm("x86_64_asm") ],
cc => "cc",
cflags => add_before(picker(default => "-xarch=generic64 -xstrconst -Xa",
debug => "-g",
CC => "cc",
CFLAGS => add_before(picker(debug => "-g",
release => "-xO5 -xdepend -xbuiltin")),
cppflags => add("-DL_ENDIAN", threads("-D_REENTRANT")),
cflags => add_before("-xarch=generic64 -xstrconst -Xa"),
cppflags => add(threads("-D_REENTRANT")),
lib_cppflags => add("-DL_ENDIAN"),
thread_scheme => "pthreads",
lflags => add(threads("-mt")),
ex_libs => add(threads("-lpthread")),
@@ -278,12 +289,12 @@ my %targets = (
#### SPARC Solaris with GNU C setups
"solaris-sparcv7-gcc" => {
inherit_from => [ "solaris-common" ],
cc => "gcc",
cflags => add_before(picker(default => "-Wall",
CC => "gcc",
CFLAGS => add_before(picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
release => "-O3")),
cflags => add(threads("-pthread")),
lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
ex_libs => add(threads("-pthread")),
bn_ops => "BN_LLONG RC4_CHAR",
shared_cflag => "-fPIC",
@@ -312,12 +323,12 @@ my %targets = (
# SC5.0 note: Compiler common patch 107357-01 or later is required!
"solaris-sparcv7-cc" => {
inherit_from => [ "solaris-common" ],
cc => "cc",
cflags => add_before(picker(default => "-xstrconst -Xa",
debug => "-g",
CC => "cc",
CFLAGS => add_before(picker(debug => "-g",
release => "-xO5 -xdepend")),
cppflags => add("-DB_ENDIAN -DBN_DIV2W",
threads("-D_REENTRANT")),
cflags => add_before("-xstrconst -Xa"),
cppflags => add(threads("-D_REENTRANT")),
lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
lflags => add(threads("-mt")),
ex_libs => add(threads("-lpthread")),
bn_ops => "BN_LLONG RC4_CHAR",
@@ -344,12 +355,14 @@ my %targets = (
# Only N32 and N64 ABIs are supported.
"irix-mips3-gcc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "gcc",
cflags => combine(picker(default => "-mabi=n32",
debug => "-g -O0",
release => "-O3")),
CC => "gcc",
CFLAGS => picker(debug => "-g -O0",
release => "-O3"),
cflags => "-mabi=n32",
cppflags => combine("-DB_ENDIAN -DBN_DIV3W",
threads("-D_SGI_MP_SOURCE")),
cppflags => threads("-D_SGI_MP_SOURCE"),
lib_cppflags => "-DB_ENDIAN -DBN_DIV3W",
ex_libs => add(threads("-lpthread")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT",
thread_scheme => "pthreads",
@@ -361,12 +374,12 @@ my %targets = (
},
"irix-mips3-cc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "cc",
cflags => combine(picker(default => "-n32 -mips3 -use_readonly_const -G0 -rdata_shared",
debug => "-g -O0",
release => "-O2")),
cppflags => combine("-DB_ENDIAN -DBN_DIV3W",
threads("-D_SGI_MP_SOURCE")),
CC => "cc",
CFLAGS => picker(debug => "-g -O0",
release => "-O2"),
cflags => "-n32 -mips3 -use_readonly_const -G0 -rdata_shared",
cppflags => threads("-D_SGI_MP_SOURCE"),
lib_cppflags => "-DB_ENDIAN -DBN_DIV3W",
ex_libs => add(threads("-lpthread")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT",
thread_scheme => "pthreads",
@@ -379,12 +392,12 @@ my %targets = (
# N64 ABI builds.
"irix64-mips4-gcc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "gcc",
cflags => combine(picker(default => "-mabi=64 -mips4",
debug => "-g -O0",
release => "-O3")),
cppflags => combine("-DB_ENDIAN -DBN_DIV3W",
threads("-D_SGI_MP_SOURCE")),
CC => "gcc",
CFLAGS => picker(debug => "-g -O0",
release => "-O3"),
cflags => "-mabi=64 -mips4",
cppflags => threads("-D_SGI_MP_SOURCE"),
lib_cppflags => "-DB_ENDIAN -DBN_DIV3W",
ex_libs => add(threads("-lpthread")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthreads",
@@ -396,13 +409,13 @@ my %targets = (
},
"irix64-mips4-cc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "cc",
cflags => combine(picker(default => "-64 -mips4 -use_readonly_const -G0 -rdata_shared",
debug => "-g -O0",
release => "-O2")),
cppflags => combine("-DB_ENDIAN -DBN_DIV3W",
threads("-D_SGI_MP_SOURCE")),
ex_libs => add(threads("-lpthread")),
CC => "cc",
CFLAGS => picker(debug => "-g -O0",
release => "-O2"),
cflags => "-64 -mips4 -use_readonly_const -G0 -rdata_shared",
cppflags => threads("-D_SGI_MP_SOURCE"),
lib_cppflags => "-DB_ENDIAN -DBN_DIV3W",
ex_libs => threads("-lpthread"),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthreads",
perlasm_scheme => "64",
@@ -441,11 +454,11 @@ my %targets = (
# thus adequate performance is provided even with PA-RISC 1.1 build.
"hpux-parisc-gcc" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cflags => combine(picker(debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cppflags => "-DB_ENDIAN -DBN_DIV2W",
CC => "gcc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O3"),
cflags => add(threads("-pthread")),
lib_cppflags => "-DB_ENDIAN -DBN_DIV2W",
ex_libs => add("-Wl,+s -ldld", threads("-pthread")),
bn_ops => "BN_LLONG",
thread_scheme => "pthreads",
@@ -461,10 +474,11 @@ my %targets = (
},
"hpux64-parisc2-gcc" => {
inherit_from => [ "BASE_unix", asm("parisc20_64_asm") ],
cc => "gcc",
cflags => combine(picker(debug => "-O0 -g",
CC => "gcc",
CFLAGS => combine(picker(debug => "-O0 -g",
release => "-O3")),
cppflags => combine("-DB_ENDIAN", threads("-D_REENTRANT")),
cppflags => threads("-D_REENTRANT"),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add("-ldl"),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
thread_scheme => "pthreads",
@@ -479,12 +493,12 @@ my %targets = (
# More attempts at unified 10.X and 11.X targets for HP C compiler.
"hpux-parisc-cc" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => combine(picker(default => "+Optrs_strongly_typed -Ae +ESlit",
debug => "+O0 +d -g",
release => "+O3")),
cppflags => combine("-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY",
threads("-D_REENTRANT")),
CC => "cc",
CFLAGS => picker(debug => "+O0 +d -g",
release => "+O3"),
cflags => "+Optrs_strongly_typed -Ae +ESlit",
cppflags => threads("-D_REENTRANT"),
lib_cppflags => "-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY",
ex_libs => add("-Wl,+s -ldld",threads("-lpthread")),
bn_ops => "RC4_CHAR",
thread_scheme => "pthreads",
@@ -501,12 +515,12 @@ my %targets = (
},
"hpux64-parisc2-cc" => {
inherit_from => [ "BASE_unix", asm("parisc20_64_asm") ],
cc => "cc",
cflags => combine(picker(default => "+DD64 +Optrs_strongly_typed -Ae +ESlit",
debug => "+O0 +d -g",
release => "+O3")),
cppflags => combine("-DB_ENDIAN -DMD32_XARRAY",
threads("-D_REENTRANT")),
CC => "cc",
CFLAGS => picker(debug => "+O0 +d -g",
release => "+O3") ,
cflags => "+DD64 +Optrs_strongly_typed -Ae +ESlit",
cppflags => threads("-D_REENTRANT") ,
lib_cppflags => "-DB_ENDIAN -DMD32_XARRAY",
ex_libs => add("-ldl",threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
thread_scheme => "pthreads",
@@ -521,11 +535,12 @@ my %targets = (
# HP/UX IA-64 targets
"hpux-ia64-cc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "cc",
cflags => combine(picker(default => "-Ae +DD32 +Olit=all -z",
debug => "+O0 +d -g",
release => "+O2")),
cppflags => combine("-DB_ENDIAN", threads("-D_REENTRANT")),
CC => "cc",
CFLAGS => picker(debug => "+O0 +d -g",
release => "+O2"),
cflags => "-Ae +DD32 +Olit=all -z",
cppflags => add(threads("-D_REENTRANT")),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add("-ldl",threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT",
thread_scheme => "pthreads",
@@ -538,11 +553,12 @@ my %targets = (
},
"hpux64-ia64-cc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "cc",
cflags => combine(picker(default => "-Ae +DD64 +Olit=all -z",
debug => "+O0 +d -g",
release => "+O3")),
cppflags => combine("-DB_ENDIAN", threads("-D_REENTRANT")),
CC => "cc",
CFLAGS => picker(debug => "+O0 +d -g",
release => "+O3"),
cflags => "-Ae +DD64 +Olit=all -z",
cppflags => threads("-D_REENTRANT"),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add("-ldl", threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthreads",
@@ -556,11 +572,11 @@ my %targets = (
# GCC builds...
"hpux-ia64-gcc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "gcc",
cflags => combine(picker(debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cppflags => "-DB_ENDIAN",
CC => "gcc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O3"),
cflags => add(threads("-pthread")),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add("-ldl", threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT",
thread_scheme => "pthreads",
@@ -573,12 +589,11 @@ my %targets = (
},
"hpux64-ia64-gcc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "gcc",
cflags => combine(picker(default => "-mlp64",
debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cppflags => "-DB_ENDIAN",
CC => "gcc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O3"),
cflags => combine("-mlp64", threads("-pthread")),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add("-ldl", threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthreads",
@@ -593,10 +608,11 @@ my %targets = (
#### HP MPE/iX http://jazz.external.hp.com/src/openssl/
"MPE/iX-gcc" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cflags => "-O3",
cppflags => "-D_ENDIAN -DBN_DIV2W -D_POSIX_SOURCE -D_SOCKET_SOURCE",
includes => add("/SYSLOG/PUB"),
CC => "gcc",
CFLAGS => "-O3",
cppflags => "-D_POSIX_SOURCE -D_SOCKET_SOURCE",
includes => [ "/SYSLOG/PUB" ],
lib_cppflags => "-DBN_DIV2W",
sys_id => "MPE",
lflags => add("-L/SYSLOG/PUB"),
ex_libs => add("-lsyslog -lsocket -lcurses"),
@@ -610,8 +626,9 @@ my %targets = (
#### but not anymore...
"tru64-alpha-gcc" => {
inherit_from => [ "BASE_unix", asm("alpha_asm") ],
cc => "gcc",
cflags => combine("-std=c9x -O3", threads("-pthread")),
CC => "gcc",
CFLAGS => "-O3",
cflags => add("-std=c9x", threads("-pthread")),
cppflags => "-D_XOPEN_SOURCE=500 -D_OSF_SOURCE",
ex_libs => add("-lrt", threads("-pthread")), # for mlock(2)
bn_ops => "SIXTY_FOUR_BIT_LONG",
@@ -622,9 +639,10 @@ my %targets = (
},
"tru64-alpha-cc" => {
inherit_from => [ "BASE_unix", asm("alpha_asm") ],
cc => "cc",
cflags => combine("-std1 -tune host -fast -readonly_strings",
threads("-pthread")),
CC => "cc",
CFLAGS => "-tune host -fast",
cflags => add("-std1 -readonly_strings",
threads("-pthread")),
cppflags => "-D_XOPEN_SOURCE=500 -D_OSF_SOURCE",
ex_libs => add("-lrt", threads("-pthread")), # for mlock(2)
bn_ops => "SIXTY_FOUR_BIT_LONG",
@@ -642,17 +660,17 @@ my %targets = (
# throw in -D[BL]_ENDIAN, whichever appropriate...
"linux-generic32" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cxx => "g++",
cflags => combine(picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cxxflags => combine(picker(default => "-std=c++11 -Wall",
debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
cppflags => "-DOPENSSL_USE_NODELETE",
CC => "gcc",
CXX => "g++",
CFLAGS => picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
CXXFLAGS => picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
cflags => threads("-pthread"),
cxxflags => combine("-std=c++11", threads("-pthread")),
lib_cppflags => "-DOPENSSL_USE_NODELETE",
ex_libs => add("-ldl", threads("-pthread")),
bn_ops => "BN_LLONG RC4_CHAR",
thread_scheme => "pthreads",
@@ -674,14 +692,16 @@ my %targets = (
"linux-ppc64" => {
inherit_from => [ "linux-generic64", asm("ppc64_asm") ],
cflags => add("-m64"),
cppflags => add("-DB_ENDIAN"),
cxxflags => add("-m64"),
lib_cppflags => add("-DB_ENDIAN"),
perlasm_scheme => "linux64",
multilib => "64",
},
"linux-ppc64le" => {
inherit_from => [ "linux-generic64", asm("ppc64_asm") ],
cflags => add("-m64"),
cppflags => add("-DL_ENDIAN"),
cxxflags => add("-m64"),
lib_cppflags => add("-DL_ENDIAN"),
perlasm_scheme => "linux64le",
},
@@ -727,6 +747,7 @@ my %targets = (
"linux-arm64ilp32" => { # https://wiki.linaro.org/Platform/arm64-ilp32
inherit_from => [ "linux-generic32", asm("aarch64_asm") ],
cflags => add("-mabi=ilp32"),
cxxflags => add("-mabi=ilp32"),
bn_ops => "SIXTY_FOUR_BIT RC4_CHAR",
perlasm_scheme => "linux64",
},
@@ -736,7 +757,8 @@ my %targets = (
# support, if no -march was specified at command line.
inherit_from => [ "linux-generic32", asm("mips32_asm") ],
cflags => add("-mabi=32"),
cppflags => add("-DBN_DIV3W"),
cxxflags => add("-mabi=32"),
lib_cppflags => add("-DBN_DIV3W"),
perlasm_scheme => "o32",
},
# mips32 and mips64 below refer to contemporary MIPS Architecture
@@ -744,7 +766,8 @@ my %targets = (
"linux-mips64" => {
inherit_from => [ "linux-generic32", asm("mips64_asm") ],
cflags => add("-mabi=n32"),
cppflags => add("-DBN_DIV3W"),
cxxflags => add("-mabi=n32"),
lib_cppflags => add("-DBN_DIV3W"),
bn_ops => "SIXTY_FOUR_BIT RC4_CHAR",
perlasm_scheme => "n32",
multilib => "32",
@@ -752,7 +775,8 @@ my %targets = (
"linux64-mips64" => {
inherit_from => [ "linux-generic64", asm("mips64_asm") ],
cflags => add("-mabi=64"),
cppflags => add("-DBN_DIV3W"),
cxxflags => add("-mabi=64"),
lib_cppflags => add("-DBN_DIV3W"),
perlasm_scheme => "64",
multilib => "64",
},
@@ -762,17 +786,17 @@ my %targets = (
#### machines where gcc doesn't understand -m32 and -m64
"linux-elf" => {
inherit_from => [ "linux-generic32", asm("x86_elf_asm") ],
cflags => add(picker(release => "-fomit-frame-pointer")),
cppflags => add("-DL_ENDIAN"),
CFLAGS => add(picker(release => "-fomit-frame-pointer")),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "BN_LLONG",
},
"linux-aout" => {
inherit_from => [ "BASE_unix", asm("x86_asm") ],
cc => "gcc",
cflags => add(picker(default => "-Wall",
CC => "gcc",
CFLAGS => add(picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3 -fomit-frame-pointer")),
cppflags => add("-DL_ENDIAN"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "BN_LLONG",
thread_scheme => "(unknown)",
perlasm_scheme => "a.out",
@@ -781,36 +805,37 @@ my %targets = (
#### X86 / X86_64 targets
"linux-x86" => {
inherit_from => [ "linux-generic32", asm("x86_asm") ],
cflags => add(picker(default => "-m32",
release => "-fomit-frame-pointer")),
cppflags => add("-DL_ENDIAN"),
CFLAGS => add(picker(release => "-fomit-frame-pointer")),
cflags => add("-m32"),
cxxflags => add("-m32"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "BN_LLONG",
perlasm_scheme => "elf",
},
"linux-x86-clang" => {
inherit_from => [ "linux-x86" ],
cc => "clang",
cxx => "clang++",
cflags => add("-Wextra"),
CC => "clang",
CXX => "clang++",
},
"linux-x86_64" => {
inherit_from => [ "linux-generic64", asm("x86_64_asm") ],
cflags => add("-m64"),
cppflags => add("-DL_ENDIAN"),
cxxflags => add("-m64"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "elf",
multilib => "64",
},
"linux-x86_64-clang" => {
inherit_from => [ "linux-x86_64" ],
cc => "clang",
cxx => "clang++",
cflags => add("-Wextra"),
CC => "clang",
CXX => "clang++",
},
"linux-x32" => {
inherit_from => [ "linux-generic32", asm("x86_64_asm") ],
cflags => add("-mx32"),
cppflags => add("-DL_ENDIAN"),
cxxflags => add("-mx32"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT",
perlasm_scheme => "elf32",
multilib => "x32",
@@ -824,7 +849,8 @@ my %targets = (
"linux64-s390x" => {
inherit_from => [ "linux-generic64", asm("s390x_asm") ],
cflags => add("-m64"),
cppflags => add("-DB_ENDIAN"),
cxxflags => add("-m64"),
lib_cppflags => add("-DB_ENDIAN"),
perlasm_scheme => "64",
multilib => "64",
},
@@ -847,7 +873,8 @@ my %targets = (
#
inherit_from => [ "linux-generic32", asm("s390x_asm") ],
cflags => add("-m31 -Wa,-mzarch"),
cppflags => add("-DB_ENDIAN"),
cxxflags => add("-m31 -Wa,-mzarch"),
lib_cppflags => add("-DB_ENDIAN"),
bn_asm_src => sub { my $r=join(" ",@_); $r=~s|asm/s390x\.S|bn_asm.c|; $r; },
perlasm_scheme => "31",
multilib => "/highgprs",
@@ -857,34 +884,39 @@ my %targets = (
"linux-sparcv8" => {
inherit_from => [ "linux-generic32", asm("sparcv8_asm") ],
cflags => add("-mcpu=v8"),
cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
cxxflags => add("-mcpu=v8"),
lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
},
"linux-sparcv9" => {
# it's a real mess with -mcpu=ultrasparc option under Linux,
# but -Wa,-Av8plus should do the trick no matter what.
inherit_from => [ "linux-generic32", asm("sparcv9_asm") ],
cflags => add("-m32 -mcpu=ultrasparc -Wa,-Av8plus"),
cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
cxxflags => add("-m32 -mcpu=ultrasparc -Wa,-Av8plus"),
lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
},
"linux64-sparcv9" => {
# GCC 3.1 is a requirement
inherit_from => [ "linux-generic64", asm("sparcv9_asm") ],
cflags => add("-m64 -mcpu=ultrasparc"),
cppflags => add("-DB_ENDIAN"),
cxxflags => add("-m64 -mcpu=ultrasparc"),
lib_cppflags => add("-DB_ENDIAN"),
bn_ops => "BN_LLONG RC4_CHAR",
multilib => "64",
},
"linux-alpha-gcc" => {
inherit_from => [ "linux-generic64", asm("alpha_asm") ],
cppflags => add("-DL_ENDIAN"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
},
"linux-c64xplus" => {
inherit_from => [ "BASE_unix" ],
# TI_CGT_C6000_7.3.x is a requirement
cc => "cl6x",
cflags => "--linux -ea=.s -eo=.o -mv6400+ -o2 -ox -ms -pden",
CC => "cl6x",
CFLAGS => "-o2 -ox -ms",
cflags => "--linux -ea=.s -eo=.o -mv6400+ -pden",
cxxflags => "--linux -ea=.s -eo=.o -mv6400+ -pden",
cppflags => combine("-DOPENSSL_SMALL_FOOTPRINT",
threads("-D_REENTRANT")),
bn_ops => "BN_LLONG",
@@ -906,97 +938,6 @@ my %targets = (
ranlib => "true",
},
#### Android: linux-* but without pointers to headers and libs.
#
# It takes pair of prior-set environment variables to make it work:
#
# CROSS_SYSROOT=/some/where/android-ndk-<ver>/platforms/android-<apiver>/arch-<arch>
# CROSS_COMPILE=<prefix>
#
# As well as PATH adjusted to cover ${CROSS_COMPILE}gcc and company.
# For example to compile for ICS and ARM with NDK 10d, you'd:
#
# ANDROID_NDK=/some/where/android-ndk-10d
# CROSS_SYSROOT=$ANDROID_NDK/platforms/android-14/arch-arm
# CROSS_COMPILE=arm-linux-androideabi-
# PATH=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuild/linux-x86_64/bin
#
"android" => {
inherit_from => [ "linux-generic32" ],
# Special note about unconditional -fPIC and -pie. The underlying
# reason is that Lollipop refuses to run non-PIE. But what about
# older systems and NDKs? -fPIC was never problem, so the only
# concern is -pie. Older toolchains, e.g. r4, appear to handle it
# and binaries turn mostly functional. "Mostly" means that oldest
# Androids, such as Froyo, fail to handle executable, but newer
# systems are perfectly capable of executing binaries targeting
# Froyo. Keep in mind that in the nutshell Android builds are
# about JNI, i.e. shared libraries, not applications.
cflags => add(picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack")),
bin_cflags => "-pie",
},
"android-x86" => {
inherit_from => [ "android", asm("x86_asm") ],
cflags => add(picker(release => "-fomit-frame-pointer")),
bn_ops => "BN_LLONG",
perlasm_scheme => "android",
},
################################################################
# Contemporary Android applications can provide multiple JNI
# providers in .apk, targeting multiple architectures. Among
# them there is "place" for two ARM flavours: generic eabi and
# armv7-a/hard-float. However, it should be noted that OpenSSL's
# ability to engage NEON is not constrained by ABI choice, nor
# is your ability to call OpenSSL from your application code
# compiled with floating-point ABI other than default 'soft'.
# [Latter thanks to __attribute__((pcs("aapcs"))) declaration.]
# This means that choice of ARM libraries you provide in .apk
# is driven by application needs. For example if application
# itself benefits from NEON or is floating-point intensive, then
# it might be appropriate to provide both libraries. Otherwise
# just generic eabi would do. But in latter case it would be
# appropriate to
#
# ./Configure android-armeabi -D__ARM_MAX_ARCH__=8
#
# in order to build "universal" binary and allow OpenSSL take
# advantage of NEON when it's available.
#
"android-armeabi" => {
inherit_from => [ "android", asm("armv4_asm") ],
},
"android-mips" => {
inherit_from => [ "android", asm("mips32_asm") ],
perlasm_scheme => "o32",
},
"android64" => {
inherit_from => [ "linux-generic64" ],
cflags => add(picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack")),
bin_cflags => "-pie",
},
"android64-aarch64" => {
inherit_from => [ "android64", asm("aarch64_asm") ],
perlasm_scheme => "linux64",
},
"android64-x86_64" => {
inherit_from => [ "android64", asm("x86_64_asm") ],
perlasm_scheme => "elf",
},
"android64-mips64" => {
############################################################
# You are more than likely have to specify target processor
# on ./Configure command line. Trouble is that toolchain's
# default is MIPS64r6 (at least in r10d), but there are no
# such processors around (or they are too rare to spot one).
# Actual problem is that MIPS64r6 is binary incompatible
# with previous MIPS ISA versions, in sense that unlike
# prior versions original MIPS binary code will fail.
#
inherit_from => [ "android64", asm("mips64_asm") ],
perlasm_scheme => "64",
},
#### *BSD
"BSD-generic32" => {
# As for thread cflag. Idea is to maintain "collective" set of
@@ -1007,11 +948,11 @@ my %targets = (
# -D_THREAD_SAFE and sometimes -D_REENTRANT. FreeBSD 5.x
# expands it as -lc_r, which seems to be sufficient?
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => combine(picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
threads("-pthread")),
CC => "cc",
CFLAGS => picker(default => "-Wall",
debug => "-O0 -g",
release => "-O3"),
cflags => threads("-pthread"),
cppflags => threads("-D_THREAD_SAFE -D_REENTRANT"),
ex_libs => add(threads("-pthread")),
enable => add("devcryptoeng"),
@@ -1029,8 +970,8 @@ my %targets = (
"BSD-x86" => {
inherit_from => [ "BSD-generic32", asm("x86_asm") ],
cflags => add(picker(release => "-fomit-frame-pointer")),
cppflags => add("-DL_ENDIAN"),
CFLAGS => add(picker(release => "-fomit-frame-pointer")),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "BN_LLONG",
shared_target => "bsd-shared",
perlasm_scheme => "a.out",
@@ -1043,35 +984,35 @@ my %targets = (
"BSD-sparcv8" => {
inherit_from => [ "BSD-generic32", asm("sparcv8_asm") ],
cflags => add("-mcpu=v8"),
cppflags => add("-DB_ENDIAN"),
lib_cppflags => add("-DB_ENDIAN"),
},
"BSD-sparc64" => {
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
# simply *happens* to work around a compiler bug in gcc 3.3.3,
# triggered by RIPEMD160 code.
inherit_from => [ "BSD-generic64", asm("sparcv9_asm") ],
cppflags => add("-DB_ENDIAN -DMD32_REG_T=int"),
lib_cppflags => add("-DB_ENDIAN -DMD32_REG_T=int"),
bn_ops => "BN_LLONG",
},
"BSD-ia64" => {
inherit_from => [ "BSD-generic64", asm("ia64_asm") ],
cppflags => add("-DL_ENDIAN"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
},
"BSD-x86_64" => {
inherit_from => [ "BSD-generic64", asm("x86_64_asm") ],
cppflags => add("-DL_ENDIAN"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "elf",
},
"bsdi-elf-gcc" => {
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "gcc",
cflags => "-fomit-frame-pointer -O3 -Wall",
cppflags => "-DPERL5 -DL_ENDIAN",
CC => "gcc",
CFLAGS => "-fomit-frame-pointer -O3 -Wall",
lib_cppflags => "-DPERL5 -DL_ENDIAN",
ex_libs => add("-ldl"),
bn_ops => "BN_LLONG",
thread_scheme => "(unknown)",
@@ -1083,16 +1024,16 @@ my %targets = (
"nextstep" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-O -Wall",
CC => "cc",
CFLAGS => "-O -Wall",
unistd => "<libc.h>",
bn_ops => "BN_LLONG",
thread_scheme => "(unknown)",
},
"nextstep3.3" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-O3 -Wall",
CC => "cc",
CFLAGS => "-O3 -Wall",
unistd => "<libc.h>",
bn_ops => "BN_LLONG",
thread_scheme => "(unknown)",
@@ -1101,14 +1042,14 @@ my %targets = (
# QNX
"qnx4" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "",
cppflags => "-DL_ENDIAN -DTERMIO",
CC => "cc",
CFLAGS => "",
lib_cppflags => "-DL_ENDIAN -DTERMIO",
thread_scheme => "(unknown)",
},
"QNX6" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
CC => "gcc",
ex_libs => add("-lsocket"),
dso_scheme => "dlfcn",
shared_target => "bsd-gcc-shared",
@@ -1117,9 +1058,9 @@ my %targets = (
},
"QNX6-i386" => {
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "gcc",
cflags => "-O2 -Wall",
cppflags => "-DL_ENDIAN",
CC => "gcc",
CFLAGS => "-O2 -Wall",
lib_cppflags => "-DL_ENDIAN",
ex_libs => add("-lsocket"),
dso_scheme => "dlfcn",
shared_target => "bsd-gcc-shared",
@@ -1140,25 +1081,27 @@ my %targets = (
# UnixWare 2.0x fails destest with -O.
"unixware-2.0" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => combine(threads("-Kthread")),
cppflags => "-DFILIO_H -DNO_STRINGS_H",
CC => "cc",
cflags => threads("-Kthread"),
lib_cppflags => "-DFILIO_H -DNO_STRINGS_H",
ex_libs => add("-lsocket -lnsl -lresolv -lx"),
thread_scheme => "uithreads",
},
"unixware-2.1" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => combine("-O", threads("-Kthread")),
cppflags => "-DFILIO_H",
CC => "cc",
CFLAGS => "-O",
cflags => threads("-Kthread"),
lib_cppflags => "-DFILIO_H",
ex_libs => add("-lsocket -lnsl -lresolv -lx"),
thread_scheme => "uithreads",
},
"unixware-7" => {
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "cc",
cflags => combine("-O -Kalloca", threads("-Kthread")),
cppflags => "-DFILIO_H",
CC => "cc",
CFLAGS => "-O",
cflags => combine("-Kalloca", threads("-Kthread")),
lib_cppflags => "-DFILIO_H",
ex_libs => add("-lsocket -lnsl"),
thread_scheme => "uithreads",
bn_ops => "BN_LLONG",
@@ -1170,10 +1113,10 @@ my %targets = (
},
"unixware-7-gcc" => {
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "gcc",
cflags => combine("-O3 -fomit-frame-pointer -Wall"),
cppflags => add("-DL_ENDIAN -DFILIO_H",
threads("-D_REENTRANT")),
CC => "gcc",
CFLAGS => "-O3 -fomit-frame-pointer -Wall",
cppflags => add(threads("-D_REENTRANT")),
lib_cppflags => add("-DL_ENDIAN -DFILIO_H"),
ex_libs => add("-lsocket -lnsl"),
bn_ops => "BN_LLONG",
thread_scheme => "pthreads",
@@ -1218,11 +1161,11 @@ my %targets = (
# current value of $OBJECT_MODE.
"aix-gcc" => {
inherit_from => [ "BASE_unix", asm("ppc32_asm") ],
cc => "gcc",
cflags => combine(picker(debug => "-O0 -g",
release => "-O"),
threads("-pthread")),
cppflags => "-DB_ENDIAN",
CC => "gcc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O"),
cflags => add(threads("-pthread")),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add(threads("-pthread")),
sys_id => "AIX",
bn_ops => "BN_LLONG RC4_CHAR",
@@ -1236,12 +1179,11 @@ my %targets = (
},
"aix64-gcc" => {
inherit_from => [ "BASE_unix", asm("ppc64_asm") ],
cc => "gcc",
cflags => combine(picker(default => "-maix64",
debug => "-O0 -g",
release => "-O"),
threads("-pthread")),
cppflags => "-DB_ENDIAN",
CC => "gcc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O"),
cflags => combine("-maix64", threads("-pthread")),
lib_cppflags => "-DB_ENDIAN",
ex_libs => add(threads("-pthread")),
sys_id => "AIX",
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
@@ -1255,12 +1197,13 @@ my %targets = (
},
"aix-cc" => {
inherit_from => [ "BASE_unix", asm("ppc32_asm") ],
cc => "cc",
cflags => combine(picker(default => "-q32 -qmaxmem=16384 -qro -qroconst",
debug => "-O0 -g",
release => "-O"),
CC => "cc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O"),
cflags => combine("-q32 -qmaxmem=16384 -qro -qroconst",
threads("-qthreaded")),
cppflags => combine("-DB_ENDIAN", threads("-D_THREAD_SAFE")),
cppflags => threads("-D_THREAD_SAFE"),
lib_cppflags => "-DB_ENDIAN",
sys_id => "AIX",
bn_ops => "BN_LLONG RC4_CHAR",
thread_scheme => "pthreads",
@@ -1274,12 +1217,13 @@ my %targets = (
},
"aix64-cc" => {
inherit_from => [ "BASE_unix", asm("ppc64_asm") ],
cc => "cc",
cflags => combine(picker(default => "-q64 -qmaxmem=16384 -qro -qroconst",
debug => "-O0 -g",
release => "-O"),
CC => "cc",
CFLAGS => picker(debug => "-O0 -g",
release => "-O"),
cflags => combine("-q64 -qmaxmem=16384 -qro -qroconst",
threads("-qthreaded")),
cppflags => combine("-DB_ENDIAN", threads("-D_THREAD_SAFE")),
cppflags => threads("-D_THREAD_SAFE"),
lib_cppflags => "-DB_ENDIAN",
sys_id => "AIX",
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
thread_scheme => "pthreads",
@@ -1295,9 +1239,11 @@ my %targets = (
# SIEMENS BS2000/OSD: an EBCDIC-based mainframe
"BS2000-OSD" => {
inherit_from => [ "BASE_unix" ],
cc => "c89",
cflags => "-O -XLLML -XLLMK -XL",
cppflags => "-DB_ENDIAN -DCHARSET_EBCDIC",
CC => "c89",
CFLAGS => "-O",
cflags => "-XLLML -XLLMK -XL",
cppflags => "-DCHARSET_EBCDIC",
lib_cppflags => "-DB_ENDIAN",
ex_libs => add("-lsocket -lnsl"),
bn_ops => "THIRTY_TWO_BIT RC4_CHAR",
thread_scheme => "(unknown)",
@@ -1305,60 +1251,63 @@ my %targets = (
#### Visual C targets
#
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
# Win64 targets, WIN64I denotes IA-64/Itanium and WIN64A - AMD64
#
# Note about -wd4090, disable warning C4090. This warning returns false
# Note about /wd4090, disable warning C4090. This warning returns false
# positives in some situations. Disabling it altogether masks both
# legitimate and false cases, but as we compile on multiple platforms,
# we rely on other compilers to catch legitimate cases.
#
# Also note that we force threads no matter what. Configuring "no-threads"
# is ignored.
#
# UNICODE is defined in VC-common and applies to all targets. It used to
# be an opt-in option for VC-WIN32, but not anymore. The original reason
# was because ANSI API was *native* system interface for no longer
# supported Windows 9x. Keep in mind that UNICODE only affects how
# OpenSSL libraries interact with underlying OS, it doesn't affect API
# that OpenSSL presents to application.
"VC-common" => {
inherit_from => [ "BASE_Windows" ],
template => 1,
cc => "cl",
cpp => '$(CC) /EP /C',
cflags => "-W3 -wd4090 -Gs0 -GF -Gy -nologo",
defines => add("OPENSSL_SYS_WIN32", "WIN32_LEAN_AND_MEAN",
"L_ENDIAN", "_CRT_SECURE_NO_DEPRECATE",
"_WINSOCK_DEPRECATED_NO_WARNINGS",
sub { my @defs = ();
unless ($disabled{"zlib-dynamic"}) {
my $zlib =
$withargs{zlib_lib} // "ZLIB1";
push @defs,
quotify("perl",
'LIBZ="' . $zlib . '"');
}
return [ @defs ];
}),
CC => "cl",
CPP => '$(CC) /EP /C',
CFLAGS => "/W3 /wd4090 /nologo",
LDFLAGS => add("/debug"),
coutflag => "/Fo",
lib_cflags => add("/Zi /Fdossl_static"),
dso_cflags => "/Zi /Fddso",
bin_cflags => "/Zi /Fdapp",
lflags => add("/debug"),
defines => add("OPENSSL_SYS_WIN32", "WIN32_LEAN_AND_MEAN",
"UNICODE", "_UNICODE",
"_CRT_SECURE_NO_DEPRECATE",
"_WINSOCK_DEPRECATED_NO_WARNINGS"),
lib_cflags => add("/Zi /Fdossl_static.pdb"),
lib_defines => add("L_ENDIAN"),
dso_cflags => "/Zi /Fddso.pdb",
bin_cflags => "/Zi /Fdapp.pdb",
shared_ldflag => "/dll",
shared_target => "win-shared", # meaningless except it gives Configure a hint
thread_scheme => "winthreads",
dso_scheme => "win32",
apps_aux_src => add("win32_init.c"),
bn_ops => "EXPORT_VAR_AS_FN",
# additional parameter to build_scheme denotes install-path "flavour"
build_scheme => add("VC-common", { separator => undef }),
},
"VC-noCE-common" => {
inherit_from => [ "VC-common" ],
template => 1,
cflags => add(picker(debug =>
CFLAGS => add(picker(debug => '/Od',
release => '/O2')),
cflags => add(picker(default => '/Gs0 /GF /Gy',
debug =>
sub {
($disabled{shared} ? "" : "/MDd")
." /Od";
($disabled{shared} ? "" : "/MDd");
},
release =>
sub {
($disabled{shared} ? "" : "/MD")
." /O2";
($disabled{shared} ? "" : "/MD");
})),
defines => add(picker(default => [ "UNICODE", "_UNICODE" ],
debug => [ "DEBUG", "_DEBUG" ])),
defines => add(picker(debug => [ "DEBUG", "_DEBUG" ])),
lib_cflags => add(sub { $disabled{shared} ? "/MT /Zl" : () }),
# Following might/should appears controversial, i.e. defining
# /MDd without evaluating $disabled{shared}. It works in
@@ -1390,15 +1339,14 @@ my %targets = (
push @ex_libs, 'bufferoverflowu.lib' if (`cl 2>&1` =~ /14\.00\.4[0-9]{4}\./);
return join(" ", @_, @ex_libs);
}),
bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN",
build_scheme => add("VC-W64", { separator => undef }),
bn_ops => add("SIXTY_FOUR_BIT"),
},
"VC-WIN64I" => {
inherit_from => [ "VC-WIN64-common", asm("ia64_asm"),
sub { $disabled{shared} ? () : "ia64_uplink" } ],
as => "ias",
asflags => "-d debug",
asoutflag => "-o",
AS => "ias",
ASFLAGS => "-d debug",
asoutflag => "-o ",
sys_id => "WIN64I",
bn_asm_src => sub { return undef unless @_;
my $r=join(" ",@_); $r=~s|bn-ia64.s|bn_asm.c|; $r; },
@@ -1408,9 +1356,10 @@ my %targets = (
"VC-WIN64A" => {
inherit_from => [ "VC-WIN64-common", asm("x86_64_asm"),
sub { $disabled{shared} ? () : "x86_64_uplink" } ],
as => sub { vc_win64a_info()->{as} },
asflags => sub { vc_win64a_info()->{asflags} },
AS => sub { vc_win64a_info()->{AS} },
ASFLAGS => sub { vc_win64a_info()->{ASFLAGS} },
asoutflag => sub { vc_win64a_info()->{asoutflag} },
asflags => sub { vc_win64a_info()->{asflags} },
sys_id => "WIN64A",
bn_asm_src => sub { return undef unless @_;
my $r=join(" ",@_); $r=~s|asm/x86_64-gcc|bn_asm|; $r; },
@@ -1418,60 +1367,46 @@ my %targets = (
multilib => "-x64",
},
"VC-WIN32" => {
# x86 Win32 target defaults to ANSI API, if you want UNICODE,
# configure with 'perl Configure VC-WIN32 -DUNICODE -D_UNICODE'
inherit_from => [ "VC-noCE-common", asm("x86_asm"),
sub { $disabled{shared} ? () : "uplink_common" } ],
cflags => add("-WX"),
as => sub { vc_win32_info()->{as} },
asflags => sub { vc_win32_info()->{asflags} },
CFLAGS => add("/WX"),
AS => sub { vc_win32_info()->{AS} },
ASFLAGS => sub { vc_win32_info()->{ASFLAGS} },
asoutflag => sub { vc_win32_info()->{asoutflag} },
ex_libs => add(sub {
my @ex_libs = ();
# WIN32 UNICODE build gets linked with unicows.lib for
# backward compatibility with Win9x.
push @ex_libs, 'unicows.lib'
if (grep { $_ eq "UNICODE" } @{$user{CPPDEFINES}});
return join(" ", @ex_libs, @_);
}),
asflags => sub { vc_win32_info()->{asflags} },
sys_id => "WIN32",
bn_ops => "BN_LLONG EXPORT_VAR_AS_FN",
bn_ops => add("BN_LLONG"),
perlasm_scheme => sub { vc_win32_info()->{perlasm_scheme} },
build_scheme => add("VC-W32", { separator => undef }),
# "WOW" stands for "Windows on Windows", and "VC-WOW" engages
# some installation path heuristics in windows-makefile.tmpl...
build_scheme => add("VC-WOW", { separator => undef }),
},
"VC-CE" => {
inherit_from => [ "VC-common" ],
as => "ml",
asflags => "/nologo /Cp /coff /c /Cx /Zi",
asoutflag => "/Fo",
cc => "cl",
CFLAGS => add(picker(debug => "/Od",
release => "/O1i")),
CPPDEFINES => picker(debug => [ "DEBUG", "_DEBUG" ]),
LDFLAGS => add("/nologo /opt:ref"),
cflags =>
picker(default =>
combine('/W3 /WX /GF /Gy /nologo',
sub { vc_wince_info()->{cflags}; },
sub { `cl 2>&1` =~ /Version ([0-9]+)\./ && $1>=14
? ($disabled{shared} ? " /MT" : " /MD")
: " /MC"; }),
debug => "/Od",
release => "/O1i"),
combine('/GF /Gy',
sub { vc_wince_info()->{cflags}; },
sub { `cl 2>&1` =~ /Version ([0-9]+)\./ && $1>=14
? ($disabled{shared} ? " /MT" : " /MD")
: " /MC"; }),
cppflags => sub { vc_wince_info()->{cppflags}; },
defines =>
picker(default => [ "UNICODE", "_UNICODE", "OPENSSL_SYS_WINCE",
"WIN32_LEAN_AND_MEAN", "L_ENDIAN", "DSO_WIN32",
"NO_CHMOD", "OPENSSL_SMALL_FOOTPRINT" ],
debug => [ "DEBUG", "_DEBUG" ]),
lib_defines => add("NO_CHMOD", "OPENSSL_SMALL_FOOTPRINT"),
lib_cppflags => sub { vc_wince_info()->{cppflags}; },
includes =>
add(combine(sub { defined(env('WCECOMPAT'))
? '$(WCECOMPAT)/include' : (); },
sub { defined(env('PORTSDK_LIBPATH'))
? '$(PORTSDK_LIBPATH)/../../include'
: (); })),
lflags => add(combine("/nologo /opt:ref",
sub { vc_wince_info()->{lflags}; },
lflags => add(combine(sub { vc_wince_info()->{lflags}; },
sub { defined(env('PORTSDK_LIBPATH'))
? "/entry:mainCRTstartup" : (); })),
sys_id => "WINCE",
bn_ops => "BN_LLONG EXPORT_VAR_AS_FN",
bn_ops => add("BN_LLONG"),
ex_libs => add(sub {
my @ex_libs = ();
push @ex_libs, 'ws2.lib' unless $disabled{sock};
@@ -1491,19 +1426,20 @@ my %targets = (
if (env('TARGETCPU') eq "X86");
return @ex_libs;
}),
build_scheme => add("VC-WCE", { separator => undef }),
},
#### MinGW
"mingw" => {
inherit_from => [ "BASE_unix", asm("x86_asm"),
sub { $disabled{shared} ? () : "x86_uplink" } ],
cc => "gcc",
cflags => picker(default => "-m32 -Wall",
CC => "gcc",
CFLAGS => picker(default => "-Wall",
debug => "-g -O0",
release => "-O3 -fomit-frame-pointer"),
cppflags => combine("-DL_ENDIAN -DWIN32_LEAN_AND_MEAN",
"-DUNICODE -D_UNICODE", threads("-D_MT")),
cflags => "-m32",
cppflags => combine("-DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN",
threads("-D_MT")),
lib_cppflags => "-DL_ENDIAN",
sys_id => "MINGW32",
ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
bn_ops => "BN_LLONG EXPORT_VAR_AS_FN",
@@ -1528,12 +1464,14 @@ my %targets = (
# environment. And as mingw64 is always consistent with itself,
# Applink is never engaged and can as well be omitted.
inherit_from => [ "BASE_unix", asm("x86_64_asm") ],
cc => "gcc",
cflags => picker(default => "-m64 -Wall",
CC => "gcc",
CFLAGS => picker(default => "-Wall",
debug => "-g -O0",
release => "-O3"),
cppflags => combine("-DL_ENDIAN -DWIN32_LEAN_AND_MEAN",
"-DUNICODE -D_UNICODE", threads("-D_MT")),
cflags => "-m64",
cppflags => combine("-DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN",
threads("-D_MT")),
lib_cppflags => "-DL_ENDIAN",
sys_id => "MINGW64",
ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN",
@@ -1552,18 +1490,18 @@ my %targets = (
#### UEFI
"UEFI" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-O",
cppflags => "-DL_ENDIAN",
CC => "cc",
CFLAGS => "-O",
lib_cppflags => "-DL_ENDIAN",
sys_id => "UEFI",
},
#### UWIN
"UWIN" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-O -Wall",
cppflags => "-DTERMIOS -DL_ENDIAN",
CC => "cc",
CFLAGS => "-O -Wall",
lib_cppflags => "-DTERMIOS -DL_ENDIAN",
sys_id => "UWIN",
bn_ops => "BN_LLONG",
dso_scheme => "win32",
@@ -1572,11 +1510,11 @@ my %targets = (
#### Cygwin
"Cygwin-x86" => {
inherit_from => [ "BASE_unix", asm("x86_asm") ],
cc => "gcc",
cflags => picker(default => "-Wall",
CC => "gcc",
CFLAGS => picker(default => "-Wall",
debug => "-g -O0",
release => "-O3 -fomit-frame-pointer"),
cppflags => "-DTERMIOS -DL_ENDIAN",
lib_cppflags => "-DTERMIOS -DL_ENDIAN",
sys_id => "CYGWIN",
bn_ops => "BN_LLONG",
thread_scheme => "pthread",
@@ -1588,11 +1526,11 @@ my %targets = (
},
"Cygwin-x86_64" => {
inherit_from => [ "BASE_unix", asm("x86_64_asm") ],
cc => "gcc",
cflags => picker(default => "-Wall",
CC => "gcc",
CFLAGS => picker(default => "-Wall",
debug => "-g -O0",
release => "-O3"),
cppflags => "-DTERMIOS -DL_ENDIAN",
lib_cppflags => "-DTERMIOS -DL_ENDIAN",
sys_id => "CYGWIN",
bn_ops => "SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthread",
@@ -1624,13 +1562,12 @@ my %targets = (
"darwin-common" => {
inherit_from => [ "BASE_unix" ],
template => 1,
cc => "cc",
cflags => picker(default => "",
debug => "-g -O0",
CC => "cc",
CFLAGS => picker(debug => "-g -O0",
release => "-O3"),
cppflags => threads("-D_REENTRANT"),
lflags => "-Wl,-search_paths_first",
sys_id => "MACOSX",
plib_lflags => "-Wl,-search_paths_first",
bn_ops => "BN_LLONG RC4_CHAR",
thread_scheme => "pthreads",
perlasm_scheme => "osx32",
@@ -1646,28 +1583,30 @@ my %targets = (
"darwin-ppc-cc" => {
inherit_from => [ "darwin-common", asm("ppc32_asm") ],
cflags => add("-arch ppc -std=gnu9x -Wa,-force_cpusubtype_ALL"),
cppflags => add("-DB_ENDIAN"),
lib_cppflags => add("-DB_ENDIAN"),
shared_cflag => add("-fno-common"),
perlasm_scheme => "osx32",
},
"darwin64-ppc-cc" => {
inherit_from => [ "darwin-common", asm("ppc64_asm") ],
cflags => add("-arch ppc64 -std=gnu9x"),
cppflags => add("-DB_ENDIAN"),
lib_cppflags => add("-DB_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
perlasm_scheme => "osx64",
},
"darwin-i386-cc" => {
inherit_from => [ "darwin-common", asm("x86_asm") ],
cflags => add(picker(default => "-arch i386",
release => "-fomit-frame-pointer")),
cppflags => add("-DL_ENDIAN"),
CFLAGS => add(picker(release => "-fomit-frame-pointer")),
cflags => add("-arch i386"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "BN_LLONG RC4_INT",
perlasm_scheme => "macosx",
},
"darwin64-x86_64-cc" => {
inherit_from => [ "darwin-common", asm("x86_64_asm") ],
cflags => add("-arch x86_64 -Wall"),
cppflags => add("-DL_ENDIAN"),
CFLAGS => add("-Wall"),
cflags => add("-arch x86_64"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "macosx",
},
@@ -1713,10 +1652,10 @@ my %targets = (
"hurd-x86" => {
inherit_from => [ "BASE_unix" ],
inherit_from => [ asm("x86_elf_asm") ],
cc => "gcc",
cflags => combine("-O3 -fomit-frame-pointer -Wall",
threads("-pthread")),
cppflags => "-DL_ENDIAN",
CC => "gcc",
CFLAGS => "-O3 -fomit-frame-pointer -Wall",
cflags => threads("-pthread"),
lib_cppflags => "-DL_ENDIAN",
ex_libs => add("-ldl", threads("-pthread")),
bn_ops => "BN_LLONG",
thread_scheme => "pthreads",
@@ -1729,8 +1668,9 @@ my %targets = (
##### VxWorks for various targets
"vxworks-ppc60x" => {
inherit_from => [ "BASE_unix" ],
cc => "ccppc",
cflags => "-mrtp -mhard-float -mstrict-align -fno-implicit-fp -O2 -fstrength-reduce -fno-builtin -fno-strict-aliasing -Wall",
CC => "ccppc",
CFLAGS => "-O2 -Wall -fstrength-reduce",
cflags => "-mrtp -mhard-float -mstrict-align -fno-implicit-fp -fno-builtin -fno-strict-aliasing",
cppflags => combine("-D_REENTRANT -DPPC32_fp60x -DCPU=PPC32",
"_DTOOL_FAMILY=gnu -DTOOL=gnu",
"-I\$(WIND_BASE)/target/usr/h",
@@ -1741,8 +1681,9 @@ my %targets = (
},
"vxworks-ppcgen" => {
inherit_from => [ "BASE_unix" ],
cc => "ccppc",
cflags => "-mrtp -msoft-float -mstrict-align -O1 -fno-builtin -fno-strict-aliasing -Wall",
CC => "ccppc",
CFLAGS => "-O1 -Wall",
cflags => "-mrtp -msoft-float -mstrict-align -fno-builtin -fno-strict-aliasing",
cppflags => combine("-D_REENTRANT -DPPC32 -DCPU=PPC32",
"-DTOOL_FAMILY=gnu -DTOOL=gnu",
"-I\$(WIND_BASE)/target/usr/h",
@@ -1753,8 +1694,9 @@ my %targets = (
},
"vxworks-ppc405" => {
inherit_from => [ "BASE_unix" ],
cc => "ccppc",
cflags => "-g -msoft-float -mlongcall",
CC => "ccppc",
CFLAGS => "-g",
cflags => "-msoft-float -mlongcall",
cppflags => combine("-D_REENTRANT -DPPC32 -DCPU=PPC405",
"-DTOOL_FAMILY=gnu -DTOOL=gnu",
"-I\$(WIND_BASE)/target/h"),
@@ -1763,8 +1705,9 @@ my %targets = (
},
"vxworks-ppc750" => {
inherit_from => [ "BASE_unix" ],
cc => "ccppc",
cflags => "-ansi -nostdinc -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall \$(DEBUG_FLAG)",
CC => "ccppc",
CFLAGS => "-ansi -fvolatile -Wall \$(DEBUG_FLAG)",
cflags => "-nostdinc -fno-builtin -fno-for-scope -fsigned-char -msoft-float -mlongcall",
cppflags => combine("-DPPC750 -D_REENTRANT -DCPU=PPC604",
"-I\$(WIND_BASE)/target/h"),
sys_id => "VXWORKS",
@@ -1772,8 +1715,9 @@ my %targets = (
},
"vxworks-ppc750-debug" => {
inherit_from => [ "BASE_unix" ],
cc => "ccppc",
cflags => "-ansi -nostdinc -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -g",
CC => "ccppc",
CFLAGS => "-ansi -fvolatile -Wall -g",
cflags => "-nostdinc -fno-builtin -fno-for-scope -fsigned-char -msoft-float -mlongcall",
cppflags => combine("-DPPC750 -D_REENTRANT -DCPU=PPC604",
"-DPEDANTIC -DDEBUG",
"-I\$(WIND_BASE)/target/h"),
@@ -1782,7 +1726,7 @@ my %targets = (
},
"vxworks-ppc860" => {
inherit_from => [ "BASE_unix" ],
cc => "ccppc",
CC => "ccppc",
cflags => "-nostdinc -msoft-float",
cppflags => combine("-DCPU=PPC860 -DNO_STRINGS_H",
"-I\$(WIND_BASE)/target/h"),
@@ -1791,7 +1735,7 @@ my %targets = (
},
"vxworks-simlinux" => {
inherit_from => [ "BASE_unix" ],
cc => "ccpentium",
CC => "ccpentium",
cflags => "-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -fno-builtin -fno-defer-pop",
cppflags => combine("-D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\"",
"-DL_ENDIAN -DCPU=SIMLINUX -DNO_STRINGS_H",
@@ -1805,8 +1749,9 @@ my %targets = (
},
"vxworks-mips" => {
inherit_from => [ "BASE_unix", asm("mips32_asm") ],
cc => "ccmips",
cflags => "-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -msoft-float -mno-branch-likely -fno-builtin -fno-defer-pop",
CC => "ccmips",
CFLAGS => "-O -G 0",
cflags => "-mrtp -mips2 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -msoft-float -mno-branch-likely -fno-builtin -fno-defer-pop",
cppflags => combine("-D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\"",
"-DCPU=MIPS32 -DNO_STRINGS_H",
"-DTOOL_FAMILY=gnu -DTOOL=gnu",
@@ -1825,7 +1770,7 @@ my %targets = (
#### uClinux
"uClinux-dist" => {
inherit_from => [ "BASE_unix" ],
cc => sub { env('CC') },
CC => sub { env('CC') },
cppflags => threads("-D_REENTRANT"),
ex_libs => add("\$(LDLIBS)"),
bn_ops => "BN_LLONG",
@@ -1838,7 +1783,7 @@ my %targets = (
},
"uClinux-dist64" => {
inherit_from => [ "BASE_unix" ],
cc => sub { env('CC') },
CC => sub { env('CC') },
cppflags => threads("-D_REENTRANT"),
ex_libs => add("\$(LDLIBS)"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
@@ -1858,9 +1803,9 @@ my %targets = (
"vms-generic" => {
inherit_from => [ "BASE_VMS" ],
template => 1,
cc => "CC/DECC",
cpp => '$(CC)/PREPROCESS_ONLY=SYS$OUTPUT:',
cflags =>
CC => "CC/DECC",
CPP => '$(CC)/PREPROCESS_ONLY=SYS$OUTPUT:',
CFLAGS =>
combine(picker(default => "/STANDARD=(ISOC94,RELAXED)/NOLIST/PREFIX=ALL",
debug => "/NOOPTIMIZE/DEBUG",
release => "/OPTIMIZE/NODEBUG"),
@@ -1868,7 +1813,7 @@ my %targets = (
@{vms_info()->{disable_warns}};
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
defines =>
lib_defines =>
add("OPENSSL_USE_NODELETE",
sub {
return vms_info()->{def_zlib}
@@ -1886,9 +1831,10 @@ my %targets = (
dso_scheme => "vms",
thread_scheme => "pthreads",
as => sub { vms_info()->{as} },
asflags => sub { vms_info()->{asflags} },
AS => sub { vms_info()->{AS} },
ASFLAGS => sub { vms_info()->{ASFLAGS} },
asoutflag => sub { vms_info()->{asoutflag} },
asflags => sub { vms_info()->{asflags} },
perlasm_scheme => sub { vms_info()->{perlasm_scheme} },
apps_aux_src => "vms_term_sock.c",