summaryrefslogtreecommitdiffstats
path: root/Configurations
AgeCommit message (Collapse)Author
2020-03-14Configurations: Fix "android" configuration targetRichard Levitte
This target gave '-pie' as a C flag when it should be a linker flag. Additionally, we add '-fPIE' as C flag for binaries. Fixes #11237 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11238)
2020-03-14Andoid cross compile: change ANDROID_NDK_HOME to ANDROID_NDK_ROOTRichard Levitte
According to forum discussions with NDK developers, ANDROID_NDK_HOME is used for something else. Fixes #11205 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11206)
2020-03-02Build: Generate apps/progs.c and apps/progs.h in build timeRichard Levitte
util/progs.pl depends on the build tree (on configdata.pm, specifically), so it needs to be run from the build tree. But why stop there? We might as well generate apps/progs.c and apps/progs.h when building. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11185)
2020-02-27Build file templates: don't set OPENSSL_{ENGINES,MODULES}Richard Levitte
Since we've now switched to use util/wrap.pl to wrap uninstalled programs everywhere, there's no need to set the environment variables OPENSSL_ENGINES and OPENSSL_MODULES globally for the tests. Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/11110)
2020-02-26Use a wrapper for pod2htmlRich Salz
Remove unused util/process_docs.pl Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10856)
2020-02-18TEST: Create test specific output directoriesRichard Levitte
We had all tests run with test/test-runs/ as working directory, and tests cleaned up after themselves... which is well and good, until you want to have a look at what went wrong when a complex test fails, and you have to recreate everything it does manually. To remedy this, we have OpenSSL::Test create the result directory dynamically (and cleaning it up first if it's already there) and let the test recipe have that as working directory. Test recipes are now encouraged to name their diverse output files uniquely, and not to clean them up, to allow a developer to have a look at the files that were produced. With continuous integration that allows this, the result directories could also be archived and be left as a build artifact. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11080)
2020-02-18Make util/find-doc-nits runnable from the build treeRichard Levitte
Because we generate an increasing number of POD files, some of them end up in the build tree. This makes it difficult for find-doc-nits to work as desired when the build tree is separate from the source tree. The best supported way to make it work in such an environment is to run it from the build tree and let it use the build information from configdata.pm to find all the POD files. To make this smooth enough, we add a function 'files' that returns an array of file names corresponding to criteria from the caller. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11045)
2020-02-13Add assembly config targets for UEFI buildChristopher J Zurcher
Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11054)
2020-02-06Fix misspelling errors and typos reported by codespellDr. Matthias St. Pierre
Fixes #10998 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11000)
2020-01-29Document most missing optionsRich Salz
Add cmd-nits make target. Listing options should stop when it hits the "parameters" separator. Add missing .pod.in files to doc/man1/build.info Tweak find-doc-nits to try openssl-XXX before XXX for POD files and change an error messavge to be more useful. Fix the following pages: ca, cms, crl, dgst, enc, engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand, rehash, req, rsautil, s_server, speed, s_time, sess_id, smime, srp, ts, x509. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10873)
2020-01-22Fix some missing doc links.Rich Salz
Replace "=for openssl foreign manuals" with simpler syntax, it looks like the "=for openssl ifdef" construct. Fix some broken L<> links; add some missing foreign references and fixed some typo's. The WARNINGS in dhparam referred to non-existant commands so reword it. Fixes #10109 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10256)
2020-01-17Build file templates: Use explicit files instead of $< or $? for podsRichard Levitte
When generating html or manpages from POD files, we used $< or $? to get the file name to process. It turns out, though, that some make implementations only define $< with implicit rules, so its expansion remains empty in explicit rules. $? is a fine replacement, but only as long as we have one dependency, so it may cause problems in the future. The final solution seems to be to use explicit POD file names instead. That leaves no doubts. Fixes #10817 Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10849)
2020-01-08nmake: fix install_html_docs targetDr. Matthias St. Pierre
The nmake rule contains actually two errors: 1. The $< target[1] does not work for regular rules and is expanded to an empty string after issuing the warning NMAKE : warning U4006: special macro undefined : '$<"' Solution: replace $< by $? 2. The substitution regex is not quoted correctly, which leads to the following error message by cmd.exe: 'href' is not recognized as an internal or external command, operable program or batch file. Solution: Quoting arguments for cmd.exe is really a nightmare, but with the help of the excellent description [2] I was able to properly quote the regex. Things were complicated by the fact that a lot of levels of unquoting needed to be considered: * perl (windows-makefile.tmpl -> makefile) * make (reading the makefile) * cmd.exe (executed by make) * perl (scanning command line using CommandLineToArgvW()) The fix works, but the regex has become unmaintainable. It would actually be better to wrap the entire command (including the regex) into a little perl script which can be called by make directly. [1] https://docs.microsoft.com/en-us/cpp/build/reference/filename-macros [2] https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/ Fixes #10648 Fixes #10749 [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10719)
2020-01-07Configuration: synchronise the variables on the build file templatesRichard Levitte
For some reason, we didn't use some of the possible target attributes in the Unix Makefile template, and there was a similar but much smaller lack of use in the Windows makefile template as well. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10753)
2019-12-26Configurations/windows-makefile.tmpl: HTMLDOCS are files, not directoriesRichard Levitte
Remove them using "del", not "rmdir" Fixes #10553 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10555)
2019-12-19Make Windows build more robustHaohui Mai
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/10586)
2019-12-14Deprecate most of debug-memoryRich Salz
Fixes #8322 The leak-checking (and backtrace option, on some platforms) provided by crypto-mdebug and crypto-mdebug-backtrace have been mostly neutered; only the "make malloc fail" capability remains. OpenSSL recommends using the compiler's leak-detection instead. The OPENSSL_DEBUG_MEMORY environment variable is no longer used. CRYPTO_mem_ctrl(), CRYPTO_set_mem_debug(), CRYPTO_mem_leaks(), CRYPTO_mem_leaks_fp() and CRYPTO_mem_leaks_cb() return a failure code. CRYPTO_mem_debug_{malloc,realloc,free}() have been removed. All of the above are now deprecated. Merge (now really small) mem_dbg.c into mem.c Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10572)
2019-12-11Fix some typosVeres Lajos
Reported-by: misspell-fixer <https://github.com/vlajos/misspell-fixer> CLA: trivial 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/10544)
2019-11-29Adapt *.tmpl to generate docs at build timeRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6236)
2019-11-29Add the possibility to generate documentation at build timeRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6236)
2019-11-10Configuration: make Solaris builds with gcc recognise GNU ldRichard Levitte
The solaris config targets assumed that GNU cc used Sun ld at all times. However, there are setups where GNU ld is used instead, so we adapt the Solaris gcc config targets to use the mechanism introduced with Configurations/shared_info.pl to try to detect what ld flavor is being used and set the diverse ld flags accordingly. Fixes #8547 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8548)
2019-11-02Configure: Make --strict-warnings meaningful with MSVC clRichard Levitte
We also add this to our x86_64 builds on appveyor Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10287)
2019-10-31Fix find/rm command in Unix clean recipeTanzinul Islam
The `./pyca-cryptography/.travis/downstream.d` subdirectory that causes the `rm` command to fail (albeit harmlessly, but with a warning from `make` nonetheless). >rm -f `find . -name '*.d' \! -name '.*' -print` >rm: cannot remove './pyca-cryptography/.travis/downstream.d': Is a directory >make: [Makefile:1910: clean] Error 1 (ignored) Exclude directories from being matched by the `find` commands. CLA: trivial Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10264)
2019-10-20windows-makefile.tmpl: Convert all /I and /D to -I and -DRichard Levitte
We were not consistently using one or the other, and the perlasm code assumes dashes, which MSVC tolerates. Fixes #10075 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10222)
2019-10-17Configure: break long lines in build filesRichard Levitte
Fixes #8961 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8990)
2019-10-14Building: Add modules with DEPENDs to GENERATEd filesRichard Levitte
For files GENERATEd from templates (.in files), any perl module (.pm file) that the file depends on will automatically be used. This means that these two lines: GENERATE[foo]=foo.in DEPEND[foo]=whatever.pm will emit this command in a Makefile (or corresponding): foo: foo.in whatever.pm configdata.pm $(PERL) -I. -Ipathto -Mwhatever -Mconfigdata $(SRCDIR)/util/dofile.pl \\ foo.in > foo Note that configdata.pm is automatically added, since util/dofile.pl itself depends on it. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10162)
2019-10-10Build files: Make it possible to source libraries into other librariesRichard Levitte
Added functionality to use static libraries as source for other libraries. When done this way, the target library will use the object files from the sourced static libraries, making the sourced libraries work as "containers" for object files. We also need to make sure that the Unix Makefile template knows how to deal with shared libraries and modules that depend on static libraries. That's new situation we haven't had before. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10088)
2019-10-10Configurations/common.tmpl: Rework dependency resolutionRichard Levitte
The dependency resolution is made uniquely to resolve proper library order when linking a program, a module or a shared library. resolvedepends() did a little too much at once, so it's now reduced to only collect dependencies (and is renamed to collectdepends()), while a new function, expanddepends(), expands a list of dependency to insure that dependent libraries are present after depending libraries, and finally there is reducedepends() which removes unnecessary duplicates, leaving only the last one. resolvedepends() is now a simple utility routine that calls the three mentioned above in correct order. As part of this, we implement weak dependencies through the 'weak' build.info attribute. This is meant to cause a specific order between libraries without requiring that they are all present. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10088)
2019-10-10Configure: rework build.info grammar and attributesRichard Levitte
The build.info grammar's regular expressions were a horrible read. By assigning certain sub-expressions to variables, we hope to make it a little more readable. Also, the handling of build.info attributes is reworked to use a common function instead of having copies of the same code. Finally, the attributes are reorganized to specify if they belong with programs, libraries, modules or scripts. This will enable more intricate attribute assignment in changes to come. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10088)
2019-10-03Rename "private" file, doc doc changes in CHANGESRich Salz
Use err() for find-doc-nits -e output Doing this meant we could remove the -s flag, so we do so; move option/help stuff to top of script. Add a CHANGES entry. Rename missing to other.syms Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10039)
2019-09-28Reorganize local header filesDr. Matthias St. Pierre
Apart from public and internal header files, there is a third type called local header files, which are located next to source files in the source directory. Currently, they have different suffixes like '*_lcl.h', '*_local.h', or '*_int.h' This commit changes the different suffixes to '*_local.h' uniformly. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9333)
2019-09-20Exit non-zero if find-doc-nits finds nitsRich Salz
Filter all output to a new &err() routine, which sets the global exit status, $status. Also, fix all subroutine definitions and references to be consistent: no prototypes, no & before function calls. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/9733)
2019-09-16Build files: Unify standard arguments for assembler generating scripsRichard Levitte
- Make the last argument always be the output file. - Make the first argument always be the flavour, even if there is no flavour (i.e. it might become the empty string). - Make the next to last argument to be $(PROCESSOR) if that one has a value. - Remaining arguments are C prepropressor arguments. Perl scripts that should handle this may use the following code: $output = pop; $flavour = shift; if ($ARGV[$#ARGV] eq '386') { # Do 386 specific things } else { # Do whatever else, with the knowledge the @ARGV contains # C preprocessor arguments } Some scripts don't care about anything than $output, and that's ok. Some scripts do care, but handle it a little differently, and that's ok too (notably, the x86 scripts call asm_init() with the first and the last argument after having popped $output). As long as they handle the argument order right, they are going to be fine. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9884)
2019-09-12Rework test/run_tests.pl to support selective verbosity and TAP copyRichard Levitte
This includes a complete rework of how we use TAP::Harness, by adding a TAP::Parser subclass that allows additional callbacks to be passed to perform what we need. The TAP::Parser callbacks we add are: ALL to print all the TAP output to a file (conditionally) to collect all the TAP output to an array (conditionally) EOF to print all the collected TAP output (if there is any) if any subtest failed To get TAP output to file, the environment variable HARNESS_TAP_COPY must be defined, with a file name as value. That file will be overwritten unconditionally. To get TAP output displayed on failure, the make variable VERBOSE_FAILURE or VF must be defined with a non-emoty value. Additionally, the output of test recipe names has been changed to only display its basename. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9862)
2019-08-27testing: set OPENSSL_MODULES to the providers directory by defaultRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9618)
2019-08-17Windows UWP builds: determine automatically if asm should be disabledRichard Levitte
Earlier Windows SDK versions lack the necessary support for our ASM builds, so we check for the SDK version that has the support. Information on exactly what registry key to check was found here: https://stackoverflow.com/questions/2665755/how-can-i-determine-the-version-of-the-windows-sdk-installed-on-my-computer Ref: #9125 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9440)
2019-08-12Configurations/unit-Makefile.tmpl: Don't clean away dotted filesRichard Levitte
A local 'make clean' did some sweeping removals of files execpt for the .git directory. This is a little too sweeping, as other dotted files might be cleaned away if they happen to match the pattern that's searched for. An example is a symlink .dir-locals.el that would keep disappearing if you build in the source tree and do a make clean... So we change this to leave all dotted files alone. Our builds do not produce such files anyway, so this is a harmless (or rather, less harmful) change. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9573)
2019-07-15Refactor apps/progs.* to be generate with 'make update'Richard Levitte
This makes for a cleaner apps/progs.h as well as as cleaner apps/build.info. We also break out the type declarations to apps/include/function.h apps/progs.c and apps/progs.h are NOT regenerated when 'apps' is disabled. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9340)
2019-07-02Fix TyposAntoine Cœur
CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9288)
2019-07-01Remove EXPORT_VAR_AS_FUNCRich Salz
We only export functions, not global, so remove the config option and some of the #ifdef stuff. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9285)
2019-07-01Remove NextStep supportRich Salz
Because of that we can remove OPENSSL_UNISTD and some other macros from e_os2.h and opensslconf.h Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9204)
2019-06-21Remove OPENSSL_memcmp.Pauli
After avoiding OPENSSL_memcmp for EC curve comparison, there are no remaining uses in the source code. The function is only defined in an internal header and thus should be safe to remove for 3.0.0. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/9207)
2019-06-17Configure: final cleanup of asm related thingsRichard Levitte
Remove the *_asm templates in Configurations/00-base-templates.conf, all attempts to inherit them, and the asm() perl function. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move padlock_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move keccak1600_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move poly1305_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move chacha_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move modes_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move cmll_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)
2019-06-17Move wp_asm_src file information to build.info filesRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9166)