On Mon, 11 Sep 2006, Ralf Wildenhues wrote:
* Tim Rice wrote on Mon, Sep 11, 2006 at 03:35:11AM CEST:
I got an opportunity to test 2.60a on UnixWare 7.1.4.
snip from test 168's config.status ---
# Find out whether ``test -x'' works. Don't use a zero-byte file, as
# systems may use methods other than mode bits to determine executability.
cat conf$$.file _ASEOF
#! /bin/sh
exit 0
SESEOF
chmod +x conf$$.file
I have no idea why SESEOF is there instead of _ASEOF
I had updated to m4-1.4.6 so just to make sure it wasn't a m4-1.4.6
problem, I went back to m4-1.4.4 and re-tested. Same problem.
The problem can't be with m4, because the configure script looks
identical to the one generated on a sane system, only the generated
config.status file is bogus at this position. I assume another bug wrt.
here-documents. Let's see: the problem occurs on line 256 of the
generated config.status script, near byte 6524. This part is completely
generated from the first here-document that contains config.status; it's
delimited by \_ACEOF (thus no variable expansion within).
Does the bug go away when you insert 1 (2, 3) empty lines before the
inner here-document in the configure script (i.e., before line 2003)?
What if instead you just insert some bytes before (e.g., in the
comment)? Does the problem go away if you replace the inner
here-document by
echo '#! /bin/sh
exit 0' conf$$.file
And for those methods that work, could you retest, this time applying
the change to autoconf/lib/m4sugar/m4sh.sh:_AS_TEST_PREPARE (it will
cause changes to more than one point in the configure script)?
Applying this patch makes it work.
--- lib/m4sugar/m4sh.m4.old 2006-06-19 22:35:38.0 -0700
+++ lib/m4sugar/m4sh.m4 2006-06-19 22:35:38.0 -0700
@@ -1021,6 +1021,7 @@
m4_defun([_AS_TEST_PREPARE],
[# Find out whether ``test -x'' works. Don't use a zero-byte file, as
# systems may use methods other than mode bits to determine executability.
+
cat conf$$.file _ASEOF
#! /bin/sh
exit 0
In another e-mail, Paul suggests:
So this very much looks like the same sort of problem that we already
know that ksh has with here-documents and variables. He might try
uniformly replacing _ASEOF with FOOEOF (without making any other
changes) and see whether the word gets munged to OEOEOF.
So I tried this patch (on a fresh tree). Tests passed.
--- lib/m4sugar/m4sh.m4.old 2006-06-19 22:35:38.0 -0700
+++ lib/m4sugar/m4sh.m4 2006-06-19 22:35:38.0 -0700
@@ -1021,10 +1021,10 @@
m4_defun([_AS_TEST_PREPARE],
[# Find out whether ``test -x'' works. Don't use a zero-byte file, as
# systems may use methods other than mode bits to determine executability.
-cat conf$$.file _ASEOF
+cat conf$$.file FOOEOF
#! /bin/sh
exit 0
-_ASEOF
+FOOEOF
chmod +x conf$$.file
if test -x conf$$.file /dev/null 21; then
as_executable_p=test -x
I'm not sure why this should make things work.
I had also tried doing a global s/_ASEOF/FOOEOF/ on configure and
lib/m4sugar/m4sh.m4 (the only 2 files that contained the pattern _ASEOF).
Tests passed.
...
277 tests behaved as expected.
9 tests were skipped.
...
I'll be out of the office the 12th - 18th.
I can do more testing when I return.
--
Tim RiceMultitalents(707) 887-1469
[EMAIL PROTECTED]