summaryrefslogtreecommitdiffstats
path: root/Configurations/descrip.mms.tmpl
AgeCommit message (Collapse)Author
2024-04-04Diverse small VMS build fixupsRichard Levitte
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24008) (cherry picked from commit 1a4b029af51ba6128a37959796381ca5b8b7ac00)
2024-01-08Fix VMS installation - update vmsconfig.pm for consistencyRichard Levitte
An effort was made to update the VMS installation data to align with configuration data. This touched the script templates in VMS/, but didn't update the generation of vmsconfig.pm to match... and also missed a spot. This change adds the missing updates Ref: https://github.com/openssl/openssl/pull/16842 Fixes #22899 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/23081) (cherry picked from commit 4058e121cbc6818235b0dcb618e636ce3c4d1f2f)
2023-12-07Make sure that the test / tests build target run 'run_tests' lastRichard Levitte
Fixes #22943 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/22947)
2023-09-05VMS: More header inclusion compensation for VMS C compilerRichard Levitte
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/21959)
2023-09-04VMS: More header inclusion compensation for VMS C compilerRichard Levitte
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21951)
2023-06-08build.info: Introduce special syntax for dependencies on script modulesRichard Levitte
The DEPEND statement, when applied on files generated with GENERATE, may be used to specify script modules that the template to be generated from depends on. In short, this sort of depend: DEPEND[generated]=util/perl/OpenSSL/something.pm ... would generate a perl run that has the inclusion directory 'util/perl/OpenSSL' and 'something' as the module to be loaded. However, the package name for this module is 'OpenSSL::something', so to load it the way it's expected, the inclusion directory should be 'util/perl', and the module to be loaded should be specified as 'OpenSSL/something' (to be massaged into a proper module name by the build file template). To allow this, we introduce a file syntax, where a single '|' is used as a directory separator, to delineate what part should be used as the inclustion directory, and which part the module name to be loaded should be derived from: DEPEND[generated]=util/perl|OpenSSL/something.pm Fixes #21112 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21117)
2023-05-24Drop the last reference of SHLIB_EXTRichard Levitte
SHLIB_EXT is a variable that exists on OpenSSL build file templates before version 3.0, for which much of the logic for figuring out file names and such was moved to the 'platform' set of routines. But, it seems that one (now useless) reference remained on the VMS specific descrip.mms.tmpl. We replace it with an explicit '.EXE', which is the default extension for shared libraries on VMS. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21007)
2023-04-18Configurations/descrip.mms.tmpl: Fix a few typosRichard Levitte
These typos caused failed propagation of the 'cflags' attribute from Configurations/10-main.conf. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20737)
2023-02-08Fix more VMS inclusionsRichard Levitte
inclusing quic/quic_local.h from ssl/ssl_lib.c presented another challenge for the current VMS C. Since ssl/quic/quic_local.h in turn includes ../ssl_local.h, we compensated for with the usual whack-a-mole in Configurations/descrip.mms.tmpl. As far as my personal tests go, this seems to be the last fix of this sort, so far. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20196)
2022-11-18Fix more VMS inclusionsRichard Levitte
Including things in ../ssl/record/methods from sources in test/ presented another challenge for the current VMS C. This is compensated for with the usual whack-a-mole in Configurations/descrip.mms.tmpl. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19708)
2022-11-04Configurations/*.tmpl: overhaul assembler make rules.Richard Levitte
NOTE: Not Configurations/unix-Makefile.tmpl, as that was done 4 years ago, in commit a23f03166e0ec49ac09b3671e7ab4ba4fa57d42a. So far assembly modules were intended to be built as .pl->.S->.{asmext} followed by .{asmext}->.o. This posed a problem in build_all_generated rule if it was executed on another computer, and also turned out to be buggy, as .S was also translated to .{asmext} on Windows and VMS. Both issues are fixed by changing the rule sequence to .pl->.S and then .S->.s->.o, with the added benefit that the Windows and VMS build file templates are more in sync with unix-Makefile.tmpl and slightly simpler. Fixes #19594 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19598)
2022-10-06VMS: For executables, process the use of /INCLUDE=main a bit differentlyRichard Levitte
The way it was implemented didn't play well with perl's join(), so it's reimplemented a bit differently. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19347)
2022-10-04VMS: use selective search when linking with shareable imagesRichard Levitte
VMS linking complains a lot about multiply defined symbols unless told otherwise, especially when shareable images are involved. For example, this involves the legacy provider, where there are overriding implementations of certain ERR functions. To quiet the linker down, we need to say that symbols should be searched selectively in shareable images. However, that's not quite enough. The order in which the VMS linker processes files isn't necessarily top to bottom as given on the command line or the option file(s), which may result in some symbols appearing undefined, even though they are. To remedy that, it's necessary to explicitly include all object files and object libraries into a cluster, thus ensuring that they will be processed first. This allows the search for remaining symbol references to be done in the as desired in the shareable images that follow. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19327)
2022-09-28Configurations/descrip.mms.tmpl: Add another inclusion hackRichard Levitte
More adaptations are needed for sources in ssl/, which all include `ssl/ssl_local.h`. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/19276)
2022-05-25Remove include/openssl/configuration.h from mandatory dependenciesRichard Levitte
Since this file is generated by configdata.pm, there's no need to include it among the mandatory dependencies (which end up in the `GENERATE_MANDATORY` Makefile variable). In fact, it shouldn't be there any more, as that would also cause it to be removed by `make clean`. To compensate, we add an explicit removal of that file in the `distclean` target on all platform families. Fixes #18396 Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18398)
2022-05-13mkdef.pl: Add cmd-line flag to differentiate shared libs and DSO.Daniel Fiala
Fixes openssl#16984. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18284)
2022-03-04Rework dependencies between config files and build filesRichard Levitte
Before PR #15310, which reworked how build files (Makefile, ...) were generated, everything was done when configuring, so configdata.pm could depend on build file templates and we'd get away with it. However, since building configdata.pm is now independent of the build file templates, that dependency is unnecessary, and would lead to surprises of the build file template is updated, with an unexpected full reconfiguration as a result, when all that's needed is to run configdata.pm with no flags to get the build file re-generated. This change is therefore a completion of what was forgotten in #15310. Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17756)
2022-02-25VMS: copy prologue/epilogue headers when header files are generatedRichard Levitte
This is crucial when the build tree isn't the source tree, as they only take effect in directories where included header files reside. The issue only comes up when linking with the static libraries, since the shared libraries have upper case aliases of all symbols. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/17755)
2021-12-14Fix VMS installation - Override the openssl logical name in descrip.mms.tmplRichard Levitte
This was part of 0cbb6f6a9ac5aa3ff813ef2e5afe6e443708ee20, but was incomplete in that commit. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit 71a78784e8f000703267276b2f87d055bfa0e00e)
2021-12-14Fix VMS installation - Define the logical name OSSL$MODULESRichard Levitte
Also, the modules installation directory is version agnostic on other platforms, there's no real reason why it shouldn't be on VMS. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit a4f1e23e6cffdf2ef1aadf96572c251e07869787)
2021-12-14Fix VMS installation - consistent program names with version infoRichard Levitte
The program name version info is supposed to be the major release version number. This was forgotten when the versioning scheme was changed for 3.0, so the minor release version number slipped in as well. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit 3c9293b4715229dc7ea2116d22c623c2a92ac69a)
2021-09-10install_fips: Create the OPENSSLDIR as it might not existTomas Mraz
Fixes #16564 Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16569)
2021-09-10VMS: Fix descrip.mms templateRichard Levitte
away the use of $(DEFINES), which does get populated with defines given through configuration. This makes it impossible to configure with extra defines on VMS. Uncommenting and moving $(DEFINES) to a more proper spot gives the users back that ability. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16561) (cherry picked from commit 1dc15a3330434ef1f79921a2d97c585048dcf05e)
2021-09-09OpenSSL::Ordinals::set_version() should only be given the short versionRichard Levitte
This function tried to shave off the pre-release and build metadata text from the the version number it gets, but didn't do that quite right. Since this isn't even a documented behaviour, the easier, and arguably more correct path is for that function not to try to shave off anything, and for the callers to feed it the short version number, "{MAJOR}.{MINOR}.{PATCH}", nothing more. The build file templates are adjusted accordingly. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16556)
2021-09-06Configuration: support building for OpenVMS for x86_64Richard Levitte
OpenVMS for x86_64 is currently out on a field test. Building programs for it is currently done with cross compilation on Itanium. The cross compilation tools are made available by running a script, which makes cross-compilation variants of most commands available, and adds the cross-compilation C compiler XCC. Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16498)
2021-08-25VMS: Correct faulty source directory specificationRichard Levitte
$(SRCDIR)/doc doesn't work right on VMS. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16395)
2021-08-04Windows, VMS: Do install_fips on install if fips is enabledTomas Mraz
Also fix some inconsistencies and minor bugs related to the install_fips target on Windows and VMS. Fixes #16194 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16208)
2021-06-18Make util/wrap.pl work better on VMSRichard Levitte
Perl's system() on VMS needs to have the command line properly fixed up, even with arguments passed in list form. We arrange that by having util/wrap.pl use the same command line fixups as OpenSSL::Test. As a consequence, util/wrap.pl needs to be generated, to easily pick up data from configdata.pm. This also removes yet another file copying hack from the build file templates. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15791)
2021-06-16Build file templates: Fix in2script dependenciesRichard Levitte
The in2script functions generates the build file rules for generating scripts from .in files. A dependency on configdata.pm is needed, since it's being used for this. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15792)
2021-06-16VMS build: drop a spurious debug printRichard Levitte
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15758)
2021-05-26Build file templates: rework FIPS module installationRichard Levitte
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15436)
2021-05-26Build file templates: rework how general dependencies are computedRichard Levitte
For some types of targets, we pretty much know what kinds of files all the dependencies are. For some, however, we can't assume anything, and are faced with dependencies in platform agnostic form. We need to find those in diverse places in %unified_info, and deduce from there how they should be converted to a platform specific form. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15436)
2021-05-26Rework how providers/fipsmodule.cnf is producedRichard Levitte
First of all, we have concluded that we can calculate the integrity checksum with a simple perl script. Second, having the production of providers/fipsmodule.cnf as a dependency for run_tests wasn't quite right. What we really want is to generate it as soon as a new providers/fips.so is produced. That required a small bit of fiddling with how diverse dependencies are made. Fixes #15166 Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15436)
2021-05-22VMS: Fix run of generic generator programs in descrip.mms.tmplRichard Levitte
For a generic program, always go through the MCR utility. Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15397)
2021-05-22Configurations/descrip.mms.tmpl: rework the inclusion hacksRichard Levitte
Because VMS C has some trouble with recursive inclusion of header files, we have had to help it out for object files where there is such an inclusion structure. Previously, we did so with temporary logical names that were the same as the first directory in an inclusion, so for example, to enable this inclusion (found in ssl/ssl_local.h), we created the logical name "record" when building any of the object files in the ssl/ subdirectories: #include "record/record.h" However, there is another way with the VMS C compiler, to selectively specify extra include directories in Unix form directly to the compiler. The logic is that from the directory where the source file to compile is located, the specified inclusion directory merged with the inclusion string should be able to access to specified header file. So for example, when a file in ssl/record/ is compiled, the following inclusion is found: #include "../ssl_local.h" So far so good, VMS C handles it properly. However, the recursive inclusion of "record/record.h" fails. However, if the compiler is helped out a little bit, with the following extra qualifier, then it works: /INCLUDE="../" The reason is that the compiler merges "../" and "record/record.h" into "../record/record.h", which is the correct path to that header file from the directory of the source file being compiled. All that remained was to figure out all places where this trouble may occur, and specify extra Unix formatted inclusion directories to specify on per object file basis. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15369)
2021-05-19Configurations/descrip.mms.tmpl: Add another inclusion hackRichard Levitte
crypto/ec/curve448/ has a series of inclusions that throws VMS C off, so we compensate for it the same way as we have done before. Fixes #14247 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15317)
2021-05-19Configurations/descrip.mms.tmpl: Change strategy for include directoriesRichard Levitte
Instead of what we used to do, put all include directories in a number of DCL variables and generate the /INCLUDE qualifier value on the command line, we instead generate VMS C specific header files with include directory pragmas, to be used with the VMS C's /FIRST_INCLUDE qualifier. This also shortens the command line, the size of which is limited. VMS C needs to have those include directories specified in a Unix form, to be able to safely merge #include paths with them when searching through them. Fixes #14247 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15317)
2021-05-19Thrown away all special descrip.mms variablesRichard Levitte
Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15317)
2021-05-19Configurations/descrip.mms.tmpl: Diverse updatesRichard Levitte
Get it back in sync with the other templates, and correct a few syntax errors that have crept in. Fixes #14247 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15317)
2021-05-19Move some OpenSSL perl utility functions to OpenSSL::UtilRichard Levitte
quotify1() and quotify_l() were in OpenSSL::Template, but should be more widely usable. configdata.pm.in's out_item() is also more widely useful and is therefore moved to OpenSSL::Util as well, and renamed to dump_data(). Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15310)
2021-04-29Configure/Makefile: fix the `-macopt` argument of the fipsinstall commandDr. Matthias St. Pierre
The FIPS hmac key is provided as a hexadezimal string, which needs to be be prefixed with `hexkey:`, not `key:`. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13684)
2021-04-28Configuration: rework how dependency making is handledRichard Levitte
Previously, we had dependency making pretty much hard coded in the build file templates, with a bit of an exception for Unix family platforms, where we had different cases depending on what dependency making program was found. With the Embarcadero C++ builder, a separate scheme appeared, with a different logic. This change merges the two, and introduces two config target attributes: makedepcmd The program to use, where this is relevant. This replaces the earlier configuration attribute 'makedepprog'. makedep_scheme This is a keyword that can be used by build files templates to produce different sorts of commands, but most importantly, to pass as argument to util/add-depend.pl, which uses this keyword as a "producer" for the dependency lines. If the config target doesn't define the 'makedep_scheme' attribute, Configure tries to figure it out by looking for GCC compatible compilers or for the 'makedepend' command. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/15006)
2021-04-14nits: fix a few typo in template codeFdaSilvaYY
Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14806)
2021-03-03Fix the perl code to get FIPSMODULENAMERichard Levitte
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14320)
2021-03-03build.info: Make it possible to use compiled programs as generatorsRichard Levitte
Our goal is to be able to produce fipsmodule.cnf with the help of 'openssl fipsinstall', using the openssl program that we build. This refactors the generatesrc code in all the build file templates to replace $generator and $generator_incs with $gen0, $gen_args and $gen_incs, which makes it easier and more consistent to manipulate different bits of the generator command, and also keeps the variable names consistent while not overly long. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14320)
2021-03-03build.info: Add the possibility to add dependencies on raw targetsRichard Levitte
We need to add something for the 'tests' target to depend on, so a special syntax for those is introduced: DEPEND[|tests|]=fipsmodule.cnf Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14320)
2021-02-12VMS documentation fixesRichard Levitte
This mostly clarifies details. Fixes #13789 Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13835)
2021-02-12Configurations/descrip.mms.tmpl: avoid enormous PIPE commandsRichard Levitte
DCL has a total command line limitation that's too easily broken by them. We solve them by creating separate message scripts and using them. Fixes #13789 Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13835)
2020-10-08descrip.mms.tmpl: Add a target to install the FIPS module configRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/13032)
2020-06-29Add --fips-key configuration parameter to fipsinstall application.Rich Salz
Change default FIPS HMAC KEY from all-zero's Use default FIPSKEY if not given on command line. Make all -macopt in fipsinstall optional Make all tests, except fipsinstall, use the default -macopt and -mac_name flags. Define and use FIPSDIR variable on VMS/MMS. Also use SRCDIR/BLDDIR in SRCTOP/BLDTOP. Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12235)