X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configurations%2F10-main.conf;h=cc1a207ea8ce58c66fc2d5a0e4a5f53fff16342d;hp=4a8fb00ccb60596cfab63b0ea355c6c3df86afed;hb=2b58c83e6271cd9ca4cde02d58cb428c351908f9;hpb=ef5b8296a1e29013281d655914fe1b778030fb01 diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 4a8fb00ccb..cc1a207ea8 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -9,15 +9,39 @@ sub vc_win64a_info { $vc_win64a_info = { as => "nasm", asflags => "-f win64 -DNEAR -Ox -g", asoutflag => "-o" }; - } else { + } elsif ($disabled{asm}) { $vc_win64a_info = { as => "ml64", asflags => "/c /Cp /Cx /Zi", asoutflag => "/Fo" }; + } else { + die "NASM not found - please read INSTALL and NOTES.WIN for further details\n"; } } return $vc_win64a_info; } +my $vc_win32_info = {}; +sub vc_win32_info { + unless (%$vc_win32_info) { + my $ver=`nasm -v 2>NUL`; + my $vew=`nasmw -v 2>NUL`; + if ($ver ne "" || $vew ne "") { + $vc_win32_info = { as => $ver ge $vew ? "nasm" : "nasmw", + asflags => "-f win32", + asoutflag => "-o", + perlasm_scheme => "win32n" }; + } elsif ($disabled{asm}) { + $vc_win32_info = { as => "ml", + asflags => "/nologo /Cp /coff /c /Cx /Zi", + asoutflag => "/Fo", + perlasm_scheme => "win32" }; + } else { + die "NASM not found - please read INSTALL and NOTES.WIN for further details\n"; + } + } + return $vc_win32_info; +} + my $vc_wince_info = {}; sub vc_wince_info { unless (%$vc_wince_info) { @@ -82,6 +106,7 @@ sub vms_info { my $pointer_size_str = $pointer_size == 0 ? "" : "$pointer_size"; $vms_info->{disable_warns} = [ ]; + $vms_info->{pointer_size} = $pointer_size_str; if ($pointer_size == 64) { `PIPE CC /NOCROSS_REFERENCE /NOLIST /NOOBJECT /WARNINGS = DISABLE = ( MAYLOSEDATA3, EMPTYFILE ) NL: 2> NL:`; if ($? == 0) { @@ -279,44 +304,16 @@ sub vms_info { multilib => "/64", }, -#### IRIX 5.x configs -# -mips2 flag is added by ./config when appropriate. - "irix-gcc" => { - inherit_from => [ "BASE_unix", asm("mips32_asm") ], - cc => "gcc", - cflags => picker(default => "-DB_ENDIAN", - debug => "-g -O0", - release => "-O3"), - bn_ops => "BN_LLONG RC4_CHAR", - thread_scheme => "(unknown)", - perlasm_scheme => "o32", - dso_scheme => "dlfcn", - shared_target => "irix-shared", - shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - }, - "irix-cc" => { - inherit_from => [ "BASE_unix", asm("mips32_asm") ], - cc => "cc", - cflags => picker(default => "-use_readonly_const -DB_ENDIAN", - debug => "-g -O0", - release => "-O2"), - bn_ops => "BN_LLONG RC4_CHAR", - thread_scheme => "(unknown)", - perlasm_scheme => "o32", - dso_scheme => "dlfcn", - shared_target => "irix-shared", - shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - }, #### IRIX 6.x configs -# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke -# './Configure irix-cc -o32' manually. +# Only N32 and N64 ABIs are supported. "irix-mips3-gcc" => { inherit_from => [ "BASE_unix", asm("mips64_asm") ], cc => "gcc", cflags => combine(picker(default => "-mabi=n32 -DB_ENDIAN -DBN_DIV3W", debug => "-g -O0", release => "-O3"), - threads("-D_SGI_MP_SOURCE -pthread")), + threads("-D_SGI_MP_SOURCE")), + ex_libs => add(threads("-lpthread")), bn_ops => "RC4_CHAR SIXTY_FOUR_BIT", thread_scheme => "pthreads", perlasm_scheme => "n32", @@ -351,6 +348,7 @@ sub vms_info { debug => "-g -O0", release => "-O3"), threads("-D_SGI_MP_SOURCE")), + ex_libs => add(threads("-lpthread")), bn_ops => "RC4_CHAR SIXTY_FOUR_BIT_LONG", thread_scheme => "pthreads", perlasm_scheme => "64", @@ -402,9 +400,9 @@ sub vms_info { # crypto/sha/sha_lcl.h. # - originally there were 32-bit hpux-parisc2-* targets. They were # scrapped, because a) they were not interchangeable with other 32-bit -# targets; a) when critical 32-bit assembly modules detect if they -# are executed on PA-RISC 2.0 and thus adequate performance is -# provided. +# targets; b) performance-critical 32-bit assembly modules implement +# even PA-RISC 2.0-specific code paths, which are chosen at run-time, +# thus adequate performance is provided even with PA-RISC 1.1 build. # "hpux-parisc-gcc" => { inherit_from => [ "BASE_unix" ], @@ -571,23 +569,18 @@ sub vms_info { bn_ops => "BN_LLONG", }, -#### DEC Alpha OSF/1/Tru64 targets. - "osf1-alpha-gcc" => { +#### DEC Alpha Tru64 targets. Tru64 is marketing name for OSF/1 version 4 +#### and forward. In reality 'uname -s' still returns "OSF1". Originally +#### there were even osf1-* configs targeting prior versions provided, +#### but not anymore... + "tru64-alpha-gcc" => { inherit_from => [ "BASE_unix", asm("alpha_asm") ], cc => "gcc", - cflags => "-O3", - bn_ops => "SIXTY_FOUR_BIT_LONG", - thread_scheme => "(unknown)", - dso_scheme => "dlfcn", - shared_target => "alpha-osf1-shared", - shared_extension => ".so", - }, - "osf1-alpha-cc" => { - inherit_from => [ "BASE_unix", asm("alpha_asm") ], - cc => "cc", - cflags => "-std1 -tune host -O4 -readonly_strings", + cflags => combine("-std=c9x -D_XOPEN_SOURCE=500 -D_OSF_SOURCE -O3", + threads("-pthread")), + ex_libs => "-lrt", # for mlock(2) bn_ops => "SIXTY_FOUR_BIT_LONG", - thread_scheme => "(unknown)", + thread_scheme => "pthreads", dso_scheme => "dlfcn", shared_target => "alpha-osf1-shared", shared_extension => ".so", @@ -595,8 +588,9 @@ sub vms_info { "tru64-alpha-cc" => { inherit_from => [ "BASE_unix", asm("alpha_asm") ], cc => "cc", - cflags => combine("-std1 -tune host -fast -readonly_strings", + cflags => combine("-std1 -D_XOPEN_SOURCE=500 -D_OSF_SOURCE -tune host -fast -readonly_strings", threads("-pthread")), + ex_libs => "-lrt", # for mlock(2) bn_ops => "SIXTY_FOUR_BIT_LONG", thread_scheme => "pthreads", dso_scheme => "dlfcn", @@ -872,17 +866,14 @@ sub vms_info { # 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 + # concern is -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 => picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack -Wall", - debug => "-O0 -g", - release => "-O3"), - lflags => "-pie", - shared_cflag => "", + cflags => add(picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack")), + bin_cflags => "-pie", }, "android-x86" => { inherit_from => [ "android", asm("x86_asm") ], @@ -921,11 +912,8 @@ sub vms_info { "android64" => { inherit_from => [ "linux-generic64" ], - cflags => picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack -Wall", - debug => "-O0 -g", - release => "-O3"), - lflags => "-pie", - shared_cflag => "", + cflags => add(picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack")), + bin_cflags => "-pie", }, "android64-aarch64" => { inherit_from => [ "android64", asm("aarch64_asm") ], @@ -1258,16 +1246,15 @@ sub vms_info { return [ @defs ]; }), coutflag => "/Fo", - rc => "rc", - rcoutflag => "/fo", - lib_cflags => add("/Zi /Fdlib"), - dso_cflags => "/Zi", + lib_cflags => add("/Zi /Fdossl_static"), + dso_cflags => "/Zi /Fddso", bin_cflags => "/Zi /Fdapp", lflags => add("/debug"), shared_ldflag => "/dll", shared_target => "win-shared", # meaningless except it gives Configure a hint thread_scheme => "winthreads", dso_scheme => "win32", + apps_aux_src => add("win32_init.c"), }, "VC-noCE-common" => { inherit_from => [ "VC-common" ], @@ -1280,7 +1267,7 @@ sub vms_info { release => sub { ($disabled{shared} ? "" : "/MD") - ." /Ox /O2 /Ob2"; + ." /O2"; })), lib_cflags => add(sub { $disabled{shared} ? "/MT /Zl" : () }), # Following might/should appears controversial, i.e. defining @@ -1344,11 +1331,9 @@ sub vms_info { # configure with 'perl Configure VC-WIN32 -DUNICODE -D_UNICODE' inherit_from => [ "VC-noCE-common", asm("x86_asm"), sub { $disabled{shared} ? () : "uplink_common" } ], - as => sub { my $ver=`nasm -v 2>NUL`; - my $vew=`nasmw -v 2>NUL`; - return $ver ge $vew ? "nasm" : "nasmw" }, - asflags => "-f win32", - asoutflag => "-o", + as => sub { vc_win32_info()->{as} }, + asflags => sub { vc_win32_info()->{asflags} }, + asoutflag => sub { vc_win32_info()->{asoutflag} }, ex_libs => add(sub { my @ex_libs = (); # WIN32 UNICODE build gets linked with unicows.lib for @@ -1359,7 +1344,7 @@ sub vms_info { }), sys_id => "WIN32", bn_ops => "BN_LLONG EXPORT_VAR_AS_FN", - perlasm_scheme => "win32n", + perlasm_scheme => sub { vc_win32_info()->{perlasm_scheme} }, build_scheme => add("VC-W32", { separator => undef }), }, "VC-CE" => { @@ -1430,6 +1415,7 @@ sub vms_info { shared_rcflag => "--target=pe-i386", shared_extension => ".dll", multilib => "", + apps_aux_src => add("win32_init.c"), }, "mingw64" => { # As for OPENSSL_USE_APPLINK. Applink makes it possible to use @@ -1458,6 +1444,7 @@ sub vms_info { shared_rcflag => "--target=pe-x86-64", shared_extension => ".dll", multilib => "64", + apps_aux_src => add("win32_init.c"), }, #### UEFI @@ -1529,17 +1516,6 @@ sub vms_info { inherit_from => [ "Cygwin-x86" ] }, -#### DJGPP - "DJGPP" => { - inherit_from => [ asm("x86_asm") ], - cc => "gcc", - cflags => "-I/dev/env/WATT_ROOT/inc -DTERMIO -DL_ENDIAN -fomit-frame-pointer -O2 -Wall", - sys_id => "MSDOS", - ex_libs => add("-L/dev/env/WATT_ROOT/lib -lwatt"), - bn_ops => "BN_LLONG", - perlasm_scheme => "a.out", - }, - ##### MacOS X (a.k.a. Darwin) setup "darwin-common" => { inherit_from => [ "BASE_unix" ], @@ -1643,6 +1619,7 @@ sub vms_info { dso_scheme => "dlfcn", shared_target => "linux-shared", shared_cflag => "-fPIC", + shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", }, ##### VxWorks for various targets @@ -1741,47 +1718,20 @@ sub vms_info { shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ranlib => "$ENV{'RANLIB'}", }, - "haiku-common" => { - template => 1, - cc => "cc", - cflags => add_before(picker(default => "-DL_ENDIAN -Wall", - debug => "-g -O0", - release => "-O2"), - threads("-D_REENTRANT")), - sys_id => "HAIKU", - lflags => "-lnetwork", - perlasm_scheme => "elf", - thread_scheme => "pthreads", - dso_scheme => "dlfcn", - shared_target => "haiku-shared", - shared_cflag => "-fPIC", - shared_ldflag => "-shared", - shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - }, - "haiku-x86" => { - inherit_from => [ "haiku-common", asm("x86_elf_asm") ], - cflags => add(picker(default => "", - release => "-fomit-frame-pointer")), - bn_ops => "BN_LLONG", - }, - "haiku-x86_64" => { - inherit_from => [ "haiku-common", asm("x86_64_asm") ], - cflags => add("-m64"), - bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", - }, - ##### VMS "vms-generic" => { inherit_from => [ "BASE_VMS" ], template => 1, cc => "CC/DECC", - cflags => picker(default => "/STANDARD=RELAXED/NOLIST/PREFIX=ALL/NAMES=(AS_IS,SHORTENED)", + cflags => picker(default => "/STANDARD=RELAXED/NOLIST/PREFIX=ALL", debug => "/NOOPTIMIZE/DEBUG", release => "/OPTIMIZE/NODEBUG"), lflags => picker(default => "/MAP", debug => "/DEBUG/TRACEBACK", release => "/NODEBUG/NOTRACEBACK"), + lib_cflags => add("/NAMES=(AS_IS,SHORTENED)"), + dso_cflags => add("/NAMES=(AS_IS,SHORTENED)"), shared_target => "vms-shared", dso_scheme => "vms", thread_scheme => "pthreads", @@ -1789,18 +1739,6 @@ sub vms_info { apps_aux_src => "vms_decc_init.c", }, - # 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" ], cflags => add(sub { my @warnings = @@ -1813,10 +1751,11 @@ sub vms_info { ? "LIBZ=\"\"\"".vms_info(0)->{def_zlib}."\"\"\"" : (); }), ex_libs => add(sub { return vms_info(0)->{zlib} || (); }), + pointer_size => sub { return vms_info(0)->{pointer_size} }, #as => "???", #debug_aflags => "/NOOPTIMIZE/DEBUG", #release_aflags => "/OPTIMIZE/NODEBUG", - bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR", + bn_opts => "SIXTY_FOUR_BIT RC4_INT", }, "vms-alpha-p32" => { inherit_from => [ "vms-generic" ], @@ -1833,6 +1772,7 @@ sub vms_info { ? "LIBZ=\"\"\"".vms_info(32)->{def_zlib}."\"\"\"" : (); }), ex_libs => add(sub { return vms_info(32)->{zlib} || (); }), + pointer_size => sub { return vms_info(32)->{pointer_size} }, }, "vms-alpha-p64" => { inherit_from => [ "vms-generic" ], @@ -1849,6 +1789,7 @@ sub vms_info { ? "LIBZ=\"\"\"".vms_info(64)->{def_zlib}."\"\"\"" : (); }), ex_libs => add(sub { return vms_info(64)->{zlib} || (); }), + pointer_size => sub { return vms_info(64)->{pointer_size} }, }, "vms-ia64" => { inherit_from => [ "vms-generic" ], @@ -1862,10 +1803,11 @@ sub vms_info { ? "LIBZ=\"\"\"".vms_info(0)->{def_zlib}."\"\"\"" : (); }), ex_libs => add(sub { return vms_info(0)->{zlib} || (); }), + pointer_size => sub { return vms_info(0)->{pointer_size} }, #as => "I4S", #debug_aflags => "/NOOPTIMIZE/DEBUG", #release_aflags => "/OPTIMIZE/NODEBUG", - bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR", + bn_opts => "SIXTY_FOUR_BIT RC4_INT", }, "vms-ia64-p32" => { inherit_from => [ "vms-generic" ], @@ -1882,6 +1824,7 @@ sub vms_info { ? "LIBZ=\"\"\"".vms_info(32)->{def_zlib}."\"\"\"" : (); }), ex_libs => add(sub { return vms_info(32)->{zlib} || (); }), + pointer_size => sub { return vms_info(32)->{pointer_size} }, }, "vms-ia64-p64" => { inherit_from => [ "vms-generic" ], @@ -1898,6 +1841,7 @@ sub vms_info { ? "LIBZ=\"\"\"".vms_info(64)->{def_zlib}."\"\"\"" : (); }), ex_libs => add(sub { return vms_info(64)->{zlib} || (); }), + pointer_size => sub { return vms_info(64)->{pointer_size} }, }, );