$vc_win64a_info = { AS => "nasm",
ASFLAGS => "-g",
asflags => "-Ox -f win64 -DNEAR",
- asoutflag => "-o " };
+ asoutflag => "-o ",
+ perlasm_scheme => "nasm" };
} elsif ($disabled{asm}) {
# assembler is still used to compile uplink shim
$vc_win64a_info = { AS => "ml64",
ASFLAGS => "/nologo /Zi",
asflags => "/c /Cp /Cx",
- asoutflag => "/Fo" };
+ asoutflag => "/Fo",
+ perlasm_scheme => "masm" };
} else {
$die->("NASM not found - make sure it's installed and available on %PATH%\n");
$vc_win64a_info = { AS => "{unknown}",
ASFLAGS => "",
asflags => "",
- asoutflag => "" };
+ asoutflag => "",
+ perlasm_scheme => "auto" };
}
}
return $vc_win64a_info;
},
"linux32-riscv32" => {
- inherit_from => [ "linux-generic32"],
+ inherit_from => [ "linux-latomic" ],
perlasm_scheme => "linux32",
asm_arch => 'riscv32',
},
- # loongarch64 below refers to contemporary LOONGARCH Architecture
+ # loongarch64 below refers to contemporary LoongArch Architecture
# specifications,
"linux64-loongarch64" => {
inherit_from => [ "linux-generic64"],
perlasm_scheme => "linux64",
asm_arch => 'loongarch64',
+ lib_cppflags => add("-DL_ENDIAN"),
},
#### IA-32 targets...
asm_arch => 'x86',
perlasm_scheme => "elf",
},
+ "linux-x86-latomic" => {
+ inherit_from => [ "linux-x86" ],
+ ex_libs => add(threads("-latomic")),
+ },
"linux-x86-clang" => {
inherit_from => [ "linux-x86" ],
CC => "clang",
AR => add("-X32"),
RANLIB => add("-X32"),
},
+ # shared_target of "aix-solib" builds shared libraries packaged
+ # without archives. This improves the behavior of inter-library
+ # references (libssl depending on libcrypto) when building with
+ # shlib_variant.
+ # You'll get: libxxx.so (import library, used when linking applications)
+ # libxxx.so.ver (shared object)
+ # libxxx.a (static library archive)
+ # and for runtime, you only need libxxx.so.ver. libxxx.so and libxxx.a
+ # can be installed along with include files to make an SDK
+ "aix-cc-solib" => {
+ inherit_from => [ "aix-cc" ],
+ shared_target => "aix-solib",
+ },
"aix64-cc" => {
inherit_from => [ "aix-common" ],
CC => "cc",
AR => add("-X64"),
RANLIB => add("-X64"),
},
+ "aix64-cc-solib" => {
+ inherit_from => [ "aix64-cc" ],
+ shared_target => "aix-solib",
+ },
# SIEMENS BS2000/OSD: an EBCDIC-based mainframe
"BS2000-OSD" => {
sys_id => "WIN64A",
uplink_arch => 'x86_64',
asm_arch => 'x86_64',
- perlasm_scheme => "auto",
+ perlasm_scheme => sub { vc_win64a_info()->{perlasm_scheme} },
multilib => "-x64",
},
"VC-WIN32" => {
CFLAGS => picker(default => "-Wall",
debug => "-g -O0",
release => "-O3"),
+ ex_libs => add("-lcrypt32"),
lib_cppflags => "-DTERMIOS -DL_ENDIAN",
sys_id => "CYGWIN",
thread_scheme => "pthread",
},
##### GNU Hurd
- "hurd-x86" => {
+ "hurd-generic32" => {
inherit_from => [ "BASE_unix" ],
CC => "gcc",
- CFLAGS => "-O3 -fomit-frame-pointer -Wall",
+ CXX => "g++",
+ CFLAGS => picker(default => "-Wall",
+ debug => "-O0 -g",
+ release => "-O3"),
+ CXXFLAGS => picker(default => "-Wall",
+ debug => "-O0 -g",
+ release => "-O3"),
cflags => threads("-pthread"),
- lib_cppflags => "-DL_ENDIAN",
+ cxxflags => combine("-std=c++11", threads("-pthread")),
ex_libs => add("-ldl", threads("-pthread")),
- bn_ops => "BN_LLONG",
- asm_arch => 'x86',
- perlasm_scheme => 'elf',
+ bn_ops => "BN_LLONG RC4_CHAR",
thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "linux-shared",
shared_cflag => "-fPIC",
+ shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" },
+ },
+
+ "hurd-generic64" => {
+ inherit_from => [ "hurd-generic32" ],
+ bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
+ },
+
+ #### X86 / X86_64 targets
+ "hurd-x86" => {
+ inherit_from => [ "hurd-generic32" ],
+ CFLAGS => add(picker(release => "-fomit-frame-pointer")),
+ cflags => add("-m32"),
+ cxxflags => add("-m32"),
+ lib_cppflags => add("-DL_ENDIAN"),
+ bn_ops => "BN_LLONG",
+ asm_arch => 'x86',
+ perlasm_scheme => 'elf',
+ },
+
+ "hurd-x86_64" => {
+ inherit_from => [ "hurd-generic64" ],
+ cflags => add("-m64"),
+ cxxflags => add("-m64"),
+ lib_cppflags => add("-DL_ENDIAN"),
+ bn_ops => "SIXTY_FOUR_BIT_LONG",
+ asm_arch => 'x86_64',
+ perlasm_scheme => 'elf',
+ multilib => "64",
},
##### VxWorks for various targets
inherit_from => [ "vms-generic" ],
bn_ops => "SIXTY_FOUR_BIT",
pointer_size => "",
+ },
+ "vms-x86_64-p32" => {
+ inherit_from => [ "vms-x86_64" ],
+ cflags => add("/POINTER_SIZE=32"),
+ pointer_size => "32",
+ },
+ "vms-x86_64-p64" => {
+ inherit_from => [ "vms-x86_64" ],
+ cflags => add("/POINTER_SIZE=64=ARGV"),
+ pointer_size => "64",
}
);