Skip to content

Commit

Permalink
Fix more VMS inclusions
Browse files Browse the repository at this point in the history
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 #19708)
  • Loading branch information
levitte committed Nov 18, 2022
1 parent 48cc4e0 commit 3c4e250
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions Configurations/descrip.mms.tmpl
Expand Up @@ -209,12 +209,12 @@
@cnf_ldflags, '$(LDFLAGS)');
our $bin_ex_libs = join('', @cnf_ex_libs, '$(EX_LIBS)');

# This is a horrible hack, but is needed because recursive inclusion of files
# in different directories does not work well with VMS C. We try to help by
# specifying extra relative directories. They must always be in Unix format,
# relative to the directory where the .c file is located. The logic is that
# any inclusion, merged with one of these relative directories, will find the
# requested inclusion file.
# These are horrible hacks, but are needed because recursive inclusion of
# files in different directories does not work well with VMS C. We try to
# help by specifying extra relative directories. They must always be in Unix
# format, relative to the directory where the .c file is located. The logic
# is that any inclusion, merged with one of these relative directories, will
# find the requested inclusion file.
foreach (grep /\[\.crypto\.async\.arch\].*\.o$/, keys %{$unified_info{sources}}) {
my $obj = platform->obj($_);
push @{$unified_info{includes_extra}->{$obj}}, qw(../);
Expand Down Expand Up @@ -255,6 +255,13 @@
foreach (grep /\[\.test\].*?\.o$/, keys %{$unified_info{sources}}) {
my $obj = platform->obj($_);
push @{$unified_info{includes_extra}->{$obj}}, qw(../ssl ./helpers);
# Some of the sources in [.test] also include headers like
# "../ssl/record/methods/recmethod_local.h", which in turn might include
# "../../ssl_local.h", so these object files need yet another hack.
# We could make this specific to just the object files that are affected
# directly, but that would end up with more whack-a-mole of this sort, so
# nah, we do it broadly.
push @{$unified_info{includes_extra}->{$obj}}, qw(../ssl/record/methods);
}
foreach (grep /\[\.test\.helpers\].*?\.o$/, keys %{$unified_info{sources}}) {
my $obj = platform->obj($_);
Expand Down

0 comments on commit 3c4e250

Please sign in to comment.