summaryrefslogtreecommitdiffstats
path: root/Configurations/00-base-templates.conf
AgeCommit message (Collapse)Author
2019-09-07Remove x86/x86_64 BSAES and AES_ASM supportBernd Edlinger
This leaves VPAES and AESNI support. The VPAES performance is comparable but BSAES is not completely constant time. There are table lookups using secret key data in AES_set_encrypt/decrypt_key and in ctr mode short data uses the non-constant time AES_encrypt function instead of bit-slicing. Furthermore the AES_ASM is by far outperformed by recent GCC versions. Since BSAES calls back to AES_ASM for short data blocks the performance on those is also worse than the pure software implementaion. Fixes: #9640 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9675)
2019-02-05Remove unnecessary trailing whitespaceSam Roberts
Trim trailing whitespace. It doesn't match OpenSSL coding standards, AFAICT, and it can cause problems with git tooling. Trailing whitespace remains in test data and external source. Backport-of: https://github.com/openssl/openssl/pull/8092 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8134)
2018-11-14test/recipes/90-test_shlibload.t needs $target{shared_extension}Richard Levitte
We therefore must add defaults. Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7626) (cherry picked from commit 45cdae1c7c93fe7ef2a981da4c36c3b8cb09e855)
2018-09-21typo-fixes: miscellaneous typo fixesagnosticdev
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/7277) (cherry picked from commit 46d085096c6ead624c61e4b8b301421301511e64)
2018-07-2600-base-templates.conf: engage x25519-ppc64 module.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6782)
2018-04-2300-base-templates.conf: wire keccak1600-armv4 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
2018-04-2300-base-templates.conf: wire keccak1600-ppc64 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
2018-04-2300-base-templates.conf: wire keccak1600-s390x module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
2018-04-2300-base-templates.conf: wire keccak1600-armv8 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
2018-04-2300-base-templates.conf: wire keccak1600-x86_64 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
2018-04-23Configure: add $target{keccak1600_asm_src}.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
2018-04-01Windows builds: remove over-quotation of LIBZ macroRichard Levitte
The LIBZ macro definition was already quoted in BASE_windows, then got quotified once more in windows-makefile.tmpl. That's a bit too much quotations, ending up with the compiler being asked to define the macro |"LIBZ=\"ZLIB1\""| (no, not the macro LIBZ with the value "ZLIB1"). This is solved by removing the extra quoting in BASE_windows. Along with this, change the quotation of macro definitions and include file specification, so we end up with things like -I"QuotedPath" and -D"Macro=\"some weird value\"" rather than "-IQuotedPath" and "-DMacro=\"some weird value\"". Fixes #5827 Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5833)
2018-03-10Configurations/10-main.conf: VC-<target> cleanups.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5574)
2018-03-09Configure et al: Move the definition of library only flagsRichard Levitte
We're currently using the attributes 'defines', 'cppflags', 'cflags' etc quite liberally, with no regard for where that ends up. Quite a few of those flags are actually only relevant for the libraries (mostly libcrypto), so it's safe to say that those could be applied to the libraries only. So, we move some of those flags to 'lib_defines', 'lib_cppflags', 'lib_cflags', etc. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5560)
2018-03-08Make "make variables" config attributes for overridable flagsRichard Levitte
With the support of "make variables" comes the possibility for the user to override them. However, we need to make a difference between defaults that we use (and that should be overridable by the user) and flags that are crucial for building OpenSSL (should not be overridable). Typically, overridable flags are those setting optimization levels, warnings levels, that kind of thing, while non-overridable flags are, for example, macros that indicate aspects of how the config target should be treated, such as L_ENDIAN and B_ENDIAN. We do that differentiation by allowing upper case attributes in the config targets, named exactly like the "make variables" we support, and reserving the lower case attributes for non-overridable project flags. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5534)
2018-02-22Refactor the ranlib attributeRichard Levitte
It was inconsistent to see this specific command have '$(CROSS_COMPILE)' in its value when no other command did. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5247)
2018-02-21Add x25519-x86_64.pl module, mod 2^255-19 primitives.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/5408)
2018-02-09Configuration: move the handling of zlib_include to config filesRichard Levitte
It was a bit absurd to have this being specially handled in the build file templates, especially that we have the 'includes' attribute. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5296)
2018-01-31Apps: divide the modules in direct command modules, support library and initRichard Levitte
Most modules are direct implementations of openssl application sub-commands, but some constitute a support library, which can be used by more than one program (and is, incidently, by test/uitest). For practical purposes, we place the support library modules in a private, static library. Finally, there are some modules that don't have direct references in the rest of the apps code, but are still crucial. See them as some kind of extra crt0 or similar for your platform. Inspiration from David von Oheimb Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5222)
2018-01-28We need Unixly defaults for config targets that don't inherit a BASERichard Levitte
Ideally, each config target should inherit a base to get their platform specific defaults. Unfortunately, that is currently not the case, so we duplicate the Unixly defaults from the BASE_unix template into the DEFAULT template. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5177)
2018-01-28Stop having Unix defaults in Configure (partial)Richard Levitte
Default values belong in the DEFAULT config target template, in Configurations/00-base-templates.conf. This isn't a complete move, but takes care of the most blatant examples. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5177)
2018-01-28Processing GNU-style "make variables" - separate CPP flags from C flagsRichard Levitte
C preprocessor flags get separated from C flags, which has the advantage that we don't get loads of macro definitions and inclusion directory specs when linking shared libraries, DSOs and programs. This is a step to add support for "make variables" when configuring. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5177)
2018-01-08Separate general linking flags from extra librariesRichard Levitte
So far, we've placed all extra library related flags together, ending up in the make variable EX_LIBS. This turns out to be problematic, as for example, some compilers don't quite agree with something like this: cc -o foo foo.o -L/whatever -lsomething They prefer this: cc -L/whatever -o foo foo.o -lsomething IBM's compiler on OS/390 is such a compiler that we know of, and we have previously handled that as a previous case. The answer here is to make a more general solution, where linking options are divided in two parts, where one ends up in LDFLAGS and the other in EX_LIBS (they corresponds to what is called LDFLAGS and LDLIBS in the GNU world) Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5033)
2017-12-12Configure: Add read_eval_file, a general purpose perl file reader/evaluatorRichard Levitte
It will return the last expression from the input file. We also use this in read_config, which slightly changes what's expected of Configurations/*.conf. They do not have to assign %targets specifically. On the other hand, the table of configs MUST be the last expression in each of those files. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4840)
2017-11-1000-base-templates.conf: fix ia64 builds.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2017-06-30Cleanup some copyright stuffRich Salz
Remove some incorrect copyright references. Move copyright to standard place Add OpenSSL copyright where missing. Remove copyrighted file that we don't use any more Remove Itanium assembler for RC4 and MD5 (assembler versions of old and weak algorithms for an old chip) Standardize apps/rehash copyright comment; approved by Timo Put dual-copyright notice on mkcert Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3691)
2017-06-22Configure: give config targets the possibility to enable or disable featuresRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3745)
2016-11-10Revert "Move algorithm specific ppccap code from crypto/ppccap.c"Richard Levitte
Now that we can link specifically with static libraries, the immediate need to split ppccap.c (and eventually other *cap.c files) is no more. This reverts commit e3fb4d3d52e188b83ccb8506aa2f16cb686f4d6c. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-11-09Move algorithm specific ppccap code from crypto/ppccap.cRichard Levitte
Having that code in one central object file turned out to cause trouble when building test/modes_internal_test. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1883)
2016-11-06Windows: use default ZLIB1 unless --with-zlib-lib is setRichard Levitte
Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1772)
2016-10-24ppccap.c: engage new multipplication and squaring subroutines.Andy Polyakov
[And remove FPU mutiplication subroutine.] Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-02MIPS assembly pack: adapt it for MIPS[32|64]R6.Andy Polyakov
MIPS[32|64]R6 is binary and source incompatible with previous MIPS ISA specifications. Fortunately it's still possible to resolve differences in source code with standard pre-processor and switching to trap-free version of addition and subtraction instructions. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-08-29Add ecp_nistz256-ppc64 module.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-01Configurations/00-base-templates.conf: harmonize BASE_Windows.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-07-14Windows: take care of manifest filesRichard Levitte
The easiest way to take care of manifest files is to integrate them into the associated binary (.exe or .dll). MT (the Manifest Tool) is the utility to use for this. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-16ARMv8 assembly pack: add OPENSSL_cleanse.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-10Configurations: engage MIPS64 Poly1305 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-04Alpha assembly pack: make it work on Linux.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-20evp/aes_aes.c: engage Fujitsu SPARC64 X AES support.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-15Don't use a default for --with-zlib-lib on Windows with option 'zlib'Richard Levitte
To begin with, the default should have been the import library, not the DLL itself. However, we don't know what directory it's installed in either way, so we may as well demand the full path from the user Reviewed-by: Matt Caswell <matt@openssl.org>
2016-04-13Fix zlib configuration options.Richard Levitte
The macros ZLIB and ZLIB_SHARED weren't appropriately defined, deviating wrongly from how they worked in earlier OpenSSL versions. So, restore it so that ZLIB is defined if configured "enable-zlib" and so that ZLIB and ZLIB_SHARED are defined if configured "enable-zlib-dynamic". Additionally, correct the interpretation of the --with-zlib-lib value on Windows and VMS, where it's used to indicate the actual zlib zlib library file / logical name, as that can differ depending on zlib version and packaging on those platforms. Finally for Windows and VMS, we also define the macro LIBZ with that file name / logical name when configured "zlib-dynamic", so the compression unit can pick it up and use it. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-03-21Windows build system: get uplink right.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-03-14s390x assembly pack: 32-bit fixups.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-03-09Unified - extract settings from util/pl/VC-32.pl and make the config settingsRichard Levitte
This introduces the settings loutflag and aroutflag, because different Windows tools that do the same thing have different ways to specify the output file. The Borland C++ config is commented away for the monent, perhaps permanently. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-03-08SPARCv9 assembly pack: unify build rules and argument handling.Andy Polyakov
Make all scripts produce .S, make interpretation of $(CFLAGS) pre-processor's responsibility, start accepting $(PERLASM_SCHEME). [$(PERLASM_SCHEME) is redundant in this case, because there are no deviataions between Solaris and Linux assemblers. This is purely to unify .pl->.S handling across all targets.] Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-03-08Fix configurations such as 'dist' and tar buildingRichard Levitte
For config targets such as 'dist', which doesn't have a BASE template, we still need to have a default build scheme. Additionally, the unified Makefile template's target 'tar' wasn't quite as flexible as the unixmake one. Finally, .travis-create-release.sh can be somewhat simplified now that it builds with the unified build scheme. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-03-08Make unified builds the default on UnixRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org>
2016-03-02Configure - Get rid of the special thread_cflag, replace with thread_schemeRichard Levitte
The thread_cflag setting filled a double role, as kinda sorta an indicator of thread scheme, and as cflags. Some configs also added lflags and ex_libs for multithreading regardless of if threading would be enabled or not. Instead of this, add threading cflags among in the cflag setting, threading lflags in the lflag setting and so on if and only if threads are enabled (which they are by default). Also, for configs where there are no special cflags for threading (the VMS configs are of that kind), this makes it possible to still clearly mention what thread scheme is used. The exact value of thread scheme is currently ignored except when it's "(unknown)", and thereby only serves as a flag to tell if we know how to build for multi-threading in a particular config. Yet, the currently used values are "(unknown)", "pthreads", "uithreads" (a.k.a solaris threads) and "winthreads". Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-03-02Configure - get rid of the special debug_ and release_ settingsRichard Levitte
Instead, make the build type ("debug" or "release") available through $config{build_type} and let the configs themselves figure out what the usual settings (such as "cflags", "lflags" and so on) should be accordingly. The benefit with this is that we can now have debug and release variants of any setting, not just those Configure supports, and may also involve other factors (the MSVC flags /MD[d] and /MT[d] involve both build type and whether threading is enabled or not) Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-03-02Configure - move the addition of the zlib / libz lib to configsRichard Levitte
Configure had the Unix centric addition of -lz when linking with zlib is enabled, which doesn't work on other platforms. Therefore, we move it to the BASE_unix config template and add corresponding ones in the other BASE_* config templates. The Windows one is probably incomplete, but that doesn't matter for the moment, as mk1mf does it's own thing anyway. This required making the %withargs table global, so perl snippets in the configs can use it. Reviewed-by: Andy Polyakov <appro@openssl.org>