Re: vms:test variables

2014-04-07 Thread h.becker
On 04/06/2014 07:34 PM, John E. Malmberg wrote:
 Ok, so now we have the a baseline test suite ported, what is it going to
 take to get this stuff committed so that we can start working on the
 bugs that have been exposed?

I don't know who will/should answer such a question. I still have no
luck nor fun with these tests:

$ @TEST_MAKE
--
  Running tests for GNU make on VMS
   GNU Make 4.0.90
--

Clearing work...
Finding tests...

features.dir/archives ...

FAILED (0/0 passed)scripts/features.dir/archives
features.dir/comments ...

FAILED (0/0 passed)scripts/features.dir/comments
features.dir/conditionals ...

FAILED (0/0 passed)scripts/features.dir/conditionals
features.dir/default_names ..
...

OK, I can run one when I specify one, but it fails due to bash's ::

$ make -f [.tests.work.variables]undefine.mk
recursive simple recursive
undefined recursive undefined
$ @TEST_MAKE -keep variables/undefine
--
  Running tests for GNU make on VMS
   GNU Make 4.0.90
--

Clearing work...
Making work dirs...

variables/undefine .. Error running
make (expected 0; got 512): make -f work/variables/undefine.mk
Error running make (expected 0; got 512): make -f
work/variables/undefine.mk_1 
a=a b=b
Error running make (expected 0; got 512): make -f
work/variables/undefine.mk_2
FAILED (1/4 passed)

3 Tests in 1 Category Failed (See .diff* files in work dir for details) :-(

$

$ ed [.tests.work.variables]undefine.mk
1
*s/@:/@continue/W
   19   all: ;@continue
1 substitution

So it seems the tests still contain Unix/shell commands and not only VMS
commands.

$ make -f [.tests.work.variables]undefine.mk
recursive simple recursive
undefined recursive undefined
$

Or am I missing something?


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


error reporting

2014-04-07 Thread Rob Juergens
Given the make file (makefile):

--
foo : bar
--

gmake 3.75 gives this:

gmake: *** No rule to make target 'bar', needed by 'foo'. Stop.

gmake 4.0 gives this:

gmake: ***. stop.

This has caused a lot of time trying to figure out what is wrong with the 
makefile. A big step backward in error reporting.
Please fix this.

Also, attached are VS2008  VS2012 solution/project files. No one is using 
VS2003 anymore.

Thanks,
Rob Juergens
rjuerg...@esri.commailto:rjuerg...@esri.com








___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: error reporting

2014-04-07 Thread Philip Guenther
On Mon, Apr 7, 2014 at 4:45 PM, Rob Juergens rjuerg...@esri.com wrote:
 Given the make file (makefile):

 --
 foo : bar
 --

 gmake 3.75 gives this:

 gmake: *** No rule to make target 'bar', needed by 'foo'. Stop.

 gmake 4.0 gives this:

 gmake: ***. stop.

 This has caused a lot of time trying to figure out what is wrong with the
 makefile. A big step backward in error reporting.

 Please fix this.

I am unable to reproduce this:

: morgaine; ls -l
total 2
-rw-rw-r--  1 guenther  wheel  10 Apr  7 21:22 Makefile
: morgaine; cat Makefile
foo : bar
: morgaine; gmake --version
GNU Make 4.0
Built for x86_64-unknown-openbsd5.5
Copyright (C) 1988-2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
: morgaine; gmake
gmake: *** No rule to make target 'bar', needed by 'foo'.  Stop.
: morgaine;


What information about your situation did you leave out?


Philip Guenther

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: error reporting

2014-04-07 Thread John E. Malmberg

On 4/7/2014 11:26 PM, Philip Guenther wrote:

On Mon, Apr 7, 2014 at 4:45 PM, Rob Juergens rjuerg...@esri.com wrote:

Given the make file (makefile):

--
foo : bar
--

gmake 3.75 gives this:

gmake: *** No rule to make target 'bar', needed by 'foo'. Stop.

gmake 4.0 gives this:

 gmake: ***. stop.

This has caused a lot of time trying to figure out what is wrong with the
makefile. A big step backward in error reporting.

Please fix this.


I am unable to reproduce this:

: morgaine; ls -l
total 2
-rw-rw-r--  1 guenther  wheel  10 Apr  7 21:22 Makefile
: morgaine; cat Makefile
foo : bar
: morgaine; gmake --version
GNU Make 4.0
Built for x86_64-unknown-openbsd5.5
Copyright (C) 1988-2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
: morgaine; gmake
gmake: *** No rule to make target 'bar', needed by 'foo'.  Stop.
: morgaine;


What information about your situation did you leave out?


I was able to reproduce a similar issue on VAX/VMS 7.3 with Gnu Make 4.0 
from the release tarball.  Under some code paths the output buffer size 
is initialized to zero length and output gets truncated.


The buffer expansion algorithm was to double the size of the buffer if 
it detects that there is not room for the output of vsnprintf, but since 
the size starts at zero in some cases, zero * 2 is still zero, so the 
buffer was not expanded.  Which results in the output reported above.


I did not see this issue on Alpha or IA64/VMS 8.4, and did not find out 
why it works on that platform and failed on VAX/VMS, since I would have 
expected similar behavior in both cases.


The section of code that causes the problem has been completely replaced 
in master.


Regards,
-John



___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: vms:test variables

2014-04-07 Thread John E. Malmberg

On 4/7/2014 4:37 PM, h.becker wrote:

On 04/06/2014 07:34 PM, John E. Malmberg wrote:

Ok, so now we have the a baseline test suite ported, what is it going to
take to get this stuff committed so that we can start working on the
bugs that have been exposed?


I don't know who will/should answer such a question. I still have no
luck nor fun with these tests:

$ @TEST_MAKE
--
   Running tests for GNU make on VMS
GNU Make 4.0.90
--

Clearing work...
Finding tests...

features.dir/archives ...

 ^^

This is a day one bug in the older Perl on VMS versions that was fixed 
in about the Perl 5.10 timeframe, but the fix was not made the default 
behavior until Perl 5.18, as it is tied to supporting EFS character 
filenames.


Perl 5.18 and later suppresses the incorrect .dir being appended to 
paths by default.  The incorrect behavior can be optionally turned on 
for existing PERL/VMS scripts that expect the buggy behavior.  I did not 
test the script with older versions of Perl, or with the older behavior 
enabled.


FEATURES/ARCHIVES ... Error running 
make (expected 0; got 512): make -f 
/lcl_root/make/tests/work/FEATURES/ARCHIVES.mk

skip
FAILED (2/10 passed)

8 features/archive tests are failing for me because the archive support 
is incomplete.



features.dir/comments ...

FEATURES/COMMENTS  ok   (1 passed)


features.dir/conditionals ...

FEATURES/CONDITIONALS  ok   (4 passed)


features.dir/default_names ..

FEATURES/DEFAULT_NAMES ... ok (2 passed)


OK, I can run one when I specify one, but it fails due to bash's ::


It is not failing, the warning from DCL is written out, but does not 
otherwise affect the execution.  Rather than modify all the tests that 
were using : as null command, I changed the compare_output routine in 
the test harness to ignore it.



$ make -f [.tests.work.variables]undefine.mk
recursive simple recursive
undefined recursive undefined
$ @TEST_MAKE -keep variables/undefine


VARIABLES/UNDEFINE ..
run_command_with_output(/lcl_root/make/tests/work/VARIABLES/UNDEFINE.log,): 
make -f /lcl_root/make/tests/work/VARIABLES/UNDEFINE.mk

run_command_with_output returned 0.
vms status = 1
Comparing Output  DIFFERENT OUTPUT

passing tests removed
FAILED (3/4 passed)


So it seems the tests still contain Unix/shell commands and not only VMS
commands.


I only made changes needed to test the feature.  GNU Make does not care 
if a command is a foreign command or a native VMS command.



$ make -f [.tests.work.variables]undefine.mk
recursive simple recursive
undefined recursive undefined


*** /lcl_root/make/tests/work/VARIABLES/UNDEFINE.base   Wed Feb  4 
23:01:01 2015
--- /lcl_root/make/tests/work/VARIABLES/UNDEFINE.logWed Feb  4 
23:01:01 2015

***
*** 1,2 
  recursive simple recursive
! undefined undefined undefined
--- 1,5 
  recursive simple recursive
!
! undefined undefined recursive
!
! %DCL-W-NOCOMD, no command on line - reenter with alphabetic first 
character



Or am I missing something?


The extra lines and the %DCL-W-NOCOMD lines are ignored by the test 
harness output compare.  If that compare fails, then the test harness 
issues a diff command on the raw output, not the cooked output used for 
grading the test, so every thing is present.


The actual failure appear to be that the second line should be 
undefined undefined undefined and on VMS is showing up as undefined 
undefined recursive.


I have not fully investigated this issue, but it appears that this 
happens when make recurses or invokes itself, and on VMS, the second 
invocation of make is missing some information from the parent.  My 
guess is that information is normally passed by exported shell symbols.


Regards,
-John



___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make