summaryrefslogtreecommitdiffstats
path: root/Configure
AgeCommit message (Collapse)Author
2017-11-07Configure: cleanup @disable_cascadeRichard Levitte
'rsa', 'sha' and 'tlsext' can't be disabled, not even as a consequence of other conditions, so having cascading disables that depend on them is futile. Clean up! Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4693) (cherry picked from commit 89635075d84353fc0c3d44a82fd0903ccd4ab24a)
2017-11-05Consolidate the locations where we have our internal perl modulesRichard Levitte
Instead of having perl modules under test/testlib and util, consolidate them all to be inside util/perl. (this is an adaptation of the part of #4069 that wasn't included in #4666) Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4667)
2017-11-05Perl: Use our own globbing wrapper rather than File::Glob::globRichard Levitte
File::Glob::glob is deprecated, it's use generates this kind of message: File::Glob::glob() will disappear in perl 5.30. Use File::Glob::bsd_glob() instead. at ../master/Configure line 277. The first idea was to use a construction that makes the caller glob() use File::Glob::bsd_glob(). That turned out not to work well everywhere, so instead, we make our own wrapper, OpenSSL::Glob and use that. Fixes #4636 (this is an adaptation of #4040 and part of #4069, for 1.1.0) Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4666)
2017-09-12Disable the EGD seeding meachanism when stdio is disabledRichard Levitte
crypto/rand/rand_egd.c makes extensive use of stdio functions. When they are disabled, it makes sense to disable egd as well. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4358) (cherry picked from commit 15a1bd0ab2950671686cea51f4218c8f3d92fad9)
2017-09-01Configure: base compiler-specific decisions on pre-defines.Andy Polyakov
The commit subject is a bit misleading in sense that decisions affect only gcc and gcc-alikes, like clang, recent icc... This is back-port of 54cf3b981afcbbd3754c8ba1114ab6a658d86c08, GH#4281. Reviewed-by: Rich Salz <rsalz@openssl.org>
2017-08-03Revert "Perl: Use File::Glob::bsd_glob rather than File::Glob::glob"Richard Levitte
This needs more change that what is appropriate for the 1.1.0 branch. This reverts commit 0401110073cd392602855f9b72af2ebec7909625. Reviewed-by: Andy Polyakov <appro@openssl.org>
2017-07-28Perl: Use File::Glob::bsd_glob rather than File::Glob::globRichard Levitte
File::Glob::glob is deprecated, it's use generates this kind of message: File::Glob::glob() will disappear in perl 5.30. Use File::Glob::bsd_glob() instead. at ../master/Configure line 277. So instead, use a construction that makes the caller glob() use File::Glob::bsd_glob(). Note that we're still excluding VMS, as it's directory specs use '[' and ']', which have a different meaning with bsd_glob and would need some extra quoting. This might change, but later. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4040) (cherry picked from commit 102c9e1296b656c4049c1110abc8a52b43bd0dcf)
2017-06-20Remove duplicates from clang_devteam_warningsBenjamin Kaduk
Since the clang_devteam_warnings are appended to the gcc_devteam_warnings when strict-warnings are requested, any items present in both the gcc and clang variables will be duplicated in the cflags used for clang builds. Remove the extra copy from the clang-specific flags in favor of the gcc_devteam_warnings that are used for all strict-warnings builds. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3239) (cherry picked from commit 96db26919d5caff2db6340354a026f56dc6f09da) [extended tests]
2017-06-20Add -Wextra to gcc devteam warningsBenjamin Kaduk
clang already has it; let's flip the switch and deal with the fallout. Exclude -Wunused-parameter, as we have many places where we keep unused parameters to conform to a uniform vtable-like interface. Also exclude -Wmissing-field-initializers; it's okay to rely on the standard-mandated behavior of filling out with 0/NULL. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3239) (cherry picked from commit 560ad13c74fe6967991a2429d90eeeba815d1f9e)
2017-06-17Remove non-accurate description in Configure scriptPaul Yang
For DES and 3DES based ciphers are also enabled by this option. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3707) (cherry picked from commit edcdf38bd09f77160f0ec3e5bdd9d9525daf6f25)
2017-04-01Configure: use 5.10.0, don't require...Andy Polyakov
Configure started with 'require 5.10.0', but if executed by older perl it failed with "might be runaway multi-line // string" instead of naturally expected "Perl v5.10.0 required--this is only v5.x.y". Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit d83112b7fd3b0e751f8a5947e5a93db1cbbe86dc)
2017-03-30More typo fixesFdaSilvaYY
Backport of 69687aa829bc8bdcaf5468eb3dd0ada13700b7aa (Merged from #3069) Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3079)
2017-03-06Add a platform specific configuration checkerRichard Levitte
For each platform, we may need to perform some basic checks to see that available tools perform as we expect them. For the moment, the added checkers test that Perl gives the expected path format. This should help MingW users to see if they run an appropriate Perl implementation, for example. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2851) (cherry picked from commit d192a3aaeb76fc89f8285b4dc938c2bc0c37d0d4)
2017-02-23Add -Wundef to strict-warningsRich Salz
Avoid a -Wundef warning in o_str.c Avoid a -Wundef warning in testutil.h Include internal/cryptlib.h before openssl/stack.h to avoid use of undefined symbol OPENSSL_API_COMPAT. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2709)
2017-02-17If all versions of a proto are disabled, disabled the proto as wellRichard Levitte
For example, 'no-dtls1 no-dtls1_2' will imply 'no-dtls' Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2670) (cherry picked from commit 343a7467c270c54a8e1c85e88e807a1c2e0b6127)
2016-11-25INSTALL: clarify 386 and no-sse2 options.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 5ae5dc96610f0a598dac9d2f267b5c0ddd77b2e4)
2016-11-15Only build the body of e_padlock when there are lower level routinesRichard Levitte
engines/e_padlock.c assumes that for all x86 and x86_64 platforms, the lower level routines will be present. However, that's not always true, for example for solaris-x86-cc, and that leads to build errors. The better solution is to have configure detect if the lower level padlock routines are being built, and define the macro PADLOCK_ASM if they are, and use that macro in our C code. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1510) (cherry picked from commit 7b176a549ea374fc9b64c3fa7f0812239528b696)
2016-10-13Configure: remove superfluous 0xVitezslav Cizek
The number is taken from the OPENSSL_VERSION_NUMBER which is already in the hex form. CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1706) (cherry picked from commit 35a498e431f81f94c4ee2dd451cdfe4d566fef3b)
2016-10-13Remove automatic RPATH - add user rpath supportRichard Levitte
Make Configure recognise -rpath and -R to support user added rpaths for OSF1 and Solaris. For convenience, add a variable LIBRPATH in the Unix Makefile, which the users can use as follows: ./config [options] -Wl,-rpath,\$(LIBRPATH) Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit fad599f7f147ee71e5581211fb654c2c8c491cd8)
2016-09-21Configure: clarify and refine -static.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 047d97afd97520eae268f6d8a36fbf9a0239a994)
2016-09-17Have the configuration options 'no-err' and 'no-async' work againRichard Levitte
In an earlier attempt to simplify the processing of disabled options, 'no-err' and 'no-async' stopped working properly. 'err' and 'async' are directories under 'crypto/', but they are special insofar that they can't be simply skipped, like all the algorithm directories can, so they need special treatment among the disablable things. Reviewed-by: Tim Hudson <tjh@openssl.org> (cherry picked from commit 66fe388aa410820d80ab1d99730b64b1b56a89d4)
2016-09-16Rearrange the storage of build file template names in %configRichard Levitte
They are now relative paths as well Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit 1967a42eb5192efc552287f78850420082caba7c)
2016-09-16Register the name of the config file each config target was found inRichard Levitte
Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit ee9b0bbb4c66812da18939ea96c4625cb001f3bd)
2016-09-13Configure: detect gcc's dependency generation capability more accurately.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 35c11bfc69e6b90fd1c4c4ca6ad3f500584ca939)
2016-09-07Allow asan, msan and ubsan to be configured with shared librariesRichard Levitte
The background story is that util/shlib_wrap.sh was setting LD_PRELOAD or similar platform dependent variables, just in case the shared libraries were built with -rpath. Unfortunately, this doesn't work too well with asan, msan or ubsan. So, the solution is to forbid the combination of shared libraries, -rpath and any of the sanity analyzers we can configure. This changes util/shlib_wrap.sh so it only contains the code that sets LD_PRELOAD when -rpath has been used when configuring. Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 342a1a23793cb99921abeabe882adf8652ba715d)
2016-09-07Configure: Reorganise the checking of disabled optionsRichard Levitte
The way we figured out what options are crypto algorithms and what are something other was somewhat sketchy. This change bases the distinction on available sdirs instead. Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 3e2dd30d665f3a312a45f945ffafb74ff6c420d6)
2016-09-01Revert "Make it possible to disable fuzz testing"Richard Levitte
This reverts commit eb40eaed727500bf4a15f848c99e37edd18e142e. Reviewed-by: Emilia Käsper <emilia@openssl.org> (cherry picked from commit a5e1f1230e09b249ff94cc48aeffd1b874cb937e)
2016-08-31Have Configure's HASH or TABLE produce complete listsRichard Levitte
Because some targets execute perl code that might die, we risk incomplete lists. Make it so dying doesn't happen when we're listing targets. Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit d63c12c697faa4e2fa0e5d7565521a5813c86415)
2016-08-31Configure's print_table_entry printed incorrect informationRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 0c0d78b88d0bc4171b577ba3877c7b7ed0e91935)
2016-08-31Make it possible to disable fuzz testingRichard Levitte
These tests take a very long time on some platforms, and arent't always strictly necessary. This makes it possible to turn them off. The necessary binaries are still built, though, in case someone still wants to do a manual run. Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit eb40eaed727500bf4a15f848c99e37edd18e142e)
2016-08-31The Perl interpreter might be in a path with spaces, so maybe quote itRichard Levitte
Note: some shells do not like the command verb to be quoted, so we avoid it unless it's actually necessary. RT#4665 Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit f879d5ff38d3c2283db968ea57c7a3207cc05889)
2016-08-30Configure: save away the value of OPENSSL_LOCAL_CONFIG_DIR for reconfRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit ee4cdb7fdbdc46f931cb6e2eca109cc92832eb33)
2016-08-30Configure: Redo the logic for finding build file templatesRichard Levitte
Build file templates would be looked up like this if the user gave us an additional directory to look for configuration files and build file templates: $OPENSSL_LOCAL_CONFIG_DIR/$OSTYPE-Makefile.tmpl $SOURCEDIR/Configurations/$OSTYPE-Makefile.tmpl $OPENSSL_LOCAL_CONFIG_DIR/Makefile.tmpl $SOURCEDIR/Configurations/Makefile.tmpl So for example, if the user created his own Makefile.tmpl and tried to use it with a unixly config, it would never be user because we have a unix-Makefile.tmpl in our Configurations directory. This is clearly wrong, and this change makes it look in this order instead: $OPENSSL_LOCAL_CONFIG_DIR/$OSTYPE-Makefile.tmpl $OPENSSL_LOCAL_CONFIG_DIR/Makefile.tmpl $SOURCEDIR/Configurations/$OSTYPE-Makefile.tmpl $SOURCEDIR/Configurations/Makefile.tmpl Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 79822c3cd55b9241187123fd016cb3c9a3beffbb)
2016-08-30Configure: clean away temporary section of codeRichard Levitte
We've done away with Makefile as source of information and now use configdata.pm exclusively. Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit acc63c7d6d4ea28497a6192a3445b40f2af88133)
2016-08-30Make it possible for the user to specify a different default build fileRichard Levitte
Make sure the information is kept for reconfiguration too. Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 8b5156d18855f536cf5ceac10f5781e19fa8f1ea)
2016-08-26Improve the definition of STITCHED_CALL in e_rc4_hmac_md5.cRichard Levitte
The definition of STITCHED_CALL relies on OPENSSL_NO_ASM. However, when a configuration simply lacks the assembler implementation for RC4 (which is where we have implemented the stitched call), OPENSSL_NO_ASM isn't implemented. Better, then, to rely on specific macros that indicated that RC4 (and MD5) are implemented in assembler. For this to work properly, we must also make sure Configure adds the definition of RC4_ASM among the C flags. Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit 216e8d91033d237880cff7da0d02d46d47bae41b)
2016-08-22Configure: Properly cache the configured compiler commandRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-19Sort %disabled in ConfigureBenjamin Kaduk
@disablables is sorted, but these were just added at the end of %disabled in commits c2e27310 and 22e3dcb7. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
2016-08-16Configure: recognize -static as link option and disable incompatible options.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-05The capi engine uses stdio, so don't build it when configuring 'no-stdio'Richard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-28Add memory sanitizer config, and run on travis.Emilia Kasper
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-18build.info: implement PROGRAM_NO_INST, and dito for ENGINES, SCRIPTS, LIBSRichard Levitte
PROGRAM_NO_INST, ENGINES_NO_INST, SCRIPTS_NO_INST and LIBS_NO_INST are to be used to specify program, engines, scripts and libraries that are not to be installed in the system. Fuzzers, test programs, that sort of things are of the _NO_INST type, for example. For the benefit of build file templates and other templates that use data from configdata.pm, a new hash table $unified_info{install} is created. It contains a set of subhashes, one for each type of installable, each having an array of file names as values. For example, it can look like this: "install" => { "engines" => [ "engines/afalg/afalg", "engines/capi", "engines/dasync", "engines/padlock", ], "libraries" => [ "libcrypto", "libssl", ], "programs" => [ "apps/openssl", ], "scripts" => [ "apps/CA.pl", "apps/tsget", "tools/c_rehash", ], }, Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-16Make fuzzer and fuzz tester builds less magicRichard Levitte
Instead of having fuzz/build.info.fuzz magically and conditionally included along with the other build.info files, incorporate it in fuzz/build.info and add the conditions there instead. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-04perl: Separate compile-time environment from runtime environmentRichard Levitte
Make it possible to have a separate and different perl command string for installable scripts than we use when building, with the environment variable HASHBANGPERL. Its value default to the same as the environment PERL if it's defined, otherwise '/usr/bin/env perl'. Note: this is only relevant for Unix-like environments. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-07-01Make build.info INCLUDE stmts be both source and build tree relativeRichard Levitte
INCLUDE statements in build.info files were source tree centric. That meant that to get include directory specs in the build tree, we had to resort to perl fragments that specified the build tree include paths as absolute ones. This change has the INCLUDE statement consider both the source and build tree for any include directory. It means that there may be some extra unnecessary include paths, but it also makes life simpler for anyone who makes changes in the build.info files. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-01Run the fuzzing corpora as tests.Ben Laurie
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-06-22Spelling... and more spellingFdaSilvaYY
Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1245)
2016-06-21Fix typoPetr Vaněk
Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1241)
2016-06-16no-ripemd is an alias for no-rmd160Matt Caswell
mkdef.pl was failing to understand no-ripemd. This is a deprecated option which should act as an alias for no-rmd160. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-06-14Move the Configure generated header files to the top build.infoRichard Levitte
This turns these headers into build file generated ones. Reviewed-by: Rich Salz <rsalz@openssl.org>