bug-make
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]