X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configurations%2F10-main.conf;h=28322e3ac7e436b8b9b6e892149dabd2a584b7ac;hp=7cd109c7904a1a344027c03a223ac0c30af19808;hb=e84193e43dbd3da23845ef9fcfcb5e364049a396;hpb=1818572d8395743704d917d91c3b909dd0a973d6 diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 7cd109c790..28322e3ac7 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1,7 +1,8 @@ +## -*- mode: perl; -*- ## Standard openssl configuration targets. ## ## If you edit this file, run this command before committing -## make -f Makefile.org TABLE +## make -f Makefile.in TABLE ## This file is interpolated by the Configure script. %targets = ( @@ -25,7 +26,7 @@ "vos-gcc" => { cc => "gcc", cflags => "-Wall -DOPENSSL_SYS_VOS -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN", - debug_cflags => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG", + debug_cflags => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG", release_cflags => "-O3", thread_cflag => "(unknown)", sys_id => "VOS", @@ -34,6 +35,15 @@ shared_extension => ".so", }, +#### Solaros configirations + "solaris-common" => { + template => 1, + cflags => "-DFILIO_H", + ex_libs => "-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 @@ -41,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 => add_before("-march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM"), debug_cflags => "-O0 -g", release_cflags => "-O3 -fomit-frame-pointer", - thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl -ldl", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", - dso_scheme => "dlfcn", - shared_target => "solaris-shared", + thread_cflag => "-pthread", + bn_ops => "BN_LLONG", 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 @@ -64,89 +70,76 @@ # 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 => add_before("-m64 -Wall -DL_ENDIAN"), debug_cflags => "-O0 -g", release_cflags => "-O3", - thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl -ldl", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + thread_cflag => "-pthread", + bn_ops => "SIXTY_FOUR_BIT_LONG", 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 => add_before("-xarch=generic -xstrconst -Xa -DL_ENDIAN"), debug_cflags => "-g", release_cflags => "-xO5 -xregs=frameptr -xdepend -xbuiltin", thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl -ldl", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR", - dso_scheme => "dlfcn", - shared_target => "solaris-shared", + lflags => add("-mt"), + ex_libs => add("-lpthread"), + bn_ops => "BN_LLONG RC4_CHAR", 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 => add_before("-xarch=generic64 -xstrconst -Xa -DL_ENDIAN"), debug_cflags => "-g", release_cflags => "-xO5 -xdepend -xbuiltin", thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl -ldl", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + lflags => add("-mt"), + ex_libs => add("-lpthread"), + bn_ops => "SIXTY_FOUR_BIT_LONG", 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 => add_before("-Wall -DB_ENDIAN -DBN_DIV2W"), debug_cflags => "-O0 -g", release_cflags => "-O3", - thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl -ldl", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR", - dso_scheme => "dlfcn", - shared_target => "solaris-shared", + thread_cflag => "-pthread", + bn_ops => "BN_LLONG RC4_CHAR", shared_cflag => "-fPIC", shared_ldflag => "-shared", - shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", }, "solaris-sparcv8-gcc" => { inherit_from => [ "solaris-sparcv7-gcc", asm("sparcv8_asm") ], - cflags => sub { join(" ","-mv8",@_); }, + cflags => add_before(" ", "-mcpu=v8"), }, "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", + cflags => add_before(" ", "-m32 -mcpu=ultrasparc"), + debug_cflags => "-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DPEDANTIC -O -g -pedantic -ansi -Wshadow -Wno-long-long -D__EXTENSIONS__", }, "solaris64-sparcv9-gcc" => { inherit_from => [ "solaris-sparcv9-gcc" ], - cc => "gcc", - cflags => "-m64 -mcpu=ultrasparc -Wall -DB_ENDIAN", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR", + cflags => sub { my $f=join(" ",@_); $f =~ s/\-m32/-m64/; $f; }, + bn_ops => "BN_LLONG RC4_CHAR", shared_ldflag => "-m64 -shared", multilib => "/64", }, @@ -156,32 +149,31 @@ # 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", - debug_cflags => "-g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL", + cflags => add_before("-xstrconst -Xa -DB_ENDIAN -DBN_DIV2W"), + debug_cflags => "-g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG", release_cflags => "-xO5 -xdepend", thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl -ldl", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR", - dso_scheme => "dlfcn", - shared_target => "solaris-shared", + lflags => add("-mt"), + ex_libs => add("-lpthread"), + bn_ops => "BN_LLONG RC4_CHAR", shared_cflag => "-KPIC", shared_ldflag => "-G -dy -z text", - shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", }, #### "solaris-sparcv8-cc" => { inherit_from => [ "solaris-sparcv7-cc", asm("sparcv8_asm") ], - cflags => sub { join(" ","-xarch=v8",@_); }, + cflags => add_before(" ", "-xarch=v8"), }, "solaris-sparcv9-cc" => { inherit_from => [ "solaris-sparcv7-cc", asm("sparcv9_asm") ], - cflags => sub { join(" ","-xarch=v8plus -xtarget=ultra",@_); }, + cflags => add_before(" ", "-xarch=v8plus -xtarget=ultra"), }, "solaris64-sparcv9-cc" => { inherit_from => [ "solaris-sparcv7-cc", asm("sparcv9_asm") ], - cflags => sub { join(" ","-xarch=v9 -xtarget=ultra",@_); }, - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR", + cflags => add_before(" ", "-xarch=v9 -xtarget=ultra"), + bn_ops => "BN_LLONG RC4_CHAR", shared_ldflag => "-xarch=v9 -G -dy -z text", multilib => "/64", }, @@ -195,7 +187,7 @@ debug_cflags => "-g -O0", release_cflags => "-O3", thread_cflag => "(unknown)", - bn_ops => "BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR", + bn_ops => "BN_LLONG RC4_CHAR", perlasm_scheme => "o32", dso_scheme => "dlfcn", shared_target => "irix-shared", @@ -208,7 +200,7 @@ debug_cflags => "-g -O0", release_cflags => "-O2", thread_cflag => "(unknown)", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR", + bn_ops => "BN_LLONG RC4_CHAR", perlasm_scheme => "o32", dso_scheme => "dlfcn", shared_target => "irix-shared", @@ -223,8 +215,8 @@ cflags => "-mabi=n32 -DB_ENDIAN -DBN_DIV3W", debug_cflags => "-g -O0", release_cflags => "-O3", - thread_cflag => "-D_SGI_MP_SOURCE", - bn_ops => "MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT", + thread_cflag => "-D_SGI_MP_SOURCE -pthread", + bn_ops => "RC4_CHAR SIXTY_FOUR_BIT", perlasm_scheme => "n32", dso_scheme => "dlfcn", shared_target => "irix-shared", @@ -239,7 +231,8 @@ debug_cflags => "-g -O0", release_cflags => "-O2", thread_cflag => "-D_SGI_MP_SOURCE", - bn_ops => "DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT", + ex_libs => "-lpthread", + bn_ops => "RC4_CHAR SIXTY_FOUR_BIT", perlasm_scheme => "n32", dso_scheme => "dlfcn", shared_target => "irix-shared", @@ -255,7 +248,7 @@ debug_cflags => "-g -O0", release_cflags => "-O3", thread_cflag => "-D_SGI_MP_SOURCE", - bn_ops => "RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG", + bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG", perlasm_scheme => "64", dso_scheme => "dlfcn", shared_target => "irix-shared", @@ -270,7 +263,8 @@ debug_cflags => "-g -O0", release_cflags => "-O2", thread_cflag => "-D_SGI_MP_SOURCE", - bn_ops => "RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG", + ex_libs => "-lpthread", + bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG", perlasm_scheme => "64", dso_scheme => "dlfcn", shared_target => "irix-shared", @@ -312,9 +306,9 @@ cflags => "-DB_ENDIAN -DBN_DIV2W", debug_cflags => "-O0 -g", release_cflags => "-O3", - thread_cflag => "-D_REENTRANT", - lflags => "-Wl,+s -ldld", - bn_ops => "BN_LLONG DES_PTR DES_UNROLL DES_RISC1", + thread_cflag => "-pthread", + ex_libs => "-Wl,+s -ldld", + bn_ops => "BN_LLONG", dso_scheme => "dl", shared_target => "hpux-shared", shared_cflag => "-fPIC", @@ -332,8 +326,8 @@ debug_cflags => "-O0 -g", release_cflags => "-O3", thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT", + ex_libs => "-ldl", + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", dso_scheme => "dlfcn", shared_target => "hpux-shared", shared_cflag => "-fpic", @@ -352,8 +346,8 @@ debug_cflags => "+O0 +d -g", release_cflags => "+O3", thread_cflag => "-D_REENTRANT", - lflags => "-Wl,+s -ldld", - bn_ops => "MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT", + ex_libs => "-Wl,+s -ldld -lpthread", + bn_ops => "RC4_CHAR", dso_scheme => "dl", shared_target => "hpux-shared", shared_cflag => "+Z", @@ -362,7 +356,7 @@ }, "hpux-parisc1_1-cc" => { inherit_from => [ "hpux-parisc-cc", asm("parisc11_asm") ], - cflags => sub { join(" ","+DA1.1",@_); }, + cflags => add_before(" ", "+DA1.1"), multilib => "/pa1.1", }, "hpux64-parisc2-cc" => { @@ -372,8 +366,8 @@ debug_cflags => "+O0 +d -g", release_cflags => "+O3", thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT", + ex_libs => "-ldl -lpthread", + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", dso_scheme => "dlfcn", shared_target => "hpux-shared", shared_cflag => "+Z", @@ -390,8 +384,8 @@ debug_cflags => "+O0 +d -g", release_cflags => "+O2", thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT", + ex_libs => "-ldl -lpthread", + bn_ops => "SIXTY_FOUR_BIT", dso_scheme => "dlfcn", shared_target => "hpux-shared", shared_cflag => "+Z", @@ -408,8 +402,8 @@ debug_cflags => "+O0 +d -g", release_cflags => "+O3", thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT", + ex_libs => "-ldl -lpthread", + bn_ops => "SIXTY_FOUR_BIT_LONG", dso_scheme => "dlfcn", shared_target => "hpux-shared", shared_cflag => "+Z", @@ -424,9 +418,9 @@ cflags => "-DB_ENDIAN", debug_cflags => "-O0 -g", release_cflags => "-O3", - thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT", + thread_cflag => "-pthread", + ex_libs => "-ldl", + bn_ops => "SIXTY_FOUR_BIT", dso_scheme => "dlfcn", shared_target => "hpux-shared", shared_cflag => "-fpic", @@ -440,9 +434,9 @@ cflags => "-mlp64 -DB_ENDIAN", debug_cflags => "-O0 -g", release_cflags => "-O3", - thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT", + thread_cflag => "-pthread", + ex_libs => "-ldl", + bn_ops => "SIXTY_FOUR_BIT_LONG", dso_scheme => "dlfcn", shared_target => "hpux-shared", shared_cflag => "-fpic", @@ -457,25 +451,17 @@ cflags => "-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB", thread_cflag => "(unknown)", sys_id => "MPE", - lflags => "-L/SYSLOG/PUB -lsyslog -lsocket -lcurses", - bn_ops => "BN_LLONG DES_PTR DES_UNROLL DES_RISC1", + ex_libs => "-L/SYSLOG/PUB -lsyslog -lsocket -lcurses", + bn_ops => "BN_LLONG", }, #### DEC Alpha OSF/1/Tru64 targets. -# -# "What's in a name? That which we call a rose -# By any other word would smell as sweet." -# -# - William Shakespeare, "Romeo & Juliet", Act II, scene II. -# -# For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version -# "osf1-alpha-gcc" => { inherit_from => [ asm("alpha_asm") ], cc => "gcc", cflags => "-O3", thread_cflag => "(unknown)", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1", + bn_ops => "SIXTY_FOUR_BIT_LONG", dso_scheme => "dlfcn", shared_target => "alpha-osf1-shared", shared_extension => ".so", @@ -485,7 +471,7 @@ cc => "cc", cflags => "-std1 -tune host -O4 -readonly_strings", thread_cflag => "(unknown)", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK", + bn_ops => "SIXTY_FOUR_BIT_LONG", dso_scheme => "dlfcn", shared_target => "alpha-osf1-shared", shared_extension => ".so", @@ -495,7 +481,7 @@ cc => "cc", cflags => "-std1 -tune host -fast -readonly_strings", thread_cflag => "-pthread", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK", + bn_ops => "SIXTY_FOUR_BIT_LONG", dso_scheme => "dlfcn", shared_target => "alpha-osf1-shared", shared_ldflag => "-msym", @@ -510,11 +496,11 @@ "linux-generic32" => { cc => "gcc", cflags => "-Wall", - debug_cflags => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG", + debug_cflags => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG", release_cflags => "-O3", - thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR", + thread_cflag => "-pthread", + ex_libs => "-ldl", + bn_ops => "BN_LLONG RC4_CHAR", dso_scheme => "dlfcn", shared_target => "linux-shared", shared_cflag => "-fPIC", @@ -522,7 +508,7 @@ }, "linux-generic64" => { inherit_from => [ "linux-generic32" ], - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR", + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", }, "linux-ppc" => { @@ -582,6 +568,13 @@ inherit_from => [ "linux-generic64", asm("aarch64_asm") ], perlasm_scheme => "linux64", }, + "linux-arm64ilp32" => { # https://wiki.linaro.org/Platform/arm64-ilp32 + inherit_from => [ "linux-generic32", asm("aarch64_asm") ], + cflags => "-mabi=ilp32 -Wall", + bn_ops => "SIXTY_FOUR_BIT RC4_CHAR", + perlasm_scheme => "linux64", + shared_ldflag => "-mabi=ilp32", + }, "linux-mips32" => { # Configure script adds minimally required -march for assembly @@ -596,7 +589,7 @@ "linux-mips64" => { inherit_from => [ "linux-generic32", asm("mips64_asm") ], cflags => "-mabi=n32 -Wall -DBN_DIV3W", - bn_ops => "SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR", + bn_ops => "SIXTY_FOUR_BIT RC4_CHAR", perlasm_scheme => "n32", shared_ldflag => "-mabi=n32", multilib => "32", @@ -614,10 +607,10 @@ inherit_from => [ "linux-generic32", asm("x86_elf_asm") ], cc => "gcc", cflags => "-march=i486 -DL_ENDIAN -Wall", - debug_cflags => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG", + debug_cflags => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG", release_cflags => "-O3 -fomit-frame-pointer", - debug_lflags => "-lefence", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + debug_ex_libs => "-lefence", + bn_ops => "BN_LLONG", }, "linux-aout" => { inherit_from => [ asm("x86_asm") ], @@ -626,14 +619,14 @@ debug_cflags => "-O0 -g", release_cflags => "-O3 -fomit-frame-pointer", thread_cflag => "(unknown)", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", perlasm_scheme => "a.out", }, "linux-x86_64" => { inherit_from => [ "linux-generic64", asm("x86_64_asm") ], cflags => "-m64 -DL_ENDIAN -Wall", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT_LONG", perlasm_scheme => "elf", shared_ldflag => "-m64", multilib => "64", @@ -641,12 +634,12 @@ "linux-x86_64-clang" => { inherit_from => [ "linux-x86_64" ], cc => "clang", - cflags => "-m64 -DL_ENDIAN -Weverything $clang_disabled_warnings -Qunused-arguments", + cflags => "-m64 -DL_ENDIAN -Wall -Wextra -Qunused-arguments", }, "linux-x32" => { inherit_from => [ "linux-generic32", asm("x86_64_asm") ], cflags => "-mx32 -DL_ENDIAN -Wall", - bn_ops => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT", perlasm_scheme => "elf", shared_ldflag => "-mx32", multilib => "x32", @@ -654,13 +647,12 @@ "linux-ia64" => { inherit_from => [ "linux-generic64", asm("ia64_asm") ], - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT", + bn_ops => "SIXTY_FOUR_BIT_LONG", }, "linux64-s390x" => { inherit_from => [ "linux-generic64", asm("s390x_asm") ], cflags => "-m64 -Wall -DB_ENDIAN", - thread_cflag => "-D_REENTRANT", perlasm_scheme => "64", shared_ldflag => "-m64", multilib => "64", @@ -695,7 +687,7 @@ # patiently assisted with debugging of following two configs. "linux-sparcv8" => { inherit_from => [ "linux-generic32", asm("sparcv8_asm") ], - cflags => "-mv8 -Wall -DB_ENDIAN -DBN_DIV2W", + cflags => "-mcpu=v8 -Wall -DB_ENDIAN -DBN_DIV2W", }, "linux-sparcv9" => { # it's a real mess with -mcpu=ultrasparc option under Linux, @@ -708,7 +700,7 @@ # GCC 3.1 is a requirement inherit_from => [ "linux-generic64", asm("sparcv9_asm") ], cflags => "-m64 -mcpu=ultrasparc -Wall -DB_ENDIAN", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR", + bn_ops => "BN_LLONG RC4_CHAR", shared_ldflag => "-m64", multilib => "64", }, @@ -716,7 +708,7 @@ "linux-alpha-gcc" => { inherit_from => [ "linux-generic64", asm("alpha_asm") ], cflags => "-DL_ENDIAN", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT_LONG", }, "linux-c64xplus" => { # TI_CGT_C6000_7.3.x is a requirement @@ -740,26 +732,89 @@ }, #### Android: linux-* but without pointers to headers and libs. + # + # It takes pair of prior-set environment variables to make it work: + # + # CROSS_SYSROOT=/some/where/android-ndk-/platforms/android-/arch-< + # CROSS_COMPILE= + # + # As well as PATH adjusted to cover ${CROSS_COMPILE}gcc and company. + # For example to compile for ICS and ARM with NDK 10d, you'd: + # + # ANDROID_NDK=/some/where/android-ndk-10d + # CROSS_SYSROOT=$ANDROID_NDK/platforms/android-14/arch-arm + # CROSS_COMPILE=arm-linux-adroideabi- + # PATH=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuild/linux-x86_64/ + # "android" => { inherit_from => [ "linux-generic32" ], - cflags => "-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -Wall", + # Special note about unconditional -fPIC and -pie. The underlying + # reason is that Lollipop refuses to run non-PIE. But what about + # older systems and NDKs? -fPIC was never problem, so the only + # concern if -pie. Older toolchains, e.g. r4, appear to handle it + # and binaries turn mostly functional. "Mostly" means that oldest + # Androids, such as Froyo, fail to handle executable, but newer + # systems are perfectly capable of executing binaries targeting + # Froyo. Keep in mind that in the nutshell Android builds are + # about JNI, i.e. shared libraries, not applications. + cflags => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack -Wall", debug_cflags => "-O0 -g", + lflags => "-pie", + ex_libs => "-ldl", + shared_cflag => "", }, "android-x86" => { inherit_from => [ "android", asm("x86_asm") ], release_cflags => "-O3 -fomit-frame-pointer", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", perlasm_scheme => "android", }, - "android-armv7" => { + ################################################################ + # Contemporary Android applications can provide multiple JNI + # providers in .apk, targeting multiple architectures. Among + # them there is "place" for two ARM flavours: generic eabi and + # armv7-a/hard-float. However, it should be noted that OpenSSL's + # ability to engage NEON is not constrained by ABI choice, nor + # is your ability to call OpenSSL from your application code + # compiled with floating-point ABI other than default 'soft'. + # [Latter thanks to __attribute__((pcs("aapcs"))) declaration.] + # This means that choice of ARM libraries you provide in .apk + # is driven by application needs. For example if application + # itself benefits from NEON or is floating-point intensive, then + # it might be appropriate to provide both libraries. Otherwise + # just generic eabi would do. But in latter case it would be + # appropriate to + # + # ./Configure android-armeabi -D__ARM_MAX_ARCH__=8 + # + # in order to build "universal" binary and allow OpenSSL take + # advantage of NEON when it's available. + # + "android-armeabi" => { inherit_from => [ "android", asm("armv4_asm") ], - cflags => sub { join (" ","-march=armv7-a",@_); }, + }, + "android-armv7" => { + inherit_from => [ "android-armeabi" ], + cflags => add_before(" ", "-march=armv7-a"), }, "android-mips" => { inherit_from => [ "android", asm("mips32_asm") ], perlasm_scheme => "o32", }, + "android64" => { + inherit_from => [ "linux-generic64" ], + cflags => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack -Wall", + debug_cflags => "-O0 -g", + lflags => "-pie", + ex_libs => "-ldl", + shared_cflag => "", + }, + "android64-aarch64" => { + inherit_from => [ "android64", asm("aarch64_asm") ], + perlasm_scheme => "linux64", + }, + #### *BSD "BSD-generic32" => { # As for thread_cflag. Idea is to maintain "collective" set of @@ -769,12 +824,12 @@ # expands it as -lc_r, which has to be accompanied by explicit # -D_THREAD_SAFE and sometimes -D_REENTRANT. FreeBSD 5.x # expands it as -lc_r, which seems to be sufficient? - cc => "gcc", + cc => "cc", cflags => "-Wall", debug_cflags => "-O0 -g", release_cflags => "-O3", thread_cflag => "-pthread -D_THREAD_SAFE -D_REENTRANT", - bn_ops => "BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL", + bn_ops => "BN_LLONG", dso_scheme => "dlfcn", shared_target => "bsd-gcc-shared", shared_cflag => "-fPIC", @@ -782,14 +837,14 @@ }, "BSD-generic64" => { inherit_from => [ "BSD-generic32" ], - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT_LONG", }, "BSD-x86" => { inherit_from => [ "BSD-generic32", asm("x86_asm") ], cflags => "-DL_ENDIAN -Wall", release_cflags => "-O3 -fomit-frame-pointer", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", shared_target => "bsd-shared", perlasm_scheme => "a.out", }, @@ -800,7 +855,7 @@ "BSD-sparcv8" => { inherit_from => [ "BSD-generic32", asm("sparcv8_asm") ], - cflags => "-mv8 -Wall -DB_ENDIAN", + cflags => "-mcpu=v8 -Wall -DB_ENDIAN", }, "BSD-sparc64" => { # -DMD32_REG_T=int doesn't actually belong in sparc64 target, it @@ -808,19 +863,19 @@ # triggered by RIPEMD160 code. inherit_from => [ "BSD-generic64", asm("sparcv9_asm") ], cflags => "-DB_ENDIAN -DMD32_REG_T=int -Wall", - bn_ops => "BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR", + bn_ops => "BN_LLONG", }, "BSD-ia64" => { inherit_from => [ "BSD-generic64", asm("ia64_asm") ], cflags => "-DL_ENDIAN -Wall", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT", + bn_ops => "SIXTY_FOUR_BIT_LONG", }, "BSD-x86_64" => { inherit_from => [ "BSD-generic64", asm("x86_64_asm") ], cflags => "-DL_ENDIAN -Wall", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT_LONG", perlasm_scheme => "elf", }, @@ -829,8 +884,8 @@ cc => "gcc", cflags => "-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall", thread_cflag => "(unknown)", - lflags => "-ldl", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-ldl", + bn_ops => "BN_LLONG", dso_scheme => "dlfcn", shared_target => "bsd-gcc-shared", shared_cflag => "-fPIC", @@ -842,14 +897,14 @@ cflags => "-O -Wall", unistd => "", thread_cflag => "(unknown)", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", }, "nextstep3.3" => { cc => "cc", cflags => "-O3 -Wall", unistd => "", thread_cflag => "(unknown)", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", }, # QNX @@ -857,11 +912,10 @@ cc => "cc", cflags => "-DL_ENDIAN -DTERMIO", thread_cflag => "(unknown)", - bn_ops => "${x86_gcc_des} ${x86_gcc_opts}", }, "QNX6" => { cc => "gcc", - lflags => "-lsocket", + ex_libs => "-lsocket", dso_scheme => "dlfcn", shared_target => "bsd-gcc-shared", shared_cflag => "-fPIC", @@ -871,8 +925,7 @@ inherit_from => [ asm("x86_elf_asm") ], cc => "gcc", cflags => "-DL_ENDIAN -O2 -Wall", - lflags => "-lsocket", - bn_ops => "${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-lsocket", dso_scheme => "dlfcn", shared_target => "bsd-gcc-shared", shared_cflag => "-fPIC", @@ -895,23 +948,21 @@ cc => "cc", cflags => "-DFILIO_H -DNO_STRINGS_H", thread_cflag => "-Kthread", - lflags => "-lsocket -lnsl -lresolv -lx", - bn_ops => "${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-lsocket -lnsl -lresolv -lx", }, "unixware-2.1" => { cc => "cc", cflags => "-O -DFILIO_H", thread_cflag => "-Kthread", - lflags => "-lsocket -lnsl -lresolv -lx", - bn_ops => "${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-lsocket -lnsl -lresolv -lx", }, "unixware-7" => { inherit_from => [ asm("x86_elf_asm") ], cc => "cc", cflags => "-O -DFILIO_H -Kalloca", thread_cflag => "-Kthread", - lflags => "-lsocket -lnsl", - bn_ops => "BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}", + ex_libs => "-lsocket -lnsl", + bn_ops => "BN_LLONG", perlasm_scheme => "elf-1", dso_scheme => "dlfcn", shared_target => "svr5-shared", @@ -923,8 +974,8 @@ cc => "gcc", cflags => "-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -march=pentium -Wall", thread_cflag => "-D_REENTRANT", - lflags => "-lsocket -lnsl", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-lsocket -lnsl", + bn_ops => "BN_LLONG", perlasm_scheme => "elf-1", dso_scheme => "dlfcn", shared_target => "gnu-shared", @@ -937,8 +988,7 @@ cc => "cc", cflags => "-belf", thread_cflag => "(unknown)", - lflags => "-lsocket -lnsl", - bn_ops => "${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-lsocket -lnsl", perlasm_scheme => "elf-1", dso_scheme => "dlfcn", shared_target => "svr3-shared", @@ -950,8 +1000,8 @@ cc => "gcc", cflags => "-O3 -fomit-frame-pointer", thread_cflag => "(unknown)", - lflags => "-lsocket -lnsl", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-lsocket -lnsl", + bn_ops => "BN_LLONG", perlasm_scheme => "elf-1", dso_scheme => "dlfcn", shared_target => "svr3-shared", @@ -1033,8 +1083,8 @@ cc => "c89", cflags => "-O -XLLML -XLLMK -XL -DB_ENDIAN -DCHARSET_EBCDIC", thread_cflag => "(unknown)", - lflags => "-lsocket -lnsl", - bn_ops => "THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR", + ex_libs => "-lsocket -lnsl", + bn_ops => "THIRTY_TWO_BIT RC4_CHAR", }, # OS/390 Unix an EBCDIC-based Unix system on IBM mainframe @@ -1045,7 +1095,7 @@ cc => "c89.sh", cflags => "-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE", thread_cflag => "(unknown)", - bn_ops => "THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR", + bn_ops => "THIRTY_TWO_BIT RC4_CHAR", }, #### Visual C targets @@ -1061,45 +1111,51 @@ cc => "cl", cflags => "-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE", dso_scheme => "win32", + build_scheme => "mk1mf", }, "VC-WIN64I" => { inherit_from => [ "VC-common", asm("ia64_asm") ], - cflags => sub { join(" ",@_,"-DUNICODE -D_UNICODE"); }, + cflags => add(" ", "-DUNICODE -D_UNICODE"), sys_id => "WIN64I", - bn_ops => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN", + bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN", bn_obj => sub { my $r=join(" ",@_); $r=~s/bn\-//; $r; }, rc4_obj => "", perlasm_scheme => "ias", + build_scheme => [ "mk1mf", "VC-W64" ], }, "VC-WIN64A" => { inherit_from => [ "VC-common", asm("x86_64_asm") ], - cflags => sub { join(" ",@_,"-DUNICODE -D_UNICODE"); }, + cflags => add(" ", "-DUNICODE -D_UNICODE"), sys_id => "WIN64A", - bn_ops => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN", + bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN", bn_obj => sub { my $r=join(" ",@_); $r=~s/x86_64\-gcc/bn_asm/; $r; }, perlasm_scheme => "auto", + build_scheme => [ "mk1mf", "VC-W64" ], }, "VC-WIN32" => { # x86 Win32 target defaults to ANSI API, if you want UNICODE, # configure with 'perl Configure VC-WIN32 -DUNICODE -D_UNICODE' inherit_from => [ "VC-common", asm("x86_asm") ], sys_id => "WIN32", - bn_ops => "BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}", + bn_ops => "BN_LLONG EXPORT_VAR_AS_FN", perlasm_scheme => "win32n", + build_scheme => [ "mk1mf", "VC-W32" ], }, "VC-CE" => { cc => "cl", sys_id => "WINCE", - bn_ops => "BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}", + bn_ops => "BN_LLONG EXPORT_VAR_AS_FN", dso_scheme => "win32", + build_scheme => [ "mk1mf", "VC-WCE" ], }, #### Borland C++ 4.5 "BC-32" => { cc => "bcc32", sys_id => "WIN32", - bn_ops => "BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN", + bn_ops => "BN_LLONG EXPORT_VAR_AS_FN", dso_scheme => "win32", + build_scheme => [ "mk1mf", "BC" ], }, #### MinGW @@ -1108,17 +1164,17 @@ cc => "gcc", cflags => "-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -march=i486 -Wall", debug_cflags => "-g -O0", - release_clags => "-O3 -fomit-frame-pointer", + release_cflags => "-O3 -fomit-frame-pointer", thread_cflag => "-D_MT", sys_id => "MINGW32", - lflags => "-lws2_32 -lgdi32 -lcrypt32", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN", + ex_libs => "-lws2_32 -lgdi32 -lcrypt32", + bn_ops => "BN_LLONG EXPORT_VAR_AS_FN", perlasm_scheme => "coff", dso_scheme => "win32", shared_target => "cygwin-shared", shared_cflag => "-D_WINDLL -DOPENSSL_USE_APPLINK", shared_ldflag => "-mno-cygwin", - shared_extension => ".dll.a", + shared_extension => ".dll", }, "mingw64" => { # As for OPENSSL_USE_APPLINK. Applink makes it possible to use @@ -1133,17 +1189,24 @@ cc => "gcc", cflags => "-mno-cygwin -DL_ENDIAN -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE", debug_cflags => "-g -O0", - release_clags => "-O3", + release_cflags => "-O3", thread_cflag => "-D_MT", sys_id => "MINGW64", - lflags => "-lws2_32 -lgdi32 -lcrypt32", - bn_ops => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN", + ex_libs => "-lws2_32 -lgdi32 -lcrypt32", + bn_ops => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN", perlasm_scheme => "mingw64", dso_scheme => "win32", shared_target => "cygwin-shared", shared_cflag => "-D_WINDLL", shared_ldflag => "-mno-cygwin", - shared_extension => ".dll.a", + shared_extension => ".dll", + }, + +#### UEFI + "UEFI" => { + cc => "cc", + cflags => "-DL_ENDIAN -O", + sys_id => "UEFI", }, #### UWIN @@ -1151,40 +1214,57 @@ cc => "cc", cflags => "-DTERMIOS -DL_ENDIAN -O -Wall", sys_id => "UWIN", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", dso_scheme => "win32", }, #### Cygwin - "Cygwin" => { + "Cygwin-x86" => { inherit_from => [ asm("x86_asm") ], cc => "gcc", - cflags => "-DTERMIOS -DL_ENDIAN -march=i486 -Wall", + cflags => "-DTERMIOS -DL_ENDIAN -Wall", debug_cflags => "-g -O0", - release_clags => "-O3 -fomit-frame-pointer", + release_cflags => "-O3 -fomit-frame-pointer", sys_id => "CYGWIN", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + bn_ops => "BN_LLONG", perlasm_scheme => "coff", dso_scheme => "dlfcn", shared_target => "cygwin-shared", shared_cflag => "-D_WINDLL", shared_ldflag => "-shared", - shared_extension => ".dll.a", + shared_extension => ".dll", }, "Cygwin-x86_64" => { inherit_from => [ asm("x86_64_asm") ], cc => "gcc", cflags => "-DTERMIOS -DL_ENDIAN -Wall", debug_cflags => "-g -O0", - release_clags => "-O3", + release_cflags => "-O3", sys_id => "CYGWIN", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT_LONG", perlasm_scheme => "mingw64", dso_scheme => "dlfcn", shared_target => "cygwin-shared", shared_cflag => "-D_WINDLL", shared_ldflag => "-shared", - shared_extension => ".dll.a", + shared_extension => ".dll", + }, + # Backward compatibility for those using this target + "Cygwin" => { + inherit_from => [ "Cygwin-x86" ] + }, + # In case someone constructs the Cygwin target name themself + "Cygwin-i386" => { + inherit_from => [ "Cygwin-x86" ] + }, + "Cygwin-i486" => { + inherit_from => [ "Cygwin-x86" ] + }, + "Cygwin-i586" => { + inherit_from => [ "Cygwin-x86" ] + }, + "Cygwin-i686" => { + inherit_from => [ "Cygwin-x86" ] }, #### NetWare from David Ward (dsward@novell.com) @@ -1194,40 +1274,40 @@ # netware-clib => legacy CLib c-runtime support "netware-clib" => { cc => "mwccnlm", - bn_ops => "${x86_gcc_opts}", + build_scheme => [ "mk1mf", "netware" ], }, "netware-clib-bsdsock" => { cc => "mwccnlm", - bn_ops => "${x86_gcc_opts}", + build_scheme => [ "mk1mf", "netware" ], }, "netware-clib-gcc" => { cc => "i586-netware-gcc", cflags => "-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYS_NETWARE -O2 -Wall", - bn_ops => "${x86_gcc_opts}", }, "netware-clib-bsdsock-gcc" => { cc => "i586-netware-gcc", cflags => "-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYS_NETWARE -O2 -Wall", - bn_ops => "${x86_gcc_opts}", }, # netware-libc => LibC/NKS support "netware-libc" => { cc => "mwccnlm", - bn_ops => "BN_LLONG ${x86_gcc_opts}", + bn_ops => "BN_LLONG", + build_scheme => [ "mk1mf", "netware" ], }, "netware-libc-bsdsock" => { cc => "mwccnlm", - bn_ops => "BN_LLONG ${x86_gcc_opts}", + bn_ops => "BN_LLONG", + build_scheme => [ "mk1mf", "netware" ], }, "netware-libc-gcc" => { cc => "i586-netware-gcc", cflags => "-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYS_NETWARE -DTERMIO -O2 -Wall", - bn_ops => "BN_LLONG ${x86_gcc_opts}", + bn_ops => "BN_LLONG", }, "netware-libc-bsdsock-gcc" => { cc => "i586-netware-gcc", cflags => "-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYS_NETWARE -DTERMIO -O2 -Wall", - bn_ops => "BN_LLONG ${x86_gcc_opts}", + bn_ops => "BN_LLONG", }, #### DJGPP @@ -1236,8 +1316,8 @@ cc => "gcc", cflags => "-I/dev/env/WATT_ROOT/inc -DTERMIO -DL_ENDIAN -fomit-frame-pointer -O2 -Wall", sys_id => "MSDOS", - lflags => "-L/dev/env/WATT_ROOT/lib -lwatt", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + ex_libs => "-L/dev/env/WATT_ROOT/lib -lwatt", + bn_ops => "BN_LLONG", perlasm_scheme => "a.out", }, @@ -1265,8 +1345,8 @@ release_cflags => "-O3", thread_cflag => "-D_REENTRANT", sys_id => "MACOSX", - lflags => "-Wl,-search_paths_first%", - bn_ops => "BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR", + plib_lflags => "-Wl,-search_paths_first", + bn_ops => "BN_LLONG RC4_CHAR", perlasm_scheme => "osx32", dso_scheme => "dlfcn", shared_target => "darwin-shared", @@ -1283,7 +1363,7 @@ "darwin64-ppc-cc" => { inherit_from => [ "darwin-common", asm("ppc64_asm") ], cflags => "-arch ppc64 -DB_ENDIAN", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR", + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", perlasm_scheme => "osx64", shared_ldflag => "-arch ppc64 -dynamiclib", }, @@ -1291,14 +1371,14 @@ inherit_from => [ "darwin-common", asm("x86_asm") ], cflags => "-arch i386 -DL_ENDIAN", release_cflags => "-O3 -fomit-frame-pointer", - bn_ops => "BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR", + bn_ops => "BN_LLONG RC4_INT", perlasm_scheme => "macosx", shared_ldflag => "-arch i386 -dynamiclib", }, "darwin64-x86_64-cc" => { inherit_from => [ "darwin-common", asm("x86_64_asm") ], cflags => "-arch x86_64 -DL_ENDIAN -Wall", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL", + bn_ops => "SIXTY_FOUR_BIT_LONG", perlasm_scheme => "macosx", shared_ldflag => "-arch x86_64 -dynamiclib", }, @@ -1323,11 +1403,20 @@ cflags => "-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common", sys_id => "iOS", }, + "ios-cross" => { + inherit_from => [ "darwin-common", asm("armv4_asm") ], + # It should be possible to go below iOS 6 and even add -arch armv6, + # thus targeting iPhone pre-3GS, but it's assumed to be irrelevant + # at this point. + cflags => "-arch armv7 -mios-version-min=6.0.0 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common", + sys_id => "iOS", + perlasm_scheme => "ios32", + }, "ios64-cross" => { inherit_from => [ "darwin-common", asm("aarch64_asm") ], cflags => "-arch arm64 -mios-version-min=7.0.0 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common", sys_id => "iOS", - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR", + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", perlasm_scheme => "ios64", }, @@ -1336,9 +1425,9 @@ inherit_from => [ asm("x86_elf_asm") ], cc => "gcc", cflags => "-DL_ENDIAN -O3 -fomit-frame-pointer -march=i486 -Wall", - thread_cflag => "-D_REENTRANT", - lflags => "-ldl", - bn_ops => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}", + thread_cflag => "-pthread", + ex_libs => "-ldl", + bn_ops => "BN_LLONG", dso_scheme => "dlfcn", shared_target => "linux-shared", shared_cflag => "-fPIC", @@ -1354,13 +1443,13 @@ cc => "ccppc", cflags => "-D_REENTRANT -mrtp -mhard-float -mstrict-align -fno-implicit-fp -DPPC32_fp60x -O2 -fstrength-reduce -fno-builtin -fno-strict-aliasing -Wall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/usr/h/wrn/coreip", sys_id => "VXWORKS", - lflags => "-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/common", + ex_libs => "-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/common", }, "vxworks-ppcgen" => { cc => "ccppc", cflags => "-D_REENTRANT -mrtp -msoft-float -mstrict-align -O1 -fno-builtin -fno-strict-aliasing -Wall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/usr/h/wrn/coreip", sys_id => "VXWORKS", - lflags => "-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/sfcommon", + ex_libs => "-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/sfcommon", }, "vxworks-ppc405" => { cc => "ccppc", @@ -1376,7 +1465,7 @@ }, "vxworks-ppc750-debug" => { cc => "ccppc", - cflags => "-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g", + cflags => "-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g", sys_id => "VXWORKS", lflags => "-r", }, @@ -1399,7 +1488,7 @@ cflags => "-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip", thread_cflag => "-D_REENTRANT", sys_id => "VXWORKS", - lflags => "-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon", + ex_libs => "-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon", perlasm_scheme => "o32", ranlib => "ranlibmips", }, @@ -1409,7 +1498,8 @@ cc => "$ENV{'CC'}", cflags => "\$(CFLAGS)", thread_cflag => "-D_REENTRANT", - lflags => "\$(LDFLAGS) \$(LDLIBS)", + plib_lflags => "\$(LDFLAGS)", + ex_libs => "\$(LDLIBS)", bn_ops => "BN_LLONG", dso_scheme => "$ENV{'LIBSSL_dlfcn'}", shared_target => "linux-shared", @@ -1422,7 +1512,8 @@ cc => "$ENV{'CC'}", cflags => "\$(CFLAGS)", thread_cflag => "-D_REENTRANT", - lflags => "\$(LDFLAGS) \$(LDLIBS)", + plib_lflags => "\$(LDFLAGS)", + ex_libs => "\$(LDLIBS)", bn_ops => "SIXTY_FOUR_BIT_LONG", dso_scheme => "$ENV{'LIBSSL_dlfcn'}", shared_target => "linux-shared", @@ -1432,4 +1523,64 @@ ranlib => "$ENV{'RANLIB'}", }, + ##### VMS + "vms-generic" => { + template => 1, + cc => "CC/DECC", + cflags => "/STANDARD=RELAXED/NOLIST/PREFIX=ALL/NAMES=(AS_IS,SHORTENED)", + debug_cflags => "/NOOPTIMIZE/DEBUG", + release_cflags => "/OPTIMIZE/NODEBUG", + lflags => "/MAP", + debug_lflags => "/DEBUG/TRACEBACK", + release_lflags => "/NODEBUG/NOTRACEBACK", + shared_target => "vms-shared", + + apps_extra_src => "vms_decc_init.c", + build_file => "descrip.mms", + build_scheme => [ "unified", "VMS" ], + }, + + # VMS on VAX is *unsupported* + #"vms-asm" => { + # template => 1, + # bn_obj => "[.asm]vms.obj vms-helper.obj" + #}, + #"vms-vax" => { + # inherit_from => [ "vms-generic", asm("vms-asm") ], + # as => "MACRO", + # debug_aflags => "/NOOPTIMIZE/DEBUG", + # release_aflags => "/OPTIMIZE/NODEBUG", + # bn_opts => "THIRTY_TWO_BIT RC4_CHAR RC4_CHUNK DES_PTR BF_PTR", + #}, + "vms-alpha" => { + inherit_from => [ "vms-generic" ], + #as => "???", + #debug_aflags => "/NOOPTIMIZE/DEBUG", + #release_aflags => "/OPTIMIZE/NODEBUG", + bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR", + }, + "vms-alpha-P32" => { + inherit_from => [ "vms-alpha" ], + cflags => add("/POINTER_SIZE=32"), + }, + "vms-alpha-P64" => { + inherit_from => [ "vms-alpha" ], + cflags => add("/POINTER_SIZE=64"), + }, + "vms-ia64" => { + inherit_from => [ "vms-generic" ], + #as => "I4S", + #debug_aflags => "/NOOPTIMIZE/DEBUG", + #release_aflags => "/OPTIMIZE/NODEBUG", + bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR", + }, + "vms-ia64-P32" => { + inherit_from => [ "vms-ia64" ], + cflags => add("/POINTER_SIZE=32"), + }, + "vms-ia64-P64" => { + inherit_from => [ "vms-ia64" ], + cflags => add("/POINTER_SIZE=64"), + }, + );