summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rwxr-xr-xbuild-aux/depcomp15
-rwxr-xr-xbuild-aux/install-sh26
3 files changed, 56 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 561bfdb8b2..5d46d88438 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from Automake.
+ * build-aux/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
+ which incorrectly sets the mode of an existing destination
+ directory. In some cases the unpatched install-sh could do the
+ equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
+ system. We hope this is rare in practice, but it's clearly worth
+ fixing. Problem reported by Alex Unleashed in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00012.html>.
+ Also, don't bother to check for -m bugs unless we're using -m;
+ suggested by Stepan Kasal.
+
+2006-10-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Sync from Automake.
+ * build-aux/depcomp (gcc3): Put dependency extraction flags before the
+ `-c' flag, so they appear at the same position as in %FASTDEP%
+ mode in depend2.am. Fixes build failure for FreeBSD's c89,
+ which ignores unknown options only after the first non-option.
+ Bug report against M4 by Nelson H. F. Beebe.
+
2006-10-13 Jim Meyering <jim@meyering.net>
Fix a bug in yesterday's change.
diff --git a/build-aux/depcomp b/build-aux/depcomp
index ffe5461bde..7d409372d7 100755
--- a/build-aux/depcomp
+++ b/build-aux/depcomp
@@ -92,7 +92,20 @@ gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
- "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
stat=$?
if test $stat -eq 0; then :
else
diff --git a/build-aux/install-sh b/build-aux/install-sh
index 9d6a5eb7cd..4fbbae7b7f 100755
--- a/build-aux/install-sh
+++ b/build-aux/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2006-05-11.20
+scriptversion=2006-10-14.15
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -336,12 +336,26 @@ do
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- / "$tmpdir/d") >/dev/null 2>&1
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
- # Check for bugs in HP-UX 11.23 and IRIX 6.5 mkdir.
- case `ls -ld "$tmpdir"` in
- d????-??-* ) posix_mkdir=:;;
- esac
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.