# targets; b) performance-critical 32-bit assembly modules implement
# even PA-RISC 2.0-specific code paths, which are chosen at run-time,
# thus adequate performance is provided even with PA-RISC 1.1 build.
- "hpux-parisc-gcc" => {
+ "hpux-common" => {
inherit_from => [ "BASE_unix" ],
+ template => 1,
+ defines => add("_XOPEN_SOURCE", "_XOPEN_SOURCE_EXTENDED",
+ "_HPUX_ALT_XOPEN_SOCKET_API"),
+ lib_cppflags => "-DB_ENDIAN",
+ thread_scheme => "pthreads",
+ dso_scheme => "dlfcn", # overridden in 32-bit PA-RISC builds
+ shared_target => "hpux-shared",
+ },
+ "hpux-parisc-gcc" => {
+ inherit_from => [ "hpux-common" ],
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",
+ lib_cppflags => add("-DBN_DIV2W"),
+ ex_libs => add("-ldld", threads("-pthread")),
+ bn_ops => "BN_LLONG RC4_CHAR",
dso_scheme => "dl",
- shared_target => "hpux-shared",
shared_cflag => "-fPIC",
shared_ldflag => "-shared",
shared_extension => ".sl.\$(SHLIB_VERSION_NUMBER)",
multilib => "/pa1.1",
},
"hpux64-parisc2-gcc" => {
- inherit_from => [ "BASE_unix", asm("parisc20_64_asm") ],
+ inherit_from => [ "hpux-common", asm("parisc20_64_asm") ],
CC => "gcc",
CFLAGS => combine(picker(debug => "-O0 -g",
release => "-O3")),
- cppflags => threads("-D_REENTRANT"),
- lib_cppflags => "-DB_ENDIAN",
- ex_libs => add("-ldl"),
+ cflags => add(threads("-pthread")),
+ ex_libs => add("-ldl", threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
- thread_scheme => "pthreads",
- dso_scheme => "dlfcn",
- shared_target => "hpux-shared",
shared_cflag => "-fpic",
shared_ldflag => "-shared",
shared_extension => ".sl.\$(SHLIB_VERSION_NUMBER)",
# More attempts at unified 10.X and 11.X targets for HP C compiler.
"hpux-parisc-cc" => {
- inherit_from => [ "BASE_unix" ],
+ inherit_from => [ "hpux-common" ],
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")),
+ lib_cppflags => add("-DBN_DIV2W -DMD32_XARRAY"),
+ ex_libs => add("-ldld", threads("-lpthread")),
bn_ops => "RC4_CHAR",
- thread_scheme => "pthreads",
dso_scheme => "dl",
- shared_target => "hpux-shared",
shared_cflag => "+Z",
shared_ldflag => "-b",
shared_extension => ".sl.\$(SHLIB_VERSION_NUMBER)",
multilib => "/pa1.1",
},
"hpux64-parisc2-cc" => {
- inherit_from => [ "BASE_unix", asm("parisc20_64_asm") ],
+ inherit_from => [ "hpux-common", asm("parisc20_64_asm") ],
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")),
+ lib_cppflags => add("-DMD32_XARRAY"),
+ 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",
shared_ldflag => "-b",
shared_extension => ".sl.\$(SHLIB_VERSION_NUMBER)",
# HP/UX IA-64 targets
"hpux-ia64-cc" => {
- inherit_from => [ "BASE_unix", asm("ia64_asm") ],
+ inherit_from => [ "hpux-common", asm("ia64_asm") ],
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")),
+ ex_libs => add("-ldl", threads("-lpthread")),
bn_ops => "SIXTY_FOUR_BIT",
- thread_scheme => "pthreads",
- dso_scheme => "dlfcn",
- shared_target => "hpux-shared",
shared_cflag => "+Z",
shared_ldflag => "-b",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
multilib => "/hpux32",
},
"hpux64-ia64-cc" => {
- inherit_from => [ "BASE_unix", asm("ia64_asm") ],
+ inherit_from => [ "hpux-common", asm("ia64_asm") ],
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",
- dso_scheme => "dlfcn",
- shared_target => "hpux-shared",
shared_cflag => "+Z",
shared_ldflag => "-b",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
},
# GCC builds...
"hpux-ia64-gcc" => {
- inherit_from => [ "BASE_unix", asm("ia64_asm") ],
+ inherit_from => [ "hpux-common", asm("ia64_asm") ],
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",
- dso_scheme => "dlfcn",
- shared_target => "hpux-shared",
shared_cflag => "-fpic",
shared_ldflag => "-shared",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
multilib => "/hpux32",
},
"hpux64-ia64-gcc" => {
- inherit_from => [ "BASE_unix", asm("ia64_asm") ],
+ inherit_from => [ "hpux-common", asm("ia64_asm") ],
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",
- dso_scheme => "dlfcn",
- shared_target => "hpux-shared",
shared_cflag => "-fpic",
shared_ldflag => "-shared",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
shared_cflag => "-fPIC",
shared_ldflag => "-Wl,-znodelete",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
+ enable => [ "afalgeng" ],
},
"linux-generic64" => {
inherit_from => [ "linux-generic32" ],
inherit_from => [ "linux-x86" ],
CC => "clang",
CXX => "clang++",
- CFLAGS => add("-Wextra"),
},
"linux-x86_64" => {
inherit_from => [ "linux-generic64", asm("x86_64_asm") ],
inherit_from => [ "linux-x86_64" ],
CC => "clang",
CXX => "clang++",
- CFLAGS => add("-Wextra"),
},
"linux-x32" => {
inherit_from => [ "linux-generic32", asm("x86_64_asm") ],
thread_scheme => "(unknown)",
},
-# QNX
- "qnx4" => {
- inherit_from => [ "BASE_unix" ],
- CC => "cc",
- CFLAGS => "",
- lib_cppflags => "-DL_ENDIAN -DTERMIO",
- thread_scheme => "(unknown)",
- },
- "QNX6" => {
- inherit_from => [ "BASE_unix" ],
- CC => "gcc",
- ex_libs => add("-lsocket"),
- dso_scheme => "dlfcn",
- shared_target => "bsd-gcc-shared",
- shared_cflag => "-fPIC",
- shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
- },
- "QNX6-i386" => {
- inherit_from => [ "BASE_unix", asm("x86_elf_asm") ],
- CC => "gcc",
- CFLAGS => "-O2 -Wall",
- lib_cppflags => "-DL_ENDIAN",
- ex_libs => add("-lsocket"),
- dso_scheme => "dlfcn",
- shared_target => "bsd-gcc-shared",
- shared_cflag => "-fPIC",
- shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
- },
-
#### SCO/Caldera targets.
#
# Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
shared_target => "aix-shared",
shared_ldflag => "-shared -static-libgcc -Wl,-G",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
- arflags => "-X32 r",
+ AR => add("-X32"),
+ RANLIB => add("-X32"),
},
"aix64-gcc" => {
inherit_from => [ "BASE_unix", asm("ppc64_asm") ],
shared_target => "aix-shared",
shared_ldflag => "-shared -static-libgcc -Wl,-G",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
- arflags => "-X64 r",
+ AR => add("-X64"),
+ RANLIB => add("-X64"),
},
"aix-cc" => {
inherit_from => [ "BASE_unix", asm("ppc32_asm") ],
perlasm_scheme => "aix32",
dso_scheme => "dlfcn",
shared_target => "aix-shared",
+ shared_cflag => "-qpic",
shared_ldflag => "-G",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
- arflags => "-X32 r",
+ AR => add("-X32"),
+ RANLIB => add("-X32"),
},
"aix64-cc" => {
inherit_from => [ "BASE_unix", asm("ppc64_asm") ],
perlasm_scheme => "aix64",
dso_scheme => "dlfcn",
shared_target => "aix-shared",
+ shared_cflag => "-qpic",
shared_ldflag => "-G",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
- arflags => "-X64 r",
+ AR => add("-X64"),
+ RANLIB => add("-X64"),
},
# SIEMENS BS2000/OSD: an EBCDIC-based mainframe
sub {
($disabled{shared} ? "" : "/MD");
})),
- defines => add(picker(debug => [ "DEBUG", "_DEBUG" ])),
+ defines => add(picker(default => [], # works as type cast
+ 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