Commit b54e35f6 authored by Richard Levitte's avatar Richard Levitte
Browse files

VMS: compensate for command line length limits with a logical name



Sometimes, you might end up with a rather long compile line due to
excessively long /INCLUDE directories.  Compensate for it by making
a temporary logical name with them and using said logical name as
/INCLUDE argument.

A note was added to NOTES.VMS regarding these limitations.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 921de151
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -448,12 +448,19 @@ EOF
      my $srcs =
          join(", ",
               map { abs2rel(rel2abs($_), rel2abs($forward)) } @{$args{srcs}});
      my $incs =
          "/INCLUDE=(".join(",",
                            map {
      my $incs_on = "\@ !";
      my $incs_off = "\@ !";
      my $incs = "";
      if (@{$args{incs}}) {
          $incs_on =
              "DEFINE tmp_includes "
              .join(",-\n\t\t\t", map {
                                      file_name_is_absolute($_)
                                      ? $_ : catdir($backward,$_)
                            } @{$args{incs}}).")";
                                  } @{$args{incs}});
          $incs_off = "DEASSIGN tmp_includes";
          $incs = " /INCLUDE=(tmp_includes:)";
      }
      my $before = $unified_info{before}->{$obj.".OBJ"} || "\@ !";
      my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !";
      my $depbuild = $disabled{makedepend} ? ""
@@ -463,7 +470,9 @@ EOF
$obj.OBJ : $deps
        ${before}
        SET DEFAULT $forward
        $incs_on
        \$(CC) \$(CFLAGS)${incs}${depbuild} /OBJECT=${objd}${objn}.OBJ /REPOSITORY=$backward $srcs
        $incs_off
        SET DEFAULT $backward
        ${after}
        \@ PIPE ( \$(PERL) -e "use File::Compare qw/compare_text/; my \$x = compare_text(""$obj.MMS"",""$obj.tmp-MMS""); exit(0x10000000 + (\$x == 0));" || -
+13 −2
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@
 Requirement details
 -------------------

 In addition to the requirements listed in INSTALL, these are required
 as well:
 In addition to the requirements and instructions listed in INSTALL,
 this are required as well:

  * At least ODS-5 disk organization for source and build.
    Installation can be done on any existing disk organization.
@@ -22,6 +22,17 @@
 a different ANSI C compiler may require some work.


 About MMS and DCL
 -----------------

 MMS has certain limitations when it comes to line length, and DCL has
 certain limitations when it comes to total command length.  We do
 what we can to mitigate, but there is the possibility that it's not
 enough.  Should you run into issues, a very simple solution is to set
 yourself up a few logical names for the directory trees you're going
 to use.


 Checking the distribution
 -------------------------