This is the mail archive of the
automake@gnu.org
mailing list for the automake project.
Re: Automake 1.8.2 compiler dependency type checking fails onSolaris sh
- From: Alexandre Duret-Lutz <adl at src dot lip6 dot fr>
- To: Mark Phillips <msp at nortelnetworks dot com>, automake-patches at gnu dot org
- Cc: automake at gnu dot org
- Date: Sun, 29 Feb 2004 22:26:31 +0100
- Subject: Re: Automake 1.8.2 compiler dependency type checking fails onSolaris sh
- References: <Pine.GSO.4.58L.0402261632150.7735@whars0cm.europe.nortel.com>
>>> "Mark" == Mark Phillips <msp@nortelnetworks.com> writes:
[...]
Mark> The following piece of sh code (from _AM_DEPENDENCIES) fails using
Mark> /bin/sh or /usr/bin/sh (but works using bash or /usr/xpg4/bin/sh):-
Mark> : > sub/conftest.c
Mark> for i in 1 2 3 4 5 6; do
Mark> echo '#include "conftst'$i'.h"' >> sub/conftest.c
Mark> : > sub/conftst$i.h
Mark> done
Mark> It appears that the processing of the "null" command ":"
Mark> is handled in an inconsistent way by the Solaris sh. In
Mark> particular the ": > sub/conftst$i.h" inside the loop only
Mark> creates ONE file.... Presumable the $i in the redirection
Mark> only gets evaluated once for some reason.
Thanks for the report.
I'm installing this on HEAD and branch-1-8.
2004-02-29 Alexandre Duret-Lutz <adl@gnu.org>
* m4/depend.m4 (_AM_DEPENDENCIES): Use `touch' rather than `: >'
to create numbered dependencies. This fixes a portability issue
when CONFIG_SHELL is forced to /bin/sh on Solaris 8.
Reported by Mark Phillips.
Index: NEWS
===================================================================
RCS file: /cvs/automake/automake/NEWS,v
retrieving revision 1.256.2.30
diff -u -r1.256.2.30 NEWS
--- NEWS 29 Feb 2004 19:10:40 -0000 1.256.2.30
+++ NEWS 29 Feb 2004 21:11:36 -0000
@@ -36,6 +36,10 @@
- Do not generate two build rules for `parser.h' when the
parser appears in two different conditionals.
+ - Work around a Solaris 8 /bin/sh bug in the test for dependency
+ checking. Usually ./configure will not pick this shell; so this
+ fix only helps cases where the shell is forced to /bin/sh.
+
* Bugs introduced by 1.8:
- In some situations (hand-written `m4_include's), aclocal would
Index: THANKS
===================================================================
RCS file: /cvs/automake/automake/THANKS,v
retrieving revision 1.230.2.14
diff -u -r1.230.2.14 THANKS
--- THANKS 29 Feb 2004 19:10:40 -0000 1.230.2.14
+++ THANKS 29 Feb 2004 21:11:36 -0000
@@ -142,6 +142,7 @@
Mark Elbrecht snowball3@bigfoot.com
Mark Galassi rosalia@nis.lanl.gov
Mark Mitchell mark@codesourcery.com
+Mark Phillips msp@nortelnetworks.com
Markku Rossi mtr@ngs.fi
Markus F.X.J. Oberhumer k3040e4@wildsau.idv-edu.uni-linz.ac.at
Martin Frydl martin@idoox.com
Index: m4/depend.m4
===================================================================
RCS file: /cvs/automake/automake/m4/depend.m4,v
retrieving revision 1.30.2.2
diff -u -r1.30.2.2 depend.m4
--- m4/depend.m4 11 Jan 2004 12:05:28 -0000 1.30.2.2
+++ m4/depend.m4 29 Feb 2004 21:11:38 -0000
@@ -1,4 +1,4 @@
-# serial 6 -*- Autoconf -*-
+# serial 7 -*- Autoconf -*-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
# Free Software Foundation, Inc.
@@ -85,7 +85,9 @@
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- : > sub/conftst$i.h
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
--
Alexandre Duret-Lutz