Configuratons: add -DFILIO_H to harmonized Solaris targets.
authorAndy Polyakov <appro@openssl.org>
Mon, 23 Nov 2015 13:12:17 +0000 (14:12 +0100)
committerAndy Polyakov <appro@openssl.org>
Tue, 24 Nov 2015 22:06:13 +0000 (23:06 +0100)
Triggered by RT#4144.

Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Configurations/10-main.conf
e_os.h

index f77bfda..3ccee8b 100644 (file)
         shared_extension => ".so",
     },
 
+#### Solaros configirations
+    "solaris-common" => {
+        template         => 1,
+        cflags           => "-DFILIO_H",
+        lflags           => "-lsocket -lnsl -ldl",
+        dso_scheme       => "dlfcn",
+        shared_target    => "solaris-shared",
+        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+    },
 #### Solaris x86 with GNU C setups
     "solaris-x86-gcc" => {
         # -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have
         # 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     => [ asm("x86_elf_asm") ],
+        inherit_from     => [ "solaris-common", asm("x86_elf_asm") ],
         cc               => "gcc",
-        cflags           => "-march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM",
+        cflags           => sub { join(" ","-march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM",@_) },
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3 -fomit-frame-pointer",
         thread_cflag     => "-pthread",
-        lflags           => "-lsocket -lnsl -ldl",
         bn_ops           => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-fPIC",
         shared_ldflag    => "-shared",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "solaris64-x86_64-gcc" => {
         # -shared -static-libgcc might appear controversial, but modules
         # code [thanks to inline assembler], I would actually recommend
         # to consider using gcc shared build even with vendor compiler:-)
         #                                      <appro@fy.chalmers.se>
-        inherit_from     => [ asm("x86_64_asm") ],
+        inherit_from     => [ "solaris-common", asm("x86_64_asm") ],
         cc               => "gcc",
-        cflags           => "-m64 -Wall -DL_ENDIAN",
+        cflags           => sub { join(" ","-m64 -Wall -DL_ENDIAN",@_) },
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
         thread_cflag     => "-pthread",
-        lflags           => "-lsocket -lnsl -ldl",
         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL",
         perlasm_scheme   => "elf",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-fPIC",
         shared_ldflag    => "-m64 -shared -static-libgcc",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         multilib         => "/64",
     },
 
 #### Solaris x86 with Sun C setups
     "solaris-x86-cc" => {
+        inherit_from     => [ "solaris-common" ],
         cc               => "cc",
-        cflags           => "-xarch=generic -xstrconst -Xa -DL_ENDIAN",
+        cflags           => sub { join(" ","-xarch=generic -xstrconst -Xa -DL_ENDIAN",@_) },
         debug_cflags     => "-g",
         release_cflags   => "-xO5 -xregs=frameptr -xdepend -xbuiltin",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl -mt -lpthread",
+        lflags           => sub { join(" ",@_,"-mt -lpthread") },
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-KPIC",
         shared_ldflag    => "-G -dy -z text",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "solaris64-x86_64-cc" => {
-        inherit_from     => [ asm("x86_64_asm") ],
+        inherit_from     => [ "solaris-common", asm("x86_64_asm") ],
         cc               => "cc",
-        cflags           => "-xarch=generic64 -xstrconst -Xa -DL_ENDIAN",
+        cflags           => sub { join(" ","-xarch=generic64 -xstrconst -Xa -DL_ENDIAN",@_) },
         debug_cflags     => "-g",
         release_cflags   => "-xO5 -xdepend -xbuiltin",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl -mt -lpthread",
+        lflags           => sub { join(" ",@_,"-mt -lpthread") },
         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL",
         perlasm_scheme   => "elf",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-KPIC",
         shared_ldflag    => "-xarch=generic64 -G -dy -z text",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         multilib         => "/64",
     },
 
 #### SPARC Solaris with GNU C setups
     "solaris-sparcv7-gcc" => {
+        inherit_from     => [ "solaris-common" ],
         cc               => "gcc",
-        cflags           => "-Wall -DB_ENDIAN -DBN_DIV2W",
+        cflags           => sub { join(" ","-Wall -DB_ENDIAN -DBN_DIV2W",@_) },
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
         thread_cflag     => "-pthread",
-        lflags           => "-lsocket -lnsl -ldl",
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-fPIC",
         shared_ldflag    => "-shared",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "solaris-sparcv8-gcc" => {
         inherit_from     => [ "solaris-sparcv7-gcc", asm("sparcv8_asm") ],
     },
     "solaris-sparcv9-gcc" => {
         # -m32 should be safe to add as long as driver recognizes
-       # -mcpu=ultrasparc
+        # -mcpu=ultrasparc
         inherit_from     => [ "solaris-sparcv7-gcc", asm("sparcv9_asm") ],
-        cc               => "gcc",
         cflags           => sub { join(" ","-m32 -mcpu=ultrasparc",@_); },
         debug_cflags     => "-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -pedantic -ansi -Wshadow -Wno-long-long -D__EXTENSIONS__",
-        release_cflags   => "-O3",
     },
     "solaris64-sparcv9-gcc" => {
         inherit_from     => [ "solaris-sparcv9-gcc" ],
-        cc               => "gcc",
-        cflags           => "-m64 -mcpu=ultrasparc -Wall -DB_ENDIAN",
+        cflags           => sub { my $f=join(" ",@_); $f =~ s/\-m32/-m64/; $f; },
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR",
         shared_ldflag    => "-m64 -shared",
         multilib         => "/64",
 # SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
 # SC5.0 note: Compiler common patch 107357-01 or later is required!
     "solaris-sparcv7-cc" => {
+        inherit_from     => [ "solaris-common" ],
         cc               => "cc",
-        cflags           => "-xstrconst -Xa -DB_ENDIAN -DBN_DIV2W",
+        cflags           => sub { join(" ","-xstrconst -Xa -DB_ENDIAN -DBN_DIV2W",@_) },
         debug_cflags     => "-g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL",
         release_cflags   => "-xO5 -xdepend",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl -mt -lpthread",
+        lflags           => sub { join(" ",@_,"-mt -lpthread") },
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-KPIC",
         shared_ldflag    => "-G -dy -z text",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
 ####
     "solaris-sparcv8-cc" => {
diff --git a/e_os.h b/e_os.h
index 30ddbc9..2832f30 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -539,7 +539,7 @@ struct servent *PASCAL getservbyname(const char *, const char *);
 #     endif
 #    endif
 #    ifdef FILIO_H
-#     include <sys/filio.h>     /* Added for FIONBIO under unixware */
+#     include <sys/filio.h> /* FIONBIO in some SVR4, e.g. unixware, solaris */
 #    endif
 #    include <netinet/in.h>
 #    include <arpa/inet.h>