From 51690fb8881955a4ff3f4648a06f1be3f0945d7b Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 22 Aug 2016 10:17:27 +0200 Subject: [PATCH] VMS: Use strict refdef extern model when building library object files Most of the time, this isn't strictly needed. However, in the default extern model (called relaxed refdef), symbols are treated as weak common objects unless they are initialised. The librarian doesn't include weak symbols in the (static) libraries, which renders them invisible when linking a program with said those libraries, which is a problem at times. Using the strict refdef model is much more like standard C on all other platforms, and thereby avoid the issues that come with the relaxed refdef model. Note: this doesn't apply to VAX C. It's possible that this will make OpenSSL building with VAX C difficult some time in the future if it isn't already. However, VAX C is a very old compiler that we don't expect to see too often, as DEC C (a.k.a VMS C) should have replaced it a long time ago. Reviewed-by: Rich Salz --- crypto/crypto-lib.com | 2 +- ssl/ssl-lib.com | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com index 1423cac288..37dc418bf5 100644 --- a/crypto/crypto-lib.com +++ b/crypto/crypto-lib.com @@ -1222,7 +1222,7 @@ $ CC = "CC" $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - THEN CC = "CC/DECC" $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - - "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - + "''POINTER_SIZE' /NOLIST /PREFIX=ALL /EXTERN_MODEL=STRICT_REFDEF" + - " /INCLUDE=(''CC_INCLUDES')"+ - CCEXTRAFLAGS $! diff --git a/ssl/ssl-lib.com b/ssl/ssl-lib.com index 43fea17541..bf67265a46 100644 --- a/ssl/ssl-lib.com +++ b/ssl/ssl-lib.com @@ -941,7 +941,7 @@ $ CC = "CC" $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - THEN CC = "CC/DECC" $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - - "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - + "''POINTER_SIZE' /NOLIST /PREFIX=ALL /EXTERN_MODEL=STRICT_REFDEF" + - " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS $! $! Define The Linker Options File Name. -- 2.25.1