}
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:`;
},
"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",
},
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',
module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
shared_ldflag => "-Wl,-G,-bsymbolic,-bnoentry",
shared_defflag => "-Wl,-bE:",
- shared_fipsflag => "-Wl,-binitfini:init:cleanup",
+ shared_fipsflag => "-Wl,-binitfini:_init:_cleanup",
perl_platform => 'AIX',
},
"aix-gcc" => {
inherit_from => [ "BASE_Windows" ],
template => 1,
CC => "cl",
- CPP => '$(CC) /EP /C',
+ CPP => '"$(CC)" /EP /C',
CFLAGS => "/W3 /wd4090 /nologo",
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',
@{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'),
},