Fix more VMS inclusions
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.
@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(../);
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($_);
