summaryrefslogtreecommitdiffstats
path: root/Configurations/10-main.conf
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2018-09-13 17:02:53 +0200
committerRichard Levitte <levitte@openssl.org>2018-09-14 11:00:38 +0200
commit2935f6241c3a1f0dc6c7a6e0a95da4bc5f35439b (patch)
treeaa660ff3a80508a652f78bd6fde182d9ff162f69 /Configurations/10-main.conf
parentc40af30ec5b8ef30be870ad734fc8bf9caeeafc2 (diff)
VMS: turn on name mangling for all our programs
With the change to have separate object files by intent, VMS name mangling gets done differently. While we previously had that for libraries only, we must now turn that on generally for our programs, because some of them depend in internal libraries where mangled names are all that there is. Dynamic modules are still built with non-mangled names, which is good enough to show that it's possible to build with our public libraries using our public headers. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7208)
Diffstat (limited to 'Configurations/10-main.conf')
-rw-r--r--Configurations/10-main.conf11
1 files changed, 8 insertions, 3 deletions
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 5cf345da0a..8360bb3671 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1732,10 +1732,15 @@ my %targets = (
lflags => picker(default => "/MAP='F\$PARSE(\".MAP\",\"\$\@\")'",
debug => "/DEBUG/TRACEBACK",
release => "/NODEBUG/NOTRACEBACK"),
+ # Because of dso_cflags below, we can't set the generic |cflags| here,
+ # as it can't be overriden, so we set separate C flags for libraries
+ # and binaries instead.
+ bin_cflags => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"),
lib_cflags => add("/NAMES=(AS_IS,SHORTENED)/EXTERN_MODEL=STRICT_REFDEF"),
- # no_inst_lib_cflags is used instead of lib_cflags by descrip.mms.tmpl
- # for object files belonging to selected internal libraries
- no_inst_lib_cflags => "",
+ # For modules specifically, we assume that they only use public
+ # OpenSSL symbols, and therefore don't need to mangle names on
+ # their own.
+ dso_cflags => "",
ex_libs => add(sub { return vms_info()->{zlib} || (); }),
shared_target => "vms-shared",
dso_scheme => "vms",