$opts{$config{build_type}} || ())->(); }
}
+sub threads {
+ my @flags = @_;
+ return sub { add($disabled{threads} ? () : @flags)->(); }
+}
+
+sub combine {
+ my @stuff = @_;
+ return sub { add(@stuff)->(); }
+}
+
%targets = (
#### Basic configs that should work on any 32-bit box
cc => "gcc",
cflags => picker(debug => "-O0 -g",
release => "-O3"),
- thread_cflag => "(unknown)",
+ thread_scheme => "(unknown)",
bn_ops => "BN_LLONG",
},
"cc" => {
cc => "cc",
cflags => "-O",
- thread_cflag => "(unknown)",
+ thread_scheme => "(unknown)",
},
#### VOS Configurations
cflags => picker(default => "-Wall -DOPENSSL_SYS_VOS -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN",
debug => "-O0 -g -DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG",
release => "-O3"),
- thread_cflag => "(unknown)",
+ thread_scheme => "(unknown)",
sys_id => "VOS",
lflags => "-Wl,-map",
bn_ops => "BN_LLONG",
cflags => "-DFILIO_H",
ex_libs => add("-lresolv -lsocket -lnsl -ldl"),
dso_scheme => "dlfcn",
+ thread_scheme => "pthreads",
shared_target => "solaris-shared",
shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
},
cc => "gcc",
cflags => add_before(picker(default => "-Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM",
debug => "-O0 -g",
- release => "-O3 -fomit-frame-pointer")),
- thread_cflag => "-pthread",
+ release => "-O3 -fomit-frame-pointer"),
+ threads("-pthread")),
bn_ops => "BN_LLONG",
shared_cflag => "-fPIC",
shared_ldflag => "-shared",
cc => "gcc",
cflags => add_before(picker(default => "-m64 -Wall -DL_ENDIAN",
debug => "-O0 -g",
- release => "-O3")),
- thread_cflag => "-pthread",
+ release => "-O3"),
+ threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "elf",
shared_cflag => "-fPIC",
cc => "cc",
cflags => add_before(picker(default => "-xarch=generic -xstrconst -Xa -DL_ENDIAN",
debug => "-g",
- release => "-xO5 -xregs=frameptr -xdepend -xbuiltin")),
- thread_cflag => "-D_REENTRANT",
- lflags => add("-mt"),
- ex_libs => add("-lpthread"),
+ release => "-xO5 -xregs=frameptr -xdepend -xbuiltin"),
+ threads("-D_REENTRANT")),
+ lflags => add(threads("-mt")),
+ ex_libs => add(threads("-lpthread")),
bn_ops => "BN_LLONG RC4_CHAR",
shared_cflag => "-KPIC",
shared_ldflag => "-G -dy -z text",
cc => "cc",
cflags => add_before(picker(default => "-xarch=generic64 -xstrconst -Xa -DL_ENDIAN",
debug => "-g",
- release => "-xO5 -xdepend -xbuiltin")),
- thread_cflag => "-D_REENTRANT",
- lflags => add("-mt"),
- ex_libs => add("-lpthread"),
+ release => "-xO5 -xdepend -xbuiltin"),
+ threads("-D_REENTRANT")),
+ thread_scheme => "pthreads",
+ lflags => add(threads("-mt")),
+ ex_libs => add(threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "elf",
shared_cflag => "-KPIC",
cc => "gcc",
cflags => add_before(picker(default => "-Wall -DB_ENDIAN -DBN_DIV2W",
debug => "-O0 -g",
- release => "-O3")),
- thread_cflag => "-pthread",
+ release => "-O3"),
+ threads("-pthread")),
bn_ops => "BN_LLONG RC4_CHAR",
shared_cflag => "-fPIC",
shared_ldflag => "-shared",
cc => "cc",
cflags => add_before(picker(default => "-xstrconst -Xa -DB_ENDIAN -DBN_DIV2W",
debug => "-g -DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG",
- release => "-xO5 -xdepend")),
- thread_cflag => "-D_REENTRANT",
- lflags => add("-mt"),
- ex_libs => add("-lpthread"),
+ release => "-xO5 -xdepend"),
+ threads("-D_REENTRANT")),
+ lflags => add(threads("-mt")),
+ ex_libs => add(threads("-lpthread")),
bn_ops => "BN_LLONG RC4_CHAR",
shared_cflag => "-KPIC",
shared_ldflag => "-G -dy -z text",
cflags => picker(default => "-DB_ENDIAN",
debug => "-g -O0",
release => "-O3"),
- thread_cflag => "(unknown)",
bn_ops => "BN_LLONG RC4_CHAR",
+ thread_scheme => "(unknown)",
perlasm_scheme => "o32",
dso_scheme => "dlfcn",
shared_target => "irix-shared",
cflags => picker(default => "-use_readonly_const -DB_ENDIAN",
debug => "-g -O0",
release => "-O2"),
- thread_cflag => "(unknown)",
bn_ops => "BN_LLONG RC4_CHAR",
+ thread_scheme => "(unknown)",
perlasm_scheme => "o32",
dso_scheme => "dlfcn",
shared_target => "irix-shared",
"irix-mips3-gcc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "gcc",
- cflags => picker(default => "-mabi=n32 -DB_ENDIAN -DBN_DIV3W",
- debug => "-g -O0",
- release => "-O3"),
- thread_cflag => "-D_SGI_MP_SOURCE -pthread",
+ cflags => combine(picker(default => "-mabi=n32 -DB_ENDIAN -DBN_DIV3W",
+ debug => "-g -O0",
+ release => "-O3"),
+ threads("-D_SGI_MP_SOURCE -pthread")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT",
+ thread_scheme => "pthreads",
perlasm_scheme => "n32",
dso_scheme => "dlfcn",
shared_target => "irix-shared",
"irix-mips3-cc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "cc",
- cflags => picker(default => "-n32 -mips3 -use_readonly_const -G0 -rdata_shared -DB_ENDIAN -DBN_DIV3W",
- debug => "-g -O0",
- release => "-O2"),
- thread_cflag => "-D_SGI_MP_SOURCE",
- ex_libs => add("-lpthread"),
+ cflags => combine(picker(default => "-n32 -mips3 -use_readonly_const -G0 -rdata_shared -DB_ENDIAN -DBN_DIV3W",
+ debug => "-g -O0",
+ release => "-O2"),
+ threads("-D_SGI_MP_SOURCE")),
+ ex_libs => add(threads("-lpthread")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT",
+ thread_scheme => "pthreads",
perlasm_scheme => "n32",
dso_scheme => "dlfcn",
shared_target => "irix-shared",
"irix64-mips4-gcc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "gcc",
- cflags => picker(default => "-mabi=64 -mips4 -DB_ENDIAN -DBN_DIV3W",
- debug => "-g -O0",
- release => "-O3"),
- thread_cflag => "-D_SGI_MP_SOURCE",
+ cflags => combine(picker(default => "-mabi=64 -mips4 -DB_ENDIAN -DBN_DIV3W",
+ debug => "-g -O0",
+ release => "-O3"),
+ threads("-D_SGI_MP_SOURCE")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthreads",
perlasm_scheme => "64",
dso_scheme => "dlfcn",
shared_target => "irix-shared",
"irix64-mips4-cc" => {
inherit_from => [ "BASE_unix", asm("mips64_asm") ],
cc => "cc",
- cflags => picker(default => "-64 -mips4 -use_readonly_const -G0 -rdata_shared -DB_ENDIAN -DBN_DIV3W",
- debug => "-g -O0",
- release => "-O2"),
- thread_cflag => "-D_SGI_MP_SOURCE",
- ex_libs => add("-lpthread"),
+ cflags => combine(picker(default => "-64 -mips4 -use_readonly_const -G0 -rdata_shared -DB_ENDIAN -DBN_DIV3W",
+ debug => "-g -O0",
+ release => "-O2"),
+ threads("-D_SGI_MP_SOURCE")),
+ ex_libs => add(threads("-lpthread")),
bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthreads",
perlasm_scheme => "64",
dso_scheme => "dlfcn",
shared_target => "irix-shared",
"hpux-parisc-gcc" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
- cflags => picker(default => "-DB_ENDIAN -DBN_DIV2W",
- debug => "-O0 -g",
- release => "-O3"),
- thread_cflag => "-pthread",
+ cflags => combine(picker(default => "-DB_ENDIAN -DBN_DIV2W",
+ debug => "-O0 -g",
+ release => "-O3"),
+ threads("-pthread")),
ex_libs => add("-Wl,+s -ldld"),
bn_ops => "BN_LLONG",
+ thread_scheme => "pthreads",
dso_scheme => "dl",
shared_target => "hpux-shared",
shared_cflag => "-fPIC",
"hpux64-parisc2-gcc" => {
inherit_from => [ "BASE_unix", asm("parisc20_64_asm") ],
cc => "gcc",
- cflags => picker(default => "-DB_ENDIAN",
- debug => "-O0 -g",
- release => "-O3"),
- thread_cflag => "-D_REENTRANT",
+ cflags => combine(picker(default => "-DB_ENDIAN",
+ debug => "-O0 -g",
+ release => "-O3"),
+ threads("-D_REENTRANT")),
ex_libs => add("-ldl"),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "hpux-shared",
shared_cflag => "-fpic",
"hpux-parisc-cc" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
- cflags => picker(default => "+Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY",
- debug => "+O0 +d -g",
- release => "+O3"),
- thread_cflag => "-D_REENTRANT",
- ex_libs => add("-Wl,+s -ldld -lpthread"),
+ cflags => combine(picker(default => "+Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY",
+ debug => "+O0 +d -g",
+ release => "+O3"),
+ threads("-D_REENTRANT")),
+ ex_libs => add("-Wl,+s -ldld",threads("-lpthread")),
bn_ops => "RC4_CHAR",
+ thread_scheme => "pthreads",
dso_scheme => "dl",
shared_target => "hpux-shared",
shared_cflag => "+Z",
"hpux64-parisc2-cc" => {
inherit_from => [ "BASE_unix", asm("parisc20_64_asm") ],
cc => "cc",
- cflags => picker(default => "+DD64 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY",
- debug => "+O0 +d -g",
- release => "+O3"),
- thread_cflag => "-D_REENTRANT",
- ex_libs => add("-ldl -lpthread"),
+ cflags => combine(picker(default => "+DD64 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY",
+ debug => "+O0 +d -g",
+ release => "+O3"),
+ threads("-D_REENTRANT")),
+ ex_libs => add("-ldl",threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "hpux-shared",
shared_cflag => "+Z",
"hpux-ia64-cc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "cc",
- cflags => picker(default => "-Ae +DD32 +Olit=all -z -DB_ENDIAN",
- debug => "+O0 +d -g",
- release => "+O2"),
- thread_cflag => "-D_REENTRANT",
- ex_libs => add("-ldl -lpthread"),
+ cflags => combine(picker(default => "-Ae +DD32 +Olit=all -z -DB_ENDIAN",
+ debug => "+O0 +d -g",
+ release => "+O2"),
+ threads("-D_REENTRANT")),
+ ex_libs => add("-ldl",threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "hpux-shared",
shared_cflag => "+Z",
"hpux64-ia64-cc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "cc",
- cflags => picker(default => "-Ae +DD64 +Olit=all -z -DB_ENDIAN",
- debug => "+O0 +d -g",
- release => "+O3"),
- thread_cflag => "-D_REENTRANT",
- ex_libs => add("-ldl -lpthread"),
+ cflags => combine(picker(default => "-Ae +DD64 +Olit=all -z -DB_ENDIAN",
+ debug => "+O0 +d -g",
+ release => "+O3"),
+ threads("-D_REENTRANT")),
+ ex_libs => add("-ldl", threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "hpux-shared",
shared_cflag => "+Z",
"hpux-ia64-gcc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "gcc",
- cflags => picker(default => "-DB_ENDIAN",
- debug => "-O0 -g",
- release => "-O3"),
- thread_cflag => "-pthread",
+ cflags => combine(picker(default => "-DB_ENDIAN",
+ debug => "-O0 -g",
+ release => "-O3"),
+ threads("-pthread")),
ex_libs => add("-ldl"),
bn_ops => "SIXTY_FOUR_BIT",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "hpux-shared",
shared_cflag => "-fpic",
cc => "gcc",
cflags => picker(default => "-mlp64 -DB_ENDIAN",
debug => "-O0 -g",
- release => "-O3"),
- thread_cflag => "-pthread",
+ release => "-O3",
+ threads("-pthread")),
ex_libs => add("-ldl"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "hpux-shared",
shared_cflag => "-fpic",
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cflags => "-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB",
- thread_cflag => "(unknown)",
sys_id => "MPE",
ex_libs => add("-L/SYSLOG/PUB -lsyslog -lsocket -lcurses"),
+ thread_scheme => "(unknown)",
bn_ops => "BN_LLONG",
},
inherit_from => [ "BASE_unix", asm("alpha_asm") ],
cc => "gcc",
cflags => "-O3",
- thread_cflag => "(unknown)",
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "(unknown)",
dso_scheme => "dlfcn",
shared_target => "alpha-osf1-shared",
shared_extension => ".so",
inherit_from => [ "BASE_unix", asm("alpha_asm") ],
cc => "cc",
cflags => "-std1 -tune host -O4 -readonly_strings",
- thread_cflag => "(unknown)",
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "(unknown)",
dso_scheme => "dlfcn",
shared_target => "alpha-osf1-shared",
shared_extension => ".so",
"tru64-alpha-cc" => {
inherit_from => [ "BASE_unix", asm("alpha_asm") ],
cc => "cc",
- cflags => "-std1 -tune host -fast -readonly_strings",
- thread_cflag => "-pthread",
+ cflags => combine("-std1 -tune host -fast -readonly_strings",
+ threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "alpha-osf1-shared",
shared_ldflag => "-msym",
"linux-generic32" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
- cflags => picker(default => "-Wall",
- debug => "-O0 -g -DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG",
- release => "-O3"),
- thread_cflag => "-pthread",
+ cflags => combine(picker(default => "-Wall",
+ debug => "-O0 -g -DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG",
+ release => "-O3"),
+ threads("-pthread")),
ex_libs => add("-ldl"),
bn_ops => "BN_LLONG RC4_CHAR",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "linux-shared",
shared_cflag => "-fPIC",
cflags => add(picker(default => "-DL_ENDIAN -Wall",
debug => "-O0 -g",
release => "-O3 -fomit-frame-pointer")),
- thread_cflag => "(unknown)",
bn_ops => "BN_LLONG",
+ thread_scheme => "(unknown)",
perlasm_scheme => "a.out",
},
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 -DOPENSSL_SMALL_FOOTPRINT",
- thread_cflag => "-D_REENTRANT",
+ cflags => combine("--linux -ea=.s -eo=.o -mv6400+ -o2 -ox -ms -pden -DOPENSSL_SMALL_FOOTPRINT",
+ threads("-D_REENTRANT")),
bn_ops => "BN_LLONG",
cpuid_asm_src => "c64xpluscpuid.s",
bn_asm_src => "asm/bn-c64xplus.asm c64xplus-gf2m.s",
modes_asm_src => "ghash-c64xplus.s",
chacha_asm_src => "chacha-c64xplus.s",
poly1305_asm_src => "poly1305-c64xplus.s",
+ thread_scheme => "pthreads",
perlasm_scheme => "void",
dso_scheme => "dlfcn",
shared_target => "linux-shared",
#### *BSD
"BSD-generic32" => {
- # As for thread_cflag. Idea is to maintain "collective" set of
+ # As for thread cflag. Idea is to maintain "collective" set of
# flags, which would cover all BSD flavors. -pthread applies
# to them all, but is treated differently. OpenBSD expands is
# as -D_POSIX_THREAD -lc_r, which is sufficient. FreeBSD 4.x
# expands it as -lc_r, which seems to be sufficient?
inherit_from => [ "BASE_unix" ],
cc => "cc",
- cflags => picker(default => "-Wall",
- debug => "-O0 -g",
- release => "-O3"),
- thread_cflag => "-pthread -D_THREAD_SAFE -D_REENTRANT",
+ cflags => combine(picker(default => "-Wall",
+ debug => "-O0 -g",
+ release => "-O3"),
+ threads("-pthread -D_THREAD_SAFE -D_REENTRANT")),
bn_ops => "BN_LLONG",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "bsd-gcc-shared",
shared_cflag => "-fPIC",
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "gcc",
cflags => "-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -Wall",
- thread_cflag => "(unknown)",
ex_libs => add("-ldl"),
bn_ops => "BN_LLONG",
+ thread_scheme => "(unknown)",
dso_scheme => "dlfcn",
shared_target => "bsd-gcc-shared",
shared_cflag => "-fPIC",
cc => "cc",
cflags => "-O -Wall",
unistd => "<libc.h>",
- thread_cflag => "(unknown)",
bn_ops => "BN_LLONG",
+ thread_scheme => "(unknown)",
},
"nextstep3.3" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-O3 -Wall",
unistd => "<libc.h>",
- thread_cflag => "(unknown)",
bn_ops => "BN_LLONG",
+ thread_scheme => "(unknown)",
},
# QNX
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-DL_ENDIAN -DTERMIO",
- thread_cflag => "(unknown)",
+ thread_scheme => "(unknown)",
},
"QNX6" => {
inherit_from => [ "BASE_unix" ],
"unixware-2.0" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
- cflags => "-DFILIO_H -DNO_STRINGS_H",
- thread_cflag => "-Kthread",
+ cflags => combine("-DFILIO_H -DNO_STRINGS_H",
+ threads("-Kthread")),
ex_libs => add("-lsocket -lnsl -lresolv -lx"),
+ thread_scheme => "uithreads",
},
"unixware-2.1" => {
inherit_from => [ "BASE_unix" ],
cc => "cc",
- cflags => "-O -DFILIO_H",
- thread_cflag => "-Kthread",
+ cflags => combine("-O -DFILIO_H",
+ threads("-Kthread")),
ex_libs => add("-lsocket -lnsl -lresolv -lx"),
+ thread_scheme => "uithreads",
},
"unixware-7" => {
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "cc",
- cflags => "-O -DFILIO_H -Kalloca",
- thread_cflag => "-Kthread",
+ cflags => combine("-O -DFILIO_H -Kalloca",
+ threads("-Kthread")),
ex_libs => add("-lsocket -lnsl"),
+ thread_scheme => "uithreads",
bn_ops => "BN_LLONG",
perlasm_scheme => "elf-1",
dso_scheme => "dlfcn",
"unixware-7-gcc" => {
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "gcc",
- cflags => "-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -Wall",
- thread_cflag => "-D_REENTRANT",
+ cflags => combine("-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -Wall",
+ threads("-D_REENTRANT")),
ex_libs => add("-lsocket -lnsl"),
bn_ops => "BN_LLONG",
+ thread_scheme => "pthreads",
perlasm_scheme => "elf-1",
dso_scheme => "dlfcn",
shared_target => "gnu-shared",
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "cc",
cflags => "-belf",
- thread_cflag => "(unknown)",
ex_libs => add("-lsocket -lnsl"),
+ thread_scheme => "(unknown)",
perlasm_scheme => "elf-1",
dso_scheme => "dlfcn",
shared_target => "svr3-shared",
inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
cc => "gcc",
cflags => "-O3 -fomit-frame-pointer",
- thread_cflag => "(unknown)",
ex_libs => add("-lsocket -lnsl"),
bn_ops => "BN_LLONG",
+ thread_scheme => "(unknown)",
perlasm_scheme => "elf-1",
dso_scheme => "dlfcn",
shared_target => "svr3-shared",
"aix-gcc" => {
inherit_from => [ "BASE_unix", asm("ppc32_asm") ],
cc => "gcc",
- cflags => picker(default => "-DB_ENDIAN",
- debug => "-O0 -g",
- release => "-O"),
- thread_cflag => "-pthread",
+ cflags => combine(picker(default => "-DB_ENDIAN",
+ debug => "-O0 -g",
+ release => "-O"),
+ threads("-pthread")),
sys_id => "AIX",
bn_ops => "BN_LLONG RC4_CHAR",
+ thread_scheme => "pthreads",
perlasm_scheme => "aix32",
dso_scheme => "dlfcn",
shared_target => "aix-shared",
"aix64-gcc" => {
inherit_from => [ "BASE_unix", asm("ppc64_asm") ],
cc => "gcc",
- cflags => picker(default => "-maix64 -DB_ENDIAN",
- debug => "-O0 -g",
- release => "-O"),
- thread_cflag => "-pthread",
+ cflags => combine(picker(default => "-maix64 -DB_ENDIAN",
+ debug => "-O0 -g",
+ release => "-O"),
+ threads("-pthread")),
sys_id => "AIX",
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
+ thread_scheme => "pthreads",
perlasm_scheme => "aix64",
dso_scheme => "dlfcn",
shared_target => "aix-shared",
"aix-cc" => {
inherit_from => [ "BASE_unix", asm("ppc32_asm") ],
cc => "cc",
- cflags => picker(default => "-q32 -DB_ENDIAN -qmaxmem=16384 -qro -qroconst",
- debug => "-O0 -g",
- release => "-O"),
- thread_cflag => "-qthreaded -D_THREAD_SAFE",
+ cflags => combine(picker(default => "-q32 -DB_ENDIAN -qmaxmem=16384 -qro -qroconst",
+ debug => "-O0 -g",
+ release => "-O"),
+ threads("-qthreaded -D_THREAD_SAFE")),
sys_id => "AIX",
bn_ops => "BN_LLONG RC4_CHAR",
+ thread_scheme => "pthreads",
perlasm_scheme => "aix32",
dso_scheme => "dlfcn",
shared_target => "aix-shared",
"aix64-cc" => {
inherit_from => [ "BASE_unix", asm("ppc64_asm") ],
cc => "cc",
- cflags => picker(default => "-q64 -DB_ENDIAN -qmaxmem=16384 -qro -qroconst",
- debug => "-O0 -g",
- release => "-O"),
- thread_cflag => "-qthreaded -D_THREAD_SAFE",
+ cflags => combine(picker(default => "-q64 -DB_ENDIAN -qmaxmem=16384 -qro -qroconst",
+ debug => "-O0 -g",
+ release => "-O"),
+ threads("-qthreaded -D_THREAD_SAFE")),
sys_id => "AIX",
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
+ thread_scheme => "pthreads",
perlasm_scheme => "aix64",
dso_scheme => "dlfcn",
shared_target => "aix-shared",
inherit_from => [ "BASE_unix" ],
cc => "c89",
cflags => "-O -XLLML -XLLMK -XL -DB_ENDIAN -DCHARSET_EBCDIC",
- thread_cflag => "(unknown)",
ex_libs => add("-lsocket -lnsl"),
bn_ops => "THIRTY_TWO_BIT RC4_CHAR",
+ thread_scheme => "(unknown)",
},
# OS/390 Unix an EBCDIC-based Unix system on IBM mainframe
inherit_from => [ "BASE_unix" ],
cc => "c89.sh",
cflags => "-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE",
- thread_cflag => "(unknown)",
bn_ops => "THIRTY_TWO_BIT RC4_CHAR",
+ thread_scheme => "(unknown)",
},
#### Visual C targets
inherit_from => [ "BASE_unix", asm("x86_asm"),
sub { $disabled{shared} ? () : "x86_uplink" } ],
cc => "gcc",
- cflags => picker(default => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m32 -Wall",
- debug => "-g -O0",
- release => "-O3 -fomit-frame-pointer"),
- thread_cflag => "-D_MT",
+ cflags => combine(picker(default => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m32 -Wall",
+ debug => "-g -O0",
+ release => "-O3 -fomit-frame-pointer"),
+ threads("-D_MT")),
sys_id => "MINGW32",
ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
bn_ops => "BN_LLONG EXPORT_VAR_AS_FN",
+ thread_scheme => "winthreads",
perlasm_scheme => "coff",
dso_scheme => "win32",
shared_target => "mingw-shared",
# Applink is never engaged and can as well be omitted.
inherit_from => [ "BASE_unix", asm("x86_64_asm") ],
cc => "gcc",
- cflags => picker(default => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m64 -Wall",
- debug => "-g -O0",
- release => "-O3"),
- thread_cflag => "-D_MT",
+ cflags => combine(picker(default => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m64 -Wall",
+ debug => "-g -O0",
+ release => "-O3"),
+ threads("-D_MT")),
sys_id => "MINGW64",
ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN",
+ thread_scheme => "winthreads",
perlasm_scheme => "mingw64",
dso_scheme => "win32",
shared_target => "mingw-shared",
inherit_from => [ "BASE_unix" ],
cc => "cc",
cflags => "-std1 -O -Olimit 2500 -DL_ENDIAN",
- thread_cflag => "(unknown)",
+ thread_scheme => "(unknown)",
},
"ultrix-gcc" => {
inherit_from => [ "BASE_unix" ],
cc => "gcc",
cflags => "-O3 -DL_ENDIAN",
- thread_cflag => "(unknown)",
bn_ops => "BN_LLONG",
+ thread_scheme => "(unknown)",
},
# K&R C is no longer supported; you need gcc on old Ultrix installations
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
inherit_from => [ "BASE_unix" ],
template => 1,
cc => "cc",
- cflags => picker(default => "",
- debug => "-g -O0",
- release => "-O3"),
- thread_cflag => "-D_REENTRANT",
+ cflags => combine(picker(default => "",
+ debug => "-g -O0",
+ release => "-O3"),
+ threads("-D_REENTRANT")),
sys_id => "MACOSX",
plib_lflags => "-Wl,-search_paths_first",
bn_ops => "BN_LLONG RC4_CHAR",
+ thread_scheme => "pthreads",
perlasm_scheme => "osx32",
dso_scheme => "dlfcn",
shared_target => "darwin-shared",
inherit_from => [ "BASE_unix" ],
inherit_from => [ asm("x86_elf_asm") ],
cc => "gcc",
- cflags => "-DL_ENDIAN -O3 -fomit-frame-pointer -Wall",
- thread_cflag => "-pthread",
+ cflags => combine("-DL_ENDIAN -O3 -fomit-frame-pointer -Wall",
+ threads("-pthread")),
ex_libs => add("-ldl"),
bn_ops => "BN_LLONG",
+ thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "linux-shared",
shared_cflag => "-fPIC",
"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/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip",
- thread_cflag => "-D_REENTRANT",
+ cflags => combine("-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip",
+ threads("-D_REENTRANT")),
sys_id => "VXWORKS",
ex_libs => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon"),
+ thread_scheme => "pthreads",
perlasm_scheme => "o32",
ranlib => "ranlibmips",
},
"uClinux-dist" => {
inherit_from => [ "BASE_unix" ],
cc => "$ENV{'CC'}",
- cflags => "\$(CFLAGS)",
- thread_cflag => "-D_REENTRANT",
+ cflags => combine("\$(CFLAGS)",
+ threads("-D_REENTRANT")),
plib_lflags => "\$(LDFLAGS)",
ex_libs => add("\$(LDLIBS)"),
bn_ops => "BN_LLONG",
+ thread_scheme => "pthreads",
dso_scheme => "$ENV{'LIBSSL_dlfcn'}",
shared_target => "linux-shared",
shared_cflag => "-fPIC",
"uClinux-dist64" => {
inherit_from => [ "BASE_unix" ],
cc => "$ENV{'CC'}",
- cflags => "\$(CFLAGS)",
- thread_cflag => "-D_REENTRANT",
+ cflags => combine("\$(CFLAGS)",
+ threads("-D_REENTRANT")),
plib_lflags => "\$(LDFLAGS)",
ex_libs => add("\$(LDLIBS)"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthreads",
dso_scheme => "$ENV{'LIBSSL_dlfcn'}",
shared_target => "linux-shared",
shared_cflag => "-fPIC",
debug => "/DEBUG/TRACEBACK",
release => "/NODEBUG/NOTRACEBACK"),
shared_target => "vms-shared",
+ thread_scheme => "pthreads",
apps_aux_src => "vms_decc_init.c",
},