From 1ec0acf264652bd981e95842723e5414d634cd93 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 5 Oct 2022 12:47:32 +0200 Subject: VMS: For executables, process the use of /INCLUDE=main a bit differently The way it was implemented didn't play well with perl's join(), so it's reimplemented a bit differently. Reviewed-by: Tim Hudson Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/19347) --- Configurations/descrip.mms.tmpl | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'Configurations/descrip.mms.tmpl') diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index 2de2d6d633..c777bc636e 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -1352,14 +1352,15 @@ EOF (map { my $x = $_ =~ /\[/ ? $_ : "[]".$_; "\@ WRITE OPT_FILE \"$x" } @objs), (map { my $x = ($_->{lib} =~ /\[/) ? $_->{lib} : "[]".$_->{lib}; - # Special hack to include the MAIN object - # module explicitly. This will only be done - # if there isn't a 'main' in the program's - # object modules already. - my $main = $_->{attrs}->{has_main} - ? '/INCLUDE=main' : ''; - ( "\@ IF nomain THEN WRITE OPT_FILE \"$x/LIB$main", - "\@ IF .NOT. nomain THEN WRITE OPT_FILE \"$x/LIB" ) } + # Special hack to include the MAIN object module + # explicitly, if it's known that there is one. + # |incmain| is defined in the rule generation further + # down, with the necessary /INCLUDE=main option unless + # the program has been determined to have a main function + # already. + $_->{attrs}->{has_main} + ? "\@ WRITE OPT_FILE \"$x/LIB''incmain'" + : "\@ WRITE OPT_FILE \"$x/LIB" } grep { $_->{lib} =~ m|\.OLB$| } @deps)) ."\""; @@ -1391,6 +1392,8 @@ EOF return <<"EOF" $bin : $deps $analyse_objs + @ incmain = "/INCLUDE=main" + @ IF .NOT. nomain THEN incmain = "" @ OPEN/WRITE/SHARE=READ OPT_FILE $binname.OPT $write_opt1 $write_opt2 -- cgit v1.2.3