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. _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make