summaryrefslogtreecommitdiffstats
path: root/Configurations
AgeCommit message (Collapse)Author
2016-02-09Configurations: engage s390x ChaCha20 and Poly1305 modules.Andy Polyakov
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-02-09unified build scheme: add a design documentRichard Levitte
This documents describes the three steps from build.info files via the %unified_info database to the build-file templates, along with some examples showing how the data gets processed along the way. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-02-09unified build scheme: add and document the "unified" driving engineRichard Levitte
common.tmpl will be used together with the template build file, and is the engine that connects the information gathered from all the build.info files with making the build file itself. This file expects there to be a template section in the build file template that defines a number perl functions designed to return strings with appropriate lines for the build system at hand. The exact functions, what they can expect as arguments and what output they're expected to produce is documented in Configurations/README. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-02-08Configurations/00-base-templates.conf: harmonize extensions.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-06Enhance and clear the support of linker flagsRichard Levitte
Some time ago, we had a ex_libs configuration setting that could be divided into lflags and ex_libs. These got divided in two settings, lflags and ex_libs, and the former was interpreted to be general linking flags. Unfortunately, that conclusion wasn't entirely accurate. Most of those linking were meant to end up in a very precise position on the linking command line, just before the spec of libraries the linking depends on. Back to the drawing board, we're diving things further, now having lflags, which are linking flags that aren't depending on command line position, plib_lflags, which are linking flags that should show up just before the spec of libraries to depend on, and finally ex_libs, which is the spec of extra libraries to depend on. Also, documentation is changed in Configurations/README. This was previously forgotten. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-01unified build scheme: add a personal configuration to test itRichard Levitte
Nothing else will run the unified scheme for now. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-01unified build scheme: a first introductionRichard Levitte
The "unified" build scheme revolves around small information files, build.info, which each describe their own bit of everything that needs to be built, using a mini-language described in Configurations/README. The information in build.info file contain references to source files and final result. Object files are not mentioned at all, they are simply from source files. Because of this, all the *_obj items in Configurations/*.conf are renamed to *_asm_src and the files listed in the values are change from object files to their corresponding source files. For the sake of the other build schemes, Configure generates corresponding *_obj entries in %target. Furthermore, the "unified" build scheme supports having a build directory tree separate from the source directry tree. All paths in a build.info file is assumed to be relative to its location, either within the source tree or within the build tree. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-31Engage poly1305-sparcv9 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-29Complete the lflags -> lflags/ex_libs transitionRichard Levitte
Some last lflags to convert to ex_libs or a combo of lflags and ex_libs Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Configure et al: split up the lflags configuration item into twoRichard Levitte
The lflags configuration had a weird syntax with a % as separator. If it was present, whatever came before ended up as PEX_LIBS in Makefile (usually, this is LDFLAGS), while whatever came after ended up as EX_LIBS. This change splits that item into lflags and ex_libs, making their use more explicit. Also, PEX_LIBS in all the Makefiles are renamed to LDFLAGS. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Make use of add() and add_before() in Configurations/Richard Levitte
A few more sub-joins could be replaced with calls to add() and add_before() Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Always DPURIFYEmilia Kasper
The use of the uninitialized buffer in the RNG has no real security benefits and is only a nuisance when using memory sanitizers. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-29Remove x86_gcc_des,x86_gcc_optsRich Salz
This is a followin from !1738, we no longer need those variables. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-27Remove outdated legacy crypto optionsRich Salz
Many options for supporting optimizations for legacy crypto on legacy platforms have been removed. This simplifies the source code and does not really penalize anyone. DES_PTR (always on) DES_RISC1, DES_RISC2 (always off) DES_INT (always 'unsigned int') DES_UNROLL (always on) BF_PTR (always on) BF_PTR2 (removed) MD2_CHAR, MD2_LONG (always 'unsigned char') IDEA_SHORT, IDEA_LONG (always 'unsigned int') RC2_SHORT, RC2_LONG (always 'unsigned int') RC4_LONG (only int and char (for assembler) are supported) RC4_CHUNK (always long), RC_CHUNK_LL (removed) RC4_INDEX (always on) And also make D_ENCRYPT macro more clear (@appro) This is done in consultation with Andy. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-25Small cleanups in ConfigureRichard Levitte
- Small rearrangement of the TABLE and HASH printouts, and adding printout of the "build_scheme" item - Renamed "engines_obj" to "padlock_obj" - Moved the runs of dofile down... it didn't quite make sense to have that in the middle of a printout Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-25Refactor file writing - Remake Makefile.org into a templateRichard Levitte
It is time for Makefile.org to fold into the new regime and have a run through util/dofile.pl. This forces some information out of there and into Configure, which isn't a bad thing, it makes Configure increasingly the center of build information, which is as it should be. A few extra defaults were needed in the BASE template to get rid of warnings about missing values. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-23String configs are truly deprecated, not even somewhat supported any moreRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-22Configurations - no_asm_filler is long gone, don't use itRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-22Refactor config - @MK1MF_Builds out, general build scheme inRichard Levitte
Time to get rid of @MK1MF_Builds and introduce a more flexible 'build_scheme' configuration key. Its value may be a string or an array of strings, meaning we need to teach resolve_config how to handle ARRAY referenses. The build scheme is a word that selects a function to create the appropriate result files for a certain configuration. Currently valid build schemes aer "mk1mf" and "unixmake", the plan is however to add at least one other for a more universal build scheme. Incidently, this also adds the functions 'add' and 'add_before', which can be used in a configuration, so instead of having to repeatedly write a sub like this: key1 => sub { join(" ", @_, "myvalues"); }, key2 => sub { join(" ", "myvalues", @_); }, one could write this: key1 => add(" ", "myvalues"), key2 => add_before(" ", "myvalues"), The good point with 'add' and 'add_before' is that they handle inheritances where the values are a misture of scalars and ARRAYs. If there are any ARRAY to be found, the resulting value will be an ARRAY, otherwise it will be a scalar with all the incoming valued joined together with the separator given as first argument to add/add_before. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-22Refactor config - move templates and template docs to ConfigurationsRichard Levitte
Move the documentation of the target configuration form to Configurations/README. Move initial assembler object templates to Configurations/00-BASE-templates.conf. Furthermore, remove all variables containing the names of the non-assembler object files and make a BASE template of them instead. The values from this templates are used as defaults as is. The remaining manipulation of data when assembler modules are used is done only when $no_asm is false. While doing this, clean out some other related variables that aren't used anywhere. Also, we had to move the resolution of the chosen target a bit, or the function 'asm' would never catch a true $no_asm... this hasn't mattered before we've moved it all to the BASE template, but now it does. At the same time, add the default for the 'unistd' key to the BASE template. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-18Add some extra Cygwin targets as aliases for Cygwin-x86Richard Levitte
Cygwin was used for x86 before, so let's keep it around for those who still use it (it make Configure reconf possible). Cygwin-i[3456]86 for those that might generate and pass a target name directly to Configure. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-18Adjust the configuration target name from Cygwin-i686 to Cygwin-x86Richard Levitte
This is to reflect that it's not limited to just i686. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-18Fix configuration system to support different architectures on Cygwin.Corinna Vinschen
This patch allows to recognize the architectures supported by Cygwin and to choose the right configuration from there. Drop -march to use default architecture on 32 bit x86. Drop pre-Cygwin-1.3 recognition since it's long gone and there's no valid configuration for this anymore. Signed-off-by: Corinna Vinschen <vinschen@redhat.com> Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-12Move Makefiles to Makefile.inRich Salz
Create Makefile's from Makefile.in Rename Makefile.org to Makefile.in Rename Makefiles to Makefile.in Address review feedback from Viktor and Richard Reviewed-by: Viktor Dukhovni <viktor@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-11Enable/disable crypto-mdebug just like other featuresViktor Dukhovni
Also always abort() on leak failure. Reviewed-by: Stephen Henson <steve@openssl.org>
2016-01-07mem functions cleanupRich Salz
Only two macros CRYPTO_MDEBUG and CRYPTO_MDEBUG_ABORT to control this. If CRYPTO_MDEBUG is not set, #ifdef out the whole debug machinery. (Thanks to Jakob Bohm for the suggestion!) Make the "change wrapper functions" be the only paradigm. Wrote documentation! Format the 'set func' functions so their paramlists are legible. Format some multi-line comments. Remove ability to get/set the "memory debug" functions at runtme. Remove MemCheck_* and CRYPTO_malloc_debug_init macros. Add CRYPTO_mem_debug(int flag) function. Add test/memleaktest. Rename CRYPTO_malloc_init to OPENSSL_malloc_init; remove needless calls. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-13Fix erroneous SO suffix in darwin64-debug-test-64-clang targetViktor Dukhovni
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-11Configurations/10-main.conf: fix typos in mingw/cygwin configs.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-11-24Configuratons: add -DFILIO_H to harmonized Solaris targets.Andy Polyakov
Triggered by RT#4144. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-11-24Add perl modeline to Configure scriptsJacob Bandes-Storch
Encourages GitHub to perform proper syntax highlighting. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-11-21add -pthread to debug-steve*Dr. Stephen Henson
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-11-20Add pthread supportMatt Caswell
The forthcoming async code needs to use pthread thread local variables. This updates the various Configurations to add the necessary flags. In many cases this is an educated guess as I don't have access to most of these environments! There is likely to be some tweaking needed. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-10-12Configurations: move -Wno-pedantic-ms-format to .travis.yml.Andy Polyakov
The option is not available in older toolchains and would cause breakage. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-10-06Fix travis builds on masterAlessandro Ghedini
-Allow mingw debug builds to fail on Travis CI -Fix Travis email notifications config -Rename a variable to avoid a bogus warning with old GCC error: declaration of ``dup'' shadows a global declaration [-Werror=shadow] -Disable pedantic ms-format warnings with mingw -Properly define const DH parameters -Restore --debug flag in Travis CI builds; -d would get incorrectly passed to ./Configure in mingw debug builds. Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
2015-09-25Properly format linux-arm64ilp32 target configAlessandro Ghedini
Otherwise the ./config script fails with errors like: > Operating system: x86_64-whatever-linux2 > This system (linux-x86_64) is not supported. See file INSTALL for details. The failure was introduced by a93d3e0. RT#4062 Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
2015-09-25Configurations: add linux-arm64ilp32 target.Andy Polyakov
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-09-08RT3969: Add OPENSSL_SYS_UEFIDavid Woodhouse
This provides support for building in the EDK II reference implementation of UEFI. Most UEFI firmware in existence uses OpenSSL for implementing the core cryptographic functionality needed for Secure Boot. This has always previously been handled with external patches to OpenSSL but we are now making a concerted effort to eliminate those. In this mode, we don't actually use the OpenSSL makefiles; we process the MINFO file generated by 'make files' and incorporate it into the EDK2 build system. Since EDK II builds for various targets with varying word size and we need to have a single prepackaged configuration, we deliberately don't hard-code the setting of SIXTY_FOUR_BIT vs. THIRTY_TWO_BIT in opensslconf.h. We bypass that for OPENSSL_SYS_UEFI and allow EDK II itself to set those, depending on the architecture. For x86_64, EDK II sets SIXTY_FOUR_BIT and thus uses 'long long' for the 64-bit type, even when building with GCC where 'long' is also 64-bit. We do this because the Microsoft toolchain has 32-bit 'long'. Signed-off-by: Rich Salz <rsalz@akamai.com> Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-08-02Build with --strict-warnings on FreeBSD.Ben Laurie
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-05-26Configure: replace -mv8 with -mcpu=v8 in SPARC config lines.Andy Polyakov
RT#3860 Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-05-13Configurations/10-main.conf: update iOS commentary.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-05-01Fix build on MacOS.Ben Laurie
Reviewed-by: Andy Polyakov
2015-04-20Add assembly support for 32-bit iOS.Andy Polyakov
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-20Configure: add initial support for 64-bit Android.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-17Use -Wall -Wextra with clangEmilia Kasper
The disabled set of -Weverything is hard to maintain across versions. Use -Wall -Wextra but also document other useful warnings that currently trigger. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-04-15Remove obsolete options for debug-steve*Dr. Stephen Henson
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-04-02Configure: android-arm facelift.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-03-28Configure: remove unused variables.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-18Configure: fold related configurations more aggressively and clean-up.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-16Configuration cleanup: personal configsRichard Levitte
Move obviously personal configurations to personal files. Note: those files should really not be in the main repo at all Reviewed-by: Andy Polyakov <appro@openssl.org>
2015-03-16Find debug- targets that can be combined with their non-debug counterparts ↵Richard Levitte
and do so Reviewed-by: Andy Polyakov <appro@openssl.org>