[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Wed Mar 23 18:58:16 UTC 2016


The branch master has been updated
       via  828d04afe40caaa19cff23b0ba04008a4313e30e (commit)
       via  b54e35f6cd9a9de3962daa0112e33bd178c49f6d (commit)
      from  921de151d2052c794cf6ad82fe76da92717577f7 (commit)


- Log -----------------------------------------------------------------
commit 828d04afe40caaa19cff23b0ba04008a4313e30e
Author: Richard Levitte <levitte at openssl.org>
Date:   Wed Mar 23 19:30:31 2016 +0100

    VMS: update the properties of symbol search
    
    In this OpenSSL version, we deliver engines with lower case symbol
    names.  The DSO symbol finder must be updated to allow for mixed case
    symbols or it won't fine them.
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>

commit b54e35f6cd9a9de3962daa0112e33bd178c49f6d
Author: Richard Levitte <levitte at openssl.org>
Date:   Wed Mar 23 19:27:08 2016 +0100

    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: Rich Salz <rsalz at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 Configurations/descrip.mms.tmpl | 21 +++++++++++++++------
 NOTES.VMS                       | 15 +++++++++++++--
 crypto/dso/dso_vms.c            |  8 ++++----
 3 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl
index 32c8d1a..b2ae059 100644
--- a/Configurations/descrip.mms.tmpl
+++ b/Configurations/descrip.mms.tmpl
@@ -448,12 +448,19 @@ EOF
       my $srcs =
           join(", ",
                map { abs2rel(rel2abs($_), rel2abs($forward)) } @{$args{srcs}});
-      my $incs =
-          "/INCLUDE=(".join(",",
-                            map {
-                               file_name_is_absolute($_)
-                               ? $_ : catdir($backward,$_)
-                            } @{$args{incs}}).")";
+      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}});
+          $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));" || -
diff --git a/NOTES.VMS b/NOTES.VMS
index 2c7b80b..034ecf4 100644
--- a/NOTES.VMS
+++ b/NOTES.VMS
@@ -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
  -------------------------
 
diff --git a/crypto/dso/dso_vms.c b/crypto/dso/dso_vms.c
index 5b8dc91..654e766 100644
--- a/crypto/dso/dso_vms.c
+++ b/crypto/dso/dso_vms.c
@@ -64,6 +64,7 @@
 # include <errno.h>
 # include <rms.h>
 # include <lib$routines.h>
+# include <libfisdef.h>
 # include <stsdef.h>
 # include <descrip.h>
 # include <starlet.h>
@@ -313,11 +314,10 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym)
 {
     DSO_VMS_INTERNAL *ptr;
     int status;
-# if 0
-    int flags = (1 << 4);       /* LIB$M_FIS_MIXEDCASE, but this symbol isn't
-                                 * defined in VMS older than 7.0 or so */
+# ifdef LIB$M_FIS_MIXEDCASE
+    int flags = LIB$M_FIS_MIXEDCASE;
 # else
-    int flags = 0;
+    int flags = (1 << 4);
 # endif
     struct dsc$descriptor_s symname_dsc;
 


More information about the openssl-commits mailing list