summaryrefslogtreecommitdiffstats
path: root/Configure
AgeCommit message (Collapse)Author
2020-07-02Configure: Check source and build dir equality a little more thoroughlyRichard Levitte
'absolutedir' does a thorough job ensuring that we have a "real" path to both source and build directory, unencumbered by symbolic links. However, that isn't enough on case insensitive file systems on Unix flavored platforms, where it's possible to stand in, for example, /PATH/TO/Work/openssl, and then do this: perl ../../work/openssl/Configure ... and thereby having it look like the source directory and the build directory aren't the same. We solve this by having a closer look at the computed source and build directories, and making sure they are exactly the same strings if they are in fact the same directory. This is especially important when making symbolic links based on this directories, but may have other ramifications as well. Fixes #12323 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12337) (cherry picked from commit 610e2b3b7019b11d97f1dcda13575254a2c65c3d)
2020-05-20Fix egd and devrandom source configsBernd Edlinger
./config --with-rand-seed=egd need to defines OPENSSL_RAND_SEED_EGD and OPENSSL_NO_EGD so get rid of OPENSSL_NO_EGD (compiles but I did not really test EGD) ./config --with-rand-seed=devrandom does not work since wait_random_seeded works under the assumption that OPENSSL_RAND_SEED_GETRANDOM is supposed to be enabled as well, that is usually the case, but not when only devrandom is enabled. Skip the wait code in this special case. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11848) (cherry picked from commit ddec332f329a432a45c0131d83f3bfb46114532b)
2020-03-17Update copyright yearMatt Caswell
Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/11344)
2020-01-13Configure: use $list_separator_re only for defines and includesRichard Levitte
This regexp was used a bit too uncontrolled, which had it split flag values where it should not have. Fixes #10792 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10793) (cherry picked from commit bbe486cf6154df3d3aaedbae6c5b82d4ed31a5f8)
2019-12-18Configuration: compute openssl_other_defines and related info laterRichard Levitte
The computation of macros and configdata.pm related data from %disabled was done much too early, leaving later disablings without real support. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565)
2019-12-18Disable devcryptoeng on newer OpenBSD versionsRichard Levitte
It's reported that /dev/crypto support has been dropped in OpenBSD 5.7. Fixes #10552 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565)
2019-11-05Configure: Make --strict-warnings meaningful with MSVC clRichard Levitte
We also add this to our x86_64 builds on appveyor (cherry picked from commit b4a7b4ec4acc712b1f22a83966ac986b510f25d8) Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10365)
2019-10-13Configure: accept Windows style compiler optionsDr. Matthias St. Pierre
Currently the Configure command only supports passing UNIX style options (`-opt`) to the compiler. Passing Windows style options (`/opt`) yields an error. Fortunately, the compiler accepts both types of options, nevertheless this commit fixes that discrimination of Windows users. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9961) (cherry picked from commit f246f54f18d380791cc60be4aea0fbc7253a9a20)
2019-10-03Define AESNI_ASM if AESNI assembler is included, and use itRichard Levitte
Because we have cases where basic assembler support isn't present, but AESNI asssembler support is, we need a separate macro that indicates that, and use it. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10080)
2019-09-16Fix building statically without any dso supportBernd Edlinger
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9889)
2019-09-08Configure: clang: move -Wno-unknown-warning-option to the frontDr. Matthias St. Pierre
While gcc ignores unknown options of the type '-Wno-xxx', clang by default issues a warning [-Wunknown-warning-option] (see [3]), which together with '-Werror' causes the build to fail. This turned out to be a problem on the 1.0.2 stable branch in the case of the '-Wextended-offsetof' option, which was removed in version 6.0.0, but needs to be kept here in order to support older clang versions, too (see #9446). Incidentally, master and 1.1.1 branch already contained the -Wno-unknown-warning-option option. Due to its special role and its importance, this commit adds an explaining commit message and moves the option to the front. [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9447) (cherry picked from commit 03e5668343078b963cc6544ad7270743de13e514)
2019-06-04Remove last references to DEBUG_SAFESTACKDr. Matthias St. Pierre
The DEBUG_SAFESTACK preprocessor define is obsolete since 2008 when the non-safestack code was removed by commit 985de8634000. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9070) (cherry picked from commit d4f63f1c39c3908cd81fda07448144bafb9aba4a)
2019-05-27Configure: make 'enable-buildtest-c++' work (not be a regexp)Richard Levitte
OpenSSL 1.1.1's Configure treats the strings in @disablables as regexps, which means that the 'buildtest-c++' option needs a bit of escaping to be interpreted as intended. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9016)
2019-05-27Configure: make C++ build tests optional and configurableRichard Levitte
Disabled by default Fixes #8360 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8370) (cherry picked from commit ac4033d658e4dc210ed4552b88069b57532ba3d7)
2019-05-27Configure: Remove extra warning and sanitizer options from CXXFLAGSRichard Levitte
We add the extra warning and sanitizer options to check our code, which is entirely in C. We support C++ compilers uniquely for the sake of certain external test suites, and those projects can probably sanitize their own code themselves. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9013) (cherry picked from commit 3b437400d90fb89ce5e0d74fd79bda9028f185fb)
2019-05-02Allow setting RCFLAGS as Configure option or environment variableWojciech Kaluza
Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8803) (cherry picked from commit 0c4e984de28b1477e002766b2751576f5c6c47d6)
2019-04-30Configure: process shared-info.pl laterRichard Levitte
The reason is that the shared-info attributes may depend on %disabled, so we need to process all enablings/disablings first. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8846) (cherry picked from commit 8f0dd6d9eec0e52feb1b19725c7134684bff28bc)
2019-04-23Configure: make disabling stuff easier and saferRichard Levitte
Disabling one thing may mean having to disable other things as well. We already have a process to auto-disable things through cascading, but that was under-used. Making the cascading mechanism available through a function to be called to disable stuff makes it more automatic, and helps us when we forget how different disabling options affect others. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8812) (cherry picked from commit 71ef78d71f638c7de893c635ee9b0fd16247c762)
2019-04-23Configure: recognise -static even if given through variablesRichard Levitte
Fixes #8787 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8812) (cherry picked from commit 4650d10ff6ad1048785a009349c8b5d6e922fc7a)
2019-04-23Configure: merge all of %user and %useradd into %config earlierRichard Levitte
This came about with the realisation that upper case CFLAGS, LDFLAGS and so on aren't treated much after that, and this makes figuring out user added flags significantly easier, just look in %config. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8812) (cherry picked from commit c1a09254e4c763b62811bc412afa1498699fce50)
2019-04-10Rework DSO API conditions and configuration optionRichard Levitte
'no-dso' is meaningless, as it doesn't get any macro defined. Therefore, we remove all checks of OPENSSL_NO_DSO. However, there may be some odd platforms with no DSO scheme. For those, we generate the internal macro DSO_NONE aand use it. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8622)
2019-03-19Configure: untabify indentationDr. Matthias St. Pierre
The indentation in the Configure file is currently very strange when viewed in an editor with a tab width of four spaces, because it has mixed tab-and-whitespace indentation, which was apparently done with a tab width of eight spaces. This commit converts all tabs to spaces using expand(1) with default settings. To verify that there are only whitespace changes, use git show --ignore-space-change <this commit> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8512)
2019-02-28Configure: support a few more "make variables" defaulting from envRichard Levitte
CFLAGS, CXXFLAGS, CPPFLAGS, LDFLAGS, and LDLIBS (cherry picked from commit 8e7984e5783877c58cddc7b4e668401580ab4467) Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8359)
2019-02-28Configuration: divide devteam flags into language specific setsRichard Levitte
Some of the devteam flags are not for C++ (cherry picked from commit e373c70a3e535b560f6b6bade914a724aa975c55) Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8359)
2019-02-28Configure: make --strict-warnings a regular user provided compiler optionRichard Levitte
This makes `--strict-warnings` into a compiler pseudo-option, i.e. it gets treated the same way as any other compiler option given on the configuration command line, but is retroactively replaced by actual compiler warning options, depending on what compiler is used. This makes it easier to see in what order options are given to the compiler from the configuration command line, i.e. this: ./config -Wall --strict-warnings would give the compiler flags in the same order as they're given, i.e.: -Wall -Werror -Wno-whatever ... instead of what we got previously: -Werror -Wno-whatever ... -Wall (cherry picked from commit fcee53948b7f9a5951d42f4ee321e706ea6b4b84) Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8359)
2019-02-27Add PADLOCK_ASM to dso_defines rather than lib_definesRichard Levitte
Since the padlock code is an engine, the assembler is for a module, not a library link to when building a program... there's a distinction. Fixes #2311 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8220) (cherry picked from commit 88780b1c5f6000fe6731fec74efe697bcf493b6c)
2019-02-26Revert "Configure: stop forcing use of DEFINE macros in headers"Richard Levitte
Github PR #8246 provides a better solution to the problem. This reverts commit f11ffa505f8a9345145a26a05bf77b012b6941bd. [extended tests] Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (Merged from https://github.com/openssl/openssl/pull/8247) (cherry picked from commit 4089b4340701e3c13e07169e67a7d14519c98658)
2019-02-26Update copyright yearMatt Caswell
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8347)
2019-02-14Configure: stop forcing use of DEFINE macros in headersRichard Levitte
There are times when one might want to use something like DEFINE_STACK_OF in a .c file, because it defines a stack for a type defined in that .c file. Unfortunately, when configuring with `--strict-warnings`, clang aggressively warn about unused functions in such cases, which forces the use of such DEFINE macros to header files. We therefore disable this warning from the `--strict-warnings` definition for clang. (note for the curious: `-Wunused-function` is enabled via `-Wall`) Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8234) (cherry picked from commit f11ffa505f8a9345145a26a05bf77b012b6941bd)
2019-01-04Introduce a no-pinshared optionMatt Caswell
This option prevents OpenSSL from pinning itself in memory. Fixes #7598 [extended tests] Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7983)
2018-12-12Fix error in processing $target{enable}Richard Levitte
Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7885) (cherry picked from commit 7a8a35ff0ce0c25a36b494a4c7e3f5f390679e6e)
2018-12-05Configure: recognize div3w modules and add -DBN_DIV3W.Andy Polyakov
Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7589) (cherry picked from commit 31703da3b8e743c07a9fdb6025aa526594c2a319)
2018-11-19Configuration: only include shared_sources in dirinfo in shared configRichard Levitte
Without this precaution, we end up having directory targets depend on shlib object files for which there are no rules. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/7645)
2018-11-13Configuration: make sure the shared_sources table doesn't contain empty elementsRichard Levitte
Fixes #7634 Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7635)
2018-11-12Configure: ensure empty arrays aren't created inadvertentlyRichard Levitte
Just refering to a hash table element as an array reference will automatically create that element. Avoid that by defaulting to a separate empty array reference. Fixes #7543 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7544) (cherry picked from commit 3bed01a09071fb289484dfd265f0a8a991537282)
2018-10-31Configuration: when building the dirinfo structure, include shared_sourcesRichard Levitte
This makes sure that any resulting directory target in the build files also depend on object files meant for shared libraries. As a side effect, we move the production of the dirinfo structure from common.tmpl to Configure, to make it easier to check the result. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7452) (cherry picked from commit b6e660754c2e799cffe4906269fcace0e07c73bc)
2018-10-28Configure: Improve warning if no random seed source was configuredDr. Matthias St. Pierre
The new Configure summary box (41349b5e6db) now hides the warning about the missing seed source (2805ee1e095) too much. To make it more visible again, add warning markers. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7509) (cherry picked from commit caa8595276c60f009c8621ad466338d2ae39fb86)
2018-10-26Configure: Reword the summary outputDr. Matthias St. Pierre
In commit 820e414d2830 (pr #5247) the summary output of the Configure command was optimized towards instructing people how to create issue reports. It turned out that the wording of this message can confuse new OpenSSL users and make them think that they are seeing an error message. This commit makes the summary output start with a success to prevent a misunderstanding. Also it gives more hints to new OpenSSL users. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7499) (cherry picked from commit 41349b5e6dbd72bfbeaf3cf189d64914240628e3)
2018-08-18Configure: don't probe for --noexecstack assembler option on Darwin.Andy Polyakov
The option has no meaning on Darwin, but it can bail out in combination with -fembed-bitcode or -no-integrated-as... Reviewed-by: Richard Levitte <levitte@openssl.org>
2018-08-16Configure: warn when 'none' is the chosen seed sourceRichard Levitte
Fixes #6980 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/6981)
2018-08-15Turn on TLSv1.3 downgrade protection by defaultMatt Caswell
Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6741)
2018-08-07Check early that the config target exists and isn't a templateRichard Levitte
Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6885)
2018-07-24Configure death handler: instead of printing directly, amend the messageRichard Levitte
This is done by calling die again, just make sure to reset the __DIE__ handler first. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6776)
2018-07-24Configure death handler: remember to call original death handlerRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6776)
2018-07-24Configure death handler: bail out early when run in eval blockRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6776)
2018-07-24Configure: print generic advice when dyingRichard Levitte
On the same note, change the 'NASM not found' message to give specific advice on how to handle the failure. Fixes #6765 Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6771)
2018-07-22Configure: Display error/warning on deprecated/unsupported options after loopRichard Levitte
Fixes #6755 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6759)
2018-07-09Keep supporting the env / make variable PERLRichard Levitte
OpenSSL 1.1.0 supports the use of this environment variable for passing to the build files. For the sake of backward compatibility, we keep it. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/6668)
2018-06-22Configure,util/shlib_wrap.sh: harmonize -Wl and -rpath handling.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6515)
2018-06-22Configure: allow some file extensions to be overridden by target config.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6487)