diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index f77bfda90d..3ccee8b141 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -35,6 +35,15 @@ 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 @@ -42,19 +51,15 @@ # 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 @@ -65,70 +70,58 @@ # code [thanks to inline assembler], I would actually recommend # to consider using gcc shared build even with vendor compiler:-) # - 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") ], @@ -136,17 +129,14 @@ }, "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", @@ -157,18 +147,16 @@ # 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 30ddbc97c8..2832f308e7 100644 --- 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 /* Added for FIONBIO under unixware */ +# include /* FIONBIO in some SVR4, e.g. unixware, solaris */ # endif # include # include