Configurations/10-main.conf: remove obsolete flag from solaris-x86-gcc.
[openssl.git] / Configurations / 10-main.conf
index a1d566de0bdfa7110dc43e0b2f17c7576853c74b..3aa519c9909e17b2237954253ade4663d8f826cb 100644 (file)
@@ -187,14 +187,12 @@ sub vms_info {
     },
 #### Solaris x86 with GNU C setups
     "solaris-x86-gcc" => {
-        # -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have
-        # to do it here because whenever GNU C instantiates an assembler
-        # template it surrounds it with #APP #NO_APP comment pair which
-        # (at least Solaris 7_x86) /usr/ccs/bin/as fails to assemble
-        # with "Illegal mnemonic" error message.
+        # NB. GNU C has to be configured to use GNU assembler, and not
+        # /usr/ccs/bin/as. Failure to comply will result in compile
+        # failures [at least] in 32-bit build.
         inherit_from     => [ "solaris-common", asm("x86_elf_asm") ],
         cc               => "gcc",
-        cflags           => add_before(picker(default => "-Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM",
+        cflags           => add_before(picker(default => "-Wall -DL_ENDIAN",
                                               debug   => "-O0 -g",
                                               release => "-O3 -fomit-frame-pointer"),
                                        threads("-pthread")),
@@ -308,11 +306,11 @@ sub vms_info {
     },
     "solaris-sparcv9-cc" => {
         inherit_from     => [ "solaris-sparcv7-cc", asm("sparcv9_asm") ],
-        cflags           => add_before("-xarch=v8plus -xtarget=ultra"),
+        cflags           => add_before("-xarch=v8plus"),
     },
     "solaris64-sparcv9-cc" => {
         inherit_from     => [ "solaris-sparcv7-cc", asm("sparcv9_asm") ],
-        cflags           => add_before("-xarch=v9 -xtarget=ultra"),
+        cflags           => add_before("-xarch=v9"),
         lflags           => add_before("-xarch=v9"),
         bn_ops           => "BN_LLONG RC4_CHAR",
         shared_ldflag    => "-xarch=v9 -G -dy -z text",
@@ -622,6 +620,7 @@ sub vms_info {
     "linux-generic32" => {
         inherit_from     => [ "BASE_unix" ],
         cc               => "gcc",
+        cxx              => "g++",
         cflags           => combine(picker(default => "-Wall",
                                            debug   => "-O0 -g",
                                            release => "-O3"),
@@ -631,7 +630,8 @@ sub vms_info {
         thread_scheme    => "pthreads",
         dso_scheme       => "dlfcn",
         shared_target    => "linux-shared",
-        shared_cflag     => "-fPIC",
+        shared_cflag     => "-fPIC -DOPENSSL_USE_NODELETE",
+        shared_ldflag    => "-Wl,-znodelete",
         shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "linux-generic64" => {
@@ -647,14 +647,14 @@ sub vms_info {
         inherit_from     => [ "linux-generic64", asm("ppc64_asm") ],
         cflags           => add("-m64 -DB_ENDIAN"),
         perlasm_scheme   => "linux64",
-        shared_ldflag    => "-m64",
+        shared_ldflag    => add("-m64"),
         multilib         => "64",
     },
     "linux-ppc64le" => {
         inherit_from     => [ "linux-generic64", asm("ppc64_asm") ],
         cflags           => add("-m64 -DL_ENDIAN"),
         perlasm_scheme   => "linux64le",
-        shared_ldflag    => "-m64",
+        shared_ldflag    => add("-m64"),
     },
 
     "linux-armv4" => {
@@ -710,7 +710,7 @@ sub vms_info {
         inherit_from     => [ "linux-generic32", asm("mips32_asm") ],
         cflags           => add("-mabi=32 -DBN_DIV3W"),
         perlasm_scheme   => "o32",
-        shared_ldflag    => "-mabi=32",
+        shared_ldflag    => add("-mabi=32"),
     },
     # mips32 and mips64 below refer to contemporary MIPS Architecture
     # specifications, MIPS32 and MIPS64, rather than to kernel bitness.
@@ -719,14 +719,14 @@ sub vms_info {
         cflags           => add("-mabi=n32 -DBN_DIV3W"),
         bn_ops           => "SIXTY_FOUR_BIT RC4_CHAR",
         perlasm_scheme   => "n32",
-        shared_ldflag    => "-mabi=n32",
+        shared_ldflag    => add("-mabi=n32"),
         multilib         => "32",
     },
     "linux64-mips64" => {
         inherit_from     => [ "linux-generic64", asm("mips64_asm") ],
         cflags           => add("-mabi=64 -DBN_DIV3W"),
         perlasm_scheme   => "64",
-        shared_ldflag    => "-mabi=64",
+        shared_ldflag    => add("-mabi=64"),
         multilib         => "64",
     },
 
@@ -735,7 +735,6 @@ sub vms_info {
         inherit_from     => [ "linux-generic32", asm("x86_elf_asm") ],
         cflags           => add(picker(default => "-DL_ENDIAN",
                                        release => "-fomit-frame-pointer")),
-        ex_libs          => add(picker(debug => "-lefence")),
         bn_ops           => "BN_LLONG",
     },
     "linux-aout" => {
@@ -754,12 +753,13 @@ sub vms_info {
         cflags           => add("-m64 -DL_ENDIAN"),
         bn_ops           => "SIXTY_FOUR_BIT_LONG",
         perlasm_scheme   => "elf",
-        shared_ldflag    => "-m64",
+        shared_ldflag    => add("-m64"),
         multilib         => "64",
     },
     "linux-x86_64-clang" => {
         inherit_from     => [ "linux-x86_64" ],
         cc               => "clang",
+        cxx              => "clang++",
         cflags           => add("-Wextra -Qunused-arguments"),
     },
     "linux-x32" => {
@@ -780,7 +780,7 @@ sub vms_info {
         inherit_from     => [ "linux-generic64", asm("s390x_asm") ],
         cflags           => add("-m64 -DB_ENDIAN"),
         perlasm_scheme   => "64",
-        shared_ldflag    => "-m64",
+        shared_ldflag    => add("-m64"),
         multilib         => "64",
     },
     "linux32-s390x" => {
@@ -804,7 +804,7 @@ sub vms_info {
         cflags           => add("-m31 -Wa,-mzarch -DB_ENDIAN"),
         bn_asm_src       => sub { my $r=join(" ",@_); $r=~s|asm/s390x\.S|bn_asm.c|; $r; },
         perlasm_scheme   => "31",
-        shared_ldflag    => "-m31",
+        shared_ldflag    => add("-m31"),
         multilib         => "/highgprs",
     },
 
@@ -820,14 +820,14 @@ sub vms_info {
         # but -Wa,-Av8plus should do the trick no matter what.
         inherit_from     => [ "linux-generic32", asm("sparcv9_asm") ],
         cflags           => add("-m32 -mcpu=ultrasparc -Wa,-Av8plus -DB_ENDIAN -DBN_DIV2W"),
-        shared_ldflag    => "-m32",
+        shared_ldflag    => add("-m32"),
     },
     "linux64-sparcv9" => {
         # GCC 3.1 is a requirement
         inherit_from     => [ "linux-generic64", asm("sparcv9_asm") ],
         cflags           => add("-m64 -mcpu=ultrasparc -DB_ENDIAN"),
         bn_ops           => "BN_LLONG RC4_CHAR",
-        shared_ldflag    => "-m64",
+        shared_ldflag    => add("-m64"),
         multilib         => "64",
     },
 
@@ -856,7 +856,7 @@ sub vms_info {
         dso_scheme       => "dlfcn",
         shared_target    => "linux-shared",
         shared_cflag     => "--pic",
-        shared_ldflag    => "-z --sysv --shared",
+        shared_ldflag    => add("-z --sysv --shared"),
         shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         ranlib           => "true",
     },
@@ -938,6 +938,19 @@ sub vms_info {
         inherit_from     => [ "android64", asm("x86_64_asm") ],
         perlasm_scheme   => "elf",
     },
+    "android64-mips64" => {
+        ############################################################
+        # You are more than likely have to specify target processor
+        # on ./Configure command line. Trouble is that toolchain's
+        # default is MIPS64r6 (at least in r10d), but there are no
+        # such processors around (or they are too rare to spot one).
+        # Actual problem is that MIPS64r6 is binary incompatible
+        # with previous MIPS ISA versions, in sense that unlike
+        # prior versions original MIPS binary code will fail.
+        #
+        inherit_from     => [ "android64", asm("mips64_asm") ],
+        perlasm_scheme   => "64",
+    },
 
 #### *BSD
     "BSD-generic32" => {
@@ -1146,6 +1159,11 @@ sub vms_info {
     },
 
 #### IBM's AIX.
+    # Below targets assume AIX >=5. Caveat lector. If you are accustomed
+    # to control compilation "bitness" by setting $OBJECT_MODE environment
+    # variable, then you should know that in OpenSSL case it's considered
+    # only in ./config. Once configured, build procedure remains "deaf" to
+    # current value of $OBJECT_MODE.
     "aix-gcc" => {
         inherit_from     => [ "BASE_unix", asm("ppc32_asm") ],
         cc               => "gcc",
@@ -1159,7 +1177,7 @@ sub vms_info {
         perlasm_scheme   => "aix32",
         dso_scheme       => "dlfcn",
         shared_target    => "aix-shared",
-        shared_ldflag    => "-shared -Wl,-G",
+        shared_ldflag    => "-shared -static-libgcc -Wl,-G",
         shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         arflags          => "-X32",
     },
@@ -1176,13 +1194,10 @@ sub vms_info {
         perlasm_scheme   => "aix64",
         dso_scheme       => "dlfcn",
         shared_target    => "aix-shared",
-        shared_ldflag    => "-maix64 -shared -Wl,-G",
+        shared_ldflag    => "-maix64 -shared -static-libgcc -Wl,-G",
         shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         arflags          => "-X64",
     },
-    # Below targets assume AIX 5. Idea is to effectively disregard
-    # $OBJECT_MODE at build time. $OBJECT_MODE is respected at
-    # ./config stage!
     "aix-cc" => {
         inherit_from     => [ "BASE_unix", asm("ppc32_asm") ],
         cc               => "cc",
@@ -1193,6 +1208,7 @@ sub vms_info {
         sys_id           => "AIX",
         bn_ops           => "BN_LLONG RC4_CHAR",
         thread_scheme    => "pthreads",
+        ex_libs          => threads("-lpthreads"),
         perlasm_scheme   => "aix32",
         dso_scheme       => "dlfcn",
         shared_target    => "aix-shared",
@@ -1210,6 +1226,7 @@ sub vms_info {
         sys_id           => "AIX",
         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
         thread_scheme    => "pthreads",
+        ex_libs          => threads("-lpthreads"),
         perlasm_scheme   => "aix64",
         dso_scheme       => "dlfcn",
         shared_target    => "aix-shared",
@@ -1258,9 +1275,11 @@ sub vms_info {
         cflags           => "-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE",
         defines          => add(sub { my @defs = ();
                                       unless ($disabled{"zlib-dynamic"}) {
+                                          my $zlib =
+                                              $withargs{zlib_lib} // "ZLIB1";
                                           push @defs,
                                               quotify("perl",
-                                                      'LIBZ="' . $withargs{zlib_lib} . '"');
+                                                      'LIBZ="' . $zlib . '"');
                                       }
                                       return [ @defs ];
                                     }),
@@ -1277,6 +1296,7 @@ sub vms_info {
     },
     "VC-noCE-common" => {
         inherit_from     => [ "VC-common" ],
+        template         => 1,
         cflags           => add(picker(default => "-DUNICODE -D_UNICODE",
                                        debug   =>
                                        sub {
@@ -1313,6 +1333,7 @@ sub vms_info {
     },
     "VC-WIN64-common" => {
         inherit_from     => [ "VC-noCE-common" ],
+        template         => 1,
         ex_libs          => add(sub {
             my @ex_libs = ();
             push @ex_libs, 'bufferoverflowu.lib' if (`cl 2>&1` =~ /14\.00\.4[0-9]{4}\./);
@@ -1743,19 +1764,22 @@ sub vms_info {
         inherit_from     => [ "BASE_VMS" ],
         template         => 1,
         cc               => "CC/DECC",
-        cflags           => picker(default => "/STANDARD=RELAXED/NOLIST/PREFIX=ALL",
+        cflags           => picker(default => "/STANDARD=(ISOC94,RELAXED)/NOLIST/PREFIX=ALL",
                                    debug   => "/NOOPTIMIZE/DEBUG",
                                    release => "/OPTIMIZE/NODEBUG"),
+        defines          => add("OPENSSL_USE_NODELETE"),
         lflags           => picker(default => "/MAP",
                                    debug   => "/DEBUG/TRACEBACK",
                                    release => "/NODEBUG/NOTRACEBACK"),
         lib_cflags       => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"),
-        dso_cflags       => add("/NAMES=(AS_IS,SHORTENED)"),
+        # no_inst_bin_cflags is used instead of bin_cflags by descrip.mms.tmpl
+        # for object files belonging to selected internal programs
+        no_inst_bin_cflags => "/NAMES=(AS_IS,SHORTENED)",
         shared_target    => "vms-shared",
         dso_scheme       => "vms",
         thread_scheme    => "pthreads",
 
-        apps_aux_src     => "vms_decc_init.c",
+        apps_aux_src     => "vms_decc_init.c vms_term_sock.c",
     },
 
     "vms-alpha" => {