[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug #41758] VMS Make incorrectly reports archives support present.
From: |
h.becker |
Subject: |
Re: [bug #41758] VMS Make incorrectly reports archives support present. |
Date: |
Mon, 03 Mar 2014 20:02:04 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130519 Icedove/17.0.5 |
On 03/03/2014 01:16 AM, John Malmberg wrote:
> URL:
> <http://savannah.gnu.org/bugs/?41758>
>
> Summary: VMS Make incorrectly reports archives support
> present.
> Project: make
> Submitted by: wb8tyw
> Submitted on: Mon 03 Mar 2014 12:16:43 AM GMT
> Severity: 3 - Normal
> Item Group: Bug
> Status: None
> Privacy: Public
> Assigned to: None
> Open/Closed: Open
> Discussion Lock: Any
> Component Version: 4.0
> Operating System: VMS
> Fixed Release: None
> Triage Status: None
>
> _______________________________________________________
>
> Details:
>
> When you ask VMS Make what features it supports, "archives" is in the list.
>
> EAGLE> bash -c "echo '\$(info \$(.FEATURES))' | make -f- 2>/dev/null"
> \target-specific order-only second-expansion else-if shortest-stem undefine
> oneshell archives
> %NONAME-E-NOMSG, Message number 00000002
There is librarian support, as can be seen in default.c where AR is set
to "library/obj" and ARFLAGS to "/replace". It is known that the VMS
librarian and Unix ar behave differently. For example, librarian expects
an object library to exist for the "/replace" command while ar's "r"
command just creates a non-existing archive. So there is "some" support.
Maybe the feature shouldn't be set.
> When you run the features/archives test, it fails.
>
> features/archives .......................................
> run_command_with_output(/lcl_root/make/tests/work/features/archives.log,):
> make
> -f /lcl_root/make/tests/work/features/archives.mk
> /EAGLE$DQA0/alpha_root/gnv/make/make.exe.1: *** [libxx.a(a1.o)] Error
> 0x1086109c
> /EAGLE$DQA0/alpha_root/gnv/make/make.exe.1: unable to open library 'libxx.a'
> to
> lookup member 'a1.o'
> /EAGLE$DQA0/alpha_root/gnv/make/make.exe.1: *** Archive member 'libxx.a(a1.o)'
> m
> ay be bogus; not deleted
>
> *** Test died (features/archives): Command failed: Cannot execute make -f
> /lcl_r
> oot/make/tests/work/features/archives.mk
As I understand, to run the tests you need gnv. So you are using gnv and
bash and not "plain" VMS. However, for VMS this is not really surprising:
$ write sys$output f$message(%x1086109c)
%LIBRAR-F-OPENIN, error opening !AS as input
If you create the archive/library
$ libr/cre libxx.a
given the object a1.o and a rule like
libxx.a(a1.o): a1.o
will result in a
library/obj /replace libxx.a a1.o
and as said above, replace will not create a library:
$ delete libxx.a;
$ library/obj /replace libxx.a a1.o
%LIBRAR-F-OPENIN, error opening USR_ODS5:[BECKER_H.X]LIBXX.A; as input
-RMS-E-FNF, file not found
$
> Two other bugs are visible in this output and will be handled separately by
> what should be minor fixes.
>
> 1. arv[0] is reported differently by VMS. A patch from one of the Bash
> 4.2.45, Coreutils 8.22, or gawk 4.1 ports should fix this.
Yes, argv[0] in VMS is something like
eagle$dqa0:[alpha_root.gnv.make]make.exe;1
> 2. Exit status is reported wrong. This same bug was recently fixed in GNU Awk
> 4.1 so a similar fix should work here.
This looks like a simple exit with MAKE_TROUBLE, which for VMS is
#defined to 2. It would be nice to have VMS error messages or at least
VMS compatible error messages, here.