VMS: Change debug linking method to generate a separate Debug Symbol File
[openssl.git] / Configurations / 10-main.conf
index 4ea8f155f802fa617113a6e6cda2bc51eb4c6227..c3d2e94792898e1f9b11bef86ceebaabd7e2879c 100644 (file)
@@ -179,7 +179,7 @@ sub vms_info {
         inherit_from     => [ "BASE_unix" ],
         template         => 1,
         cflags           => "-DFILIO_H",
-        ex_libs          => add("-lresolv -lsocket -lnsl -ldl"),
+        ex_libs          => add("-lsocket -lnsl -ldl"),
         dso_scheme       => "dlfcn",
         thread_scheme    => "pthreads",
         shared_target    => "solaris-shared",
@@ -190,17 +190,9 @@ sub vms_info {
         # 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.
-        # [Above statement is in direct contradition with one below.
-        #  Latter is kept, because it's formally inappropriate to
-        #  modify compile flags in letter release.]
-        # -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.
         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")),
@@ -709,7 +701,7 @@ sub vms_info {
         cflags           => add("-mabi=ilp32"),
         bn_ops           => "SIXTY_FOUR_BIT RC4_CHAR",
         perlasm_scheme   => "linux64",
-        shared_ldflag    => "-mabi=ilp32",
+        shared_ldflag    => add("-mabi=ilp32"),
     },
 
     "linux-mips32" => {
@@ -739,6 +731,8 @@ sub vms_info {
     },
 
     #### 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
     "linux-elf" => {
         inherit_from     => [ "linux-generic32", asm("x86_elf_asm") ],
         cflags           => add(picker(default => "-DL_ENDIAN",
@@ -756,6 +750,21 @@ sub vms_info {
         perlasm_scheme   => "a.out",
     },
 
+    #### X86 / X86_64 targets
+    "linux-x86" => {
+        inherit_from     => [ "linux-generic32", asm("x86_asm") ],
+        cflags           => add(picker(default => "-m32 -DL_ENDIAN",
+                                       release => "-fomit-frame-pointer")),
+        bn_ops           => "BN_LLONG",
+        perlasm_scheme   => "elf",
+        shared_ldflag    => add("-m32"),
+    },
+    "linux-x86-clang" => {
+        inherit_from     => [ "linux-x86" ],
+        cc               => "clang",
+        cxx              => "clang++",
+        cflags           => add("-Wextra -Qunused-arguments"),
+    },
     "linux-x86_64" => {
         inherit_from     => [ "linux-generic64", asm("x86_64_asm") ],
         cflags           => add("-m64 -DL_ENDIAN"),
@@ -775,7 +784,7 @@ sub vms_info {
         cflags           => add("-mx32 -DL_ENDIAN"),
         bn_ops           => "SIXTY_FOUR_BIT",
         perlasm_scheme   => "elf32",
-        shared_ldflag    => "-mx32",
+        shared_ldflag    => add("-mx32"),
         multilib         => "x32",
     },
 
@@ -1776,8 +1785,8 @@ sub vms_info {
                                    debug   => "/NOOPTIMIZE/DEBUG",
                                    release => "/OPTIMIZE/NODEBUG"),
         defines          => add("OPENSSL_USE_NODELETE"),
-        lflags           => picker(default => "/MAP",
-                                   debug   => "/DEBUG/TRACEBACK",
+        lflags           => picker(default => "/MAP='F\$PARSE(\".MAP\",\"\$\@\")'",
+                                   debug   => "/DSF='F\$PARSE(\"\$(BLDDIR).DSF\",\"\$\@\")'/TRACEBACK",
                                    release => "/NODEBUG/NOTRACEBACK"),
         lib_cflags       => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"),
         # no_inst_bin_cflags is used instead of bin_cflags by descrip.mms.tmpl