}
unless (%$vms_info) {
- $vms_info->{disable_warns} = [ ];
+ $vms_info->{disable_warns} = [
+ "CXXPRAGMANA", # Shut up about unknown / unsupported pragmas
+ ];
$vms_info->{pointer_size} = $pointer_size_str;
if ($pointer_size_str eq "64") {
`PIPE CC /NOCROSS_REFERENCE /NOLIST /NOOBJECT /WARNINGS = DISABLE = ( MAYLOSEDATA3, EMPTYFILE ) NL: 2> NL:`;
"solaris-common-gcc" => {
inherit_from => [ "solaris-common" ],
template => 1,
- shared_target => "solaris-gcc", # The rest is on shared_info.pl
+ shared_target => "solaris-gcc-shared", # The rest is on shared_info.pl
},
#### Solaris x86 with GNU C setups
"solaris-x86-gcc" => {
},
"solaris64-sparcv9-cc" => {
inherit_from => [ "solaris-sparcv7-cc" ],
- cflags => add_before("-xarch=v9"),
+ cflags => add_before("-m64 -xarch=sparc"),
bn_ops => "BN_LLONG RC4_CHAR",
asm_arch => 'sparcv9',
perlasm_scheme => 'void',
####
# *-generic* is endian-neutral target, but ./config is free to
# throw in -D[BL]_ENDIAN, whichever appropriate...
- "linux-generic32" => {
+ "linux-generic" => {
inherit_from => [ "BASE_unix" ],
CC => "gcc",
CXX => "g++",
shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" },
enable => [ "afalgeng" ],
},
+ "linux-generic32" => {
+ inherit_from => [ "linux-generic" ],
+ ex_libs => add(threads("-latomic")),
+ bn_ops => "BN_LLONG RC4_CHAR",
+ },
"linux-generic64" => {
- inherit_from => [ "linux-generic32" ],
+ inherit_from => [ "linux-generic" ],
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
},
inherit_from => [ "linux-generic32" ],
asm_arch => 'ppc32',
perlasm_scheme => "linux32",
+ lib_cppflags => add("-DB_ENDIAN"),
},
"linux-ppc64" => {
inherit_from => [ "linux-generic64" ],
inherit_from => [ "linux-generic32" ],
cflags => add("-mabi=n32"),
cxxflags => add("-mabi=n32"),
- bn_ops => "SIXTY_FOUR_BIT RC4_CHAR",
+ bn_ops => "RC4_CHAR",
asm_arch => 'mips64',
perlasm_scheme => "n32",
multilib => "32",
multilib => "64",
},
+ # riscv64 below refers to contemporary RISCV Architecture
+ # specifications,
+ "linux64-riscv64" => {
+ inherit_from => [ "linux-generic64"],
+ perlasm_scheme => "linux64",
+ },
+
#### IA-32 targets...
#### These two targets are a bit aged and are to be used on older Linux
#### machines where gcc doesn't understand -m32 and -m64
cflags => add("-m64 -mcpu=ultrasparc"),
cxxflags => add("-m64 -mcpu=ultrasparc"),
lib_cppflags => add("-DB_ENDIAN"),
+ ex_libs => add(threads("-latomic")),
bn_ops => "BN_LLONG RC4_CHAR",
asm_arch => 'sparcv9',
perlasm_scheme => 'void',
CFLAGS => add(picker(release => "-fomit-frame-pointer")),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "BN_LLONG",
- shared_target => "bsd-shared",
asm_arch => 'x86',
perlasm_scheme => "a.out",
},
module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
shared_ldflag => "-Wl,-G,-bsymbolic,-bnoentry",
shared_defflag => "-Wl,-bE:",
+ shared_fipsflag => "-Wl,-binitfini:_init:_cleanup",
perl_platform => 'AIX',
},
"aix-gcc" => {
CFLAGS => picker(debug => "-O0 -g",
release => "-O"),
cflags => add(threads("-pthread")),
- ex_libs => threads("-pthread"),
+ ex_libs => add(threads("-pthread")),
bn_ops => "BN_LLONG RC4_CHAR",
asm_arch => 'ppc32',
perlasm_scheme => "aix32",
CFLAGS => picker(debug => "-O0 -g",
release => "-O"),
cflags => combine("-maix64", threads("-pthread")),
- ex_libs => threads("-pthread"),
+ ex_libs => add(threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
asm_arch => 'ppc64',
perlasm_scheme => "aix64",
cflags => combine("-q32 -qmaxmem=16384 -qro -qroconst",
threads("-qthreaded")),
cppflags => threads("-D_THREAD_SAFE"),
- ex_libs => threads("-lpthreads"),
+ ex_libs => add(threads("-lpthreads")),
bn_ops => "BN_LLONG RC4_CHAR",
asm_arch => 'ppc32',
perlasm_scheme => "aix32",
cflags => combine("-q64 -qmaxmem=16384 -qro -qroconst",
threads("-qthreaded")),
cppflags => threads("-D_THREAD_SAFE"),
- ex_libs => threads("-lpthreads"),
+ ex_libs => add(threads("-lpthreads")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
asm_arch => 'ppc64',
perlasm_scheme => "aix64",
inherit_from => [ "BASE_Windows" ],
template => 1,
CC => "cl",
- CPP => '$(CC) /EP /C',
+ CPP => '"$(CC)" /EP /C',
CFLAGS => "/W3 /wd4090 /nologo",
- LDFLAGS => add("/debug"),
coutflag => "/Fo",
+ LD => "link",
+ LDFLAGS => "/nologo /debug",
+ ldoutflag => "/out:",
+ ldpostoutflag => "",
+ ld_resp_delim => "\n",
+ bin_lflags => "setargv.obj",
+ makedepcmd => '"$(CC)" /Zs /showIncludes',
+ makedep_scheme => 'VC',
+ AR => "lib",
+ ARFLAGS => "/nologo",
+ aroutflag => "/out:",
+ ar_resp_delim => "\n",
+ RC => "rc",
+ rcoutflag => "/fo",
defines => add("OPENSSL_SYS_WIN32", "WIN32_LEAN_AND_MEAN",
"UNICODE", "_UNICODE",
"_CRT_SECURE_NO_DEPRECATE",
shared_defflag => '',
shared_ldflag => "/dll",
shared_target => "win-shared", # meaningless except it gives Configure a hint
+ lddefflag => "/def:",
+ ldresflag => " ",
+ ld_implib_flag => "/implib:",
thread_scheme => "winthreads",
dso_scheme => "win32",
perl_platform => 'Windows::MSVC',
}
push @ex_libs, '$(PORTSDK_LIBPATH)/portlib.lib'
if (defined(env('PORTSDK_LIBPATH')));
- push @ex_libs, ' /nodefaultlib coredll.lib corelibc.lib'
- if (env('TARGETCPU') eq "X86");
- return @ex_libs;
+ push @ex_libs, '/nodefaultlib coredll.lib corelibc.lib'
+ if (env('TARGETCPU') =~ /^X86|^ARMV4[IT]/);
+ return join(" ", @ex_libs);
}),
},
CFLAGS => picker(debug => "-g -O0",
release => "-O3"),
cppflags => threads("-D_REENTRANT"),
- lflags => "-Wl,-search_paths_first",
+ lflags => add("-Wl,-search_paths_first"),
sys_id => "MACOSX",
bn_ops => "BN_LLONG RC4_CHAR",
thread_scheme => "pthreads",
# Option "freeze" such as -std=gnu9x can't negatively interfere
# with future defaults for below two targets, because MacOS X
# for PPC has no future, it was discontinued by vendor in 2009.
- "darwin-ppc-cc" => {
+ "darwin-ppc-cc" => { inherit_from => [ "darwin-ppc" ] }, # Historic alias
+ "darwin-ppc" => {
inherit_from => [ "darwin-common" ],
cflags => add("-arch ppc -std=gnu9x -Wa,-force_cpusubtype_ALL"),
lib_cppflags => add("-DB_ENDIAN"),
asm_arch => 'ppc32',
perlasm_scheme => "osx32",
},
- "darwin64-ppc-cc" => {
+ "darwin64-ppc-cc" => { inherit_from => [ "darwin64-ppc" ] }, # Historic alias
+ "darwin64-ppc" => {
inherit_from => [ "darwin-common" ],
cflags => add("-arch ppc64 -std=gnu9x"),
lib_cppflags => add("-DB_ENDIAN"),
asm_arch => 'ppc64',
perlasm_scheme => "osx64",
},
- "darwin-i386-cc" => {
+ "darwin-i386-cc" => { inherit_from => [ "darwin-i386" ] }, # Historic alias
+ "darwin-i386" => {
inherit_from => [ "darwin-common" ],
CFLAGS => add(picker(release => "-fomit-frame-pointer")),
cflags => add("-arch i386"),
asm_arch => 'x86',
perlasm_scheme => "macosx",
},
- "darwin64-x86_64-cc" => {
+ "darwin64-x86_64-cc" => { inherit_from => [ "darwin64-x86_64" ] }, # Historic alias
+ "darwin64-x86_64" => {
inherit_from => [ "darwin-common" ],
CFLAGS => add("-Wall"),
cflags => add("-arch x86_64"),
asm_arch => 'x86_64',
perlasm_scheme => "macosx",
},
+ "darwin64-arm64-cc" => { inherit_from => [ "darwin64-arm64" ] }, # "Historic" alias
+ "darwin64-arm64" => {
+ inherit_from => [ "darwin-common" ],
+ CFLAGS => add("-Wall"),
+ cflags => add("-arch arm64"),
+ lib_cppflags => add("-DL_ENDIAN"),
+ bn_ops => "SIXTY_FOUR_BIT_LONG",
+ asm_arch => 'aarch64',
+ perlasm_scheme => "ios64",
+ },
##### GNU Hurd
"hurd-x86" => {
@{vms_info()->{disable_warns}};
@warnings
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
+ cflag_incfirst => '/FIRST_INCLUDE=',
lib_defines =>
add("OPENSSL_USE_NODELETE",
sub {
# and binaries instead.
bin_cflags => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"),
lib_cflags => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"),
- # For modules specifically, we assume that they only use public
- # OpenSSL symbols, and therefore don't need to mangle names on
- # their own.
- dso_cflags => "",
+ # Strictly speaking, DSOs should not need to have name shortening,
+ # as all their exported symbols should be short enough to fit the
+ # linker's 31 character per symbol name limit. However, providers
+ # may be composed of more than one object file, and internal symbols
+ # may and do surpass the 31 character limit.
+ dso_cflags => add("/NAMES=(SHORTENED)"),
ex_libs => add(sub { return vms_info()->{zlib} || (); }),
shared_target => "vms-shared",
# def_flag made to empty string so a .opt file gets generated
dso_scheme => "vms",
thread_scheme => "pthreads",
+ makedep_scheme => 'VMS C',
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} },
- disable => add('pinshared'),
+ disable => add('pinshared', 'loadereng'),
},