From 68a39960a7a46545419fa7447291fad2e4c483f2 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sun, 21 Aug 2016 23:36:49 +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. Reviewed-by: Rich Salz --- Configurations/10-main.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index cc1a207ea8..4a2abaeb3a 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1730,7 +1730,7 @@ sub vms_info { lflags => picker(default => "/MAP", debug => "/DEBUG/TRACEBACK", release => "/NODEBUG/NOTRACEBACK"), - lib_cflags => add("/NAMES=(AS_IS,SHORTENED)"), + lib_cflags => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"), dso_cflags => add("/NAMES=(AS_IS,SHORTENED)"), shared_target => "vms-shared", dso_scheme => "vms", -- 2.25.1