Discussion:
Moving to Autoconf 2.64, Automake 1.11
(too old to reply)
Ralf Wildenhues
2009-08-15 11:29:28 UTC
Permalink
Hello everyone,

I will reply to this message with a number of patches that contain the
heart of the switch to newer autotools. They apply in the order posted,
and each successive version is expected to work, or at least only break
minor bits such as provoking an automake warning about duplicate
install-pdf, but my plan is to get them all approved and then apply them
in short succession. (Splitting them by topic is really helpful to
maintain sanity, and be able to distinguish generated from manual
changes.) For committing the series, would it be ok to then ask for a
couple of hours in which no changes to the build system are made?


- Update automake-provided helper scripts in the toplevel,
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only),
- some minor fixes in sim, gold, gdb (src only)
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
world with 2.64 and Automake 1.11,
- remove {all,install}-{html,pdf} and {dataroot,doc,pdf,html}dir stuff
not needed any more, update documentation bits throughout the tree.

Apart from that, I would need somebody to update the autotools tarballs
at ftp://sources.redhat.com/pub/binutils for me, at the time I am
committing the above. The upstream tarballs are available here:
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz
ftp://ftp.gnu.org/gnu/automake/automake-1.11.tar.gz


I have done a bunch of testing of the resulting trees, mostly native
bootstraps+regtests however (no regressions). I think I have addressed
all issues that cropped up and that have been documented before on this
list. Notably, however, I have not done a --with-build-sysroot test; I
would like to ask someone else to do this for me. I do have good reason
to believe that the issue reportd in
<http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00912.html> is fixed in
my patch series, though: the very likely reason for the above was that
the *_LDFLAGS/*_LINK semantic change was not addressed.

The texinfo changes have been tested with 'make info pdf html'.

To make it easy for whoever volunteers for the --with-build-sysroot
test, I would like to ask for this to be done after I commit the patch
set. OK?

Note that I do expect one or two more things that could break some
specific build setups; I don't think it is feasible to test them all in
advance, but I will try to look at them in a short order then.

This patch series can be extended with two more helpful changes that
are not time-critical:

- bump all the AC_PREREQ's to 2.64, add 1.11 to AUTOMAKE_OPTIONS or
AM_INIT_AUTOMAKE calls as requirement, to avoid accidental use of old
tools. The config/override.m4 bit ought to prevent the error for
Autoconf already, unless other weird issues come into play, too, such
as also inadvertently dropping some aclocal -I ../config options or
so. (My thinking here was that, as some parts of the tree are shared
with external projects, they don't need to upgrade their autotools
usage right at the same time.)

- fix the (new with Autoconf 2.64) warnings from configure about unknown
--enable/--with switches. I would appreciate some input on whether
this functionality should just be turned off with
AC_DISABLE_OPTION_CHECKING, or we should add some logic to the
toplevel configure script to be more intelligent about it.


Thanks for all the review work done so far!
Ralf
Ralf Wildenhues
2009-08-15 11:30:50 UTC
Permalink
- Update automake-provided files in the toplevel,
This patch is just FYI, as technically, I don't need permission to
update these helper files.

Cheers,
Ralf

ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* compile: Sync from Automake 1.11.
* depcomp: Likewise.
* install-sh: Likewise.
* missing: Likewise.

diff --git a/compile b/compile
index 1b1d232..ec64c62 100644
--- a/compile
+++ b/compile
@@ -1,9 +1,10 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.

-scriptversion=2005-05-14.22
+scriptversion=2009-04-28.21; # UTC

-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
+# Foundation, Inc.
# Written by Tom Tromey <***@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -17,8 +18,7 @@ scriptversion=2005-05-14.22
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.

# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -103,13 +103,13 @@ if test -z "$ofile" || test -z "$cfile"; then
fi

# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`

# Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
@@ -138,5 +138,6 @@ exit $ret
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff --git a/depcomp b/depcomp
index 3510ab0..df8eea7 100755
--- a/depcomp
+++ b/depcomp
@@ -1,9 +1,10 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects

-scriptversion=2005-05-16.16
+scriptversion=2009-04-28.21; # UTC

-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,9 +17,7 @@ scriptversion=2005-05-16.16
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.

# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -86,12 +85,34 @@ if test "$depmode" = dashXmstdout; then
depmode=dashmstdout
fi

+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u="sed s,\\\\\\\\,/,g"
+ depmode=msvisualcpp
+fi
+
case "$depmode" in
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
@@ -178,14 +199,14 @@ sgi)
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
-' ' ' >> $depfile
- echo >> $depfile
+' ' ' >> "$depfile"
+ echo >> "$depfile"

# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> $depfile
+ >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
@@ -201,34 +222,39 @@ aix)
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
- stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
- tmpdepfile="$stripped.u"
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?

- if test -f "$tmpdepfile"; then :
- else
- stripped=`echo "$stripped" | sed 's,^.*/,,'`
- tmpdepfile="$stripped.u"
- fi
-
if test $stat -eq 0; then :
else
- rm -f "$tmpdepfile"
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi

+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
if test -f "$tmpdepfile"; then
- outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
@@ -276,27 +302,49 @@ icc)
rm -f "$tmpdepfile"
;;

-ia64hp)
- # The "hp" stanza above does not work with HP's ia64 compilers,
- # which have integrated preprocessors. The correct option to use
- # with these is +Maked; it writes dependencies to a file named
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
- tmpdepfile=`echo "$object" | sed -e 's/\.o$/.d/'`
- "$@" +Maked
+ # Much of this is similar to the tru64 case; see comments there.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
stat=$?
if test $stat -eq 0; then :
else
- rm -f "$tmpdepfile"
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
- rm -f "$depfile"

- # The object file name is correct already.
- cat "$tmpdepfile" > "$depfile"
- # Add `dependent.h:' lines.
- sed -ne '2,${; s/^ //; s/ \\*$//; s/$/:/; p; }' "$tmpdepfile" >> "$depfile"
- rm -f "$tmpdepfile"
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add `dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
;;

tru64)
@@ -311,13 +359,13 @@ tru64)

if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
- # static library. This mecanism is used in libtool 1.4 series to
+ # static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in in $dir.libs/$base.o.d and
+ # compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
@@ -368,7 +416,7 @@ dashmstdout)

# Remove the call to Libtool.
if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
+ while test "X$1" != 'X--mode=compile'; do
shift
done
shift
@@ -419,32 +467,39 @@ makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
+ while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
- cleared=no
- for arg in "$@"; do
+ cleared=no eat=no
+ for arg
+ do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
@@ -464,7 +519,7 @@ cpp)

# Remove the call to Libtool.
if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
+ while test "X$1" != 'X--mode=compile'; do
shift
done
shift
@@ -502,13 +557,27 @@ cpp)

msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
+ # always write the preprocessed file to stdout.
"$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
IFS=" "
for arg
do
case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
@@ -521,16 +590,23 @@ msvisualcpp)
;;
esac
done
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;

+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
none)
exec "$@"
;;
@@ -549,5 +625,6 @@ exit 0
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff --git a/install-sh b/install-sh
index 4d4a951..6781b98 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile

-scriptversion=2005-05-14.22
+scriptversion=2009-04-28.21; # UTC

# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"

# set DOITPROG to echo to test this script

# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi

-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'

-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755

-chmodcmd="$chmodprog 0755"
-chowncmd=
chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
src=
dst=
dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
no_target_directory=

-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.

Options:
--c (ignored)
--d create directories instead of installing files.
--g GROUP $chgrpprog installed files to GROUP.
--m MODE $chmodprog installed files to MODE.
--o USER $chownprog installed files to USER.
--s $stripprog installed files.
--t DIRECTORY install into DIRECTORY.
--T report an error if DSTFILE is a directory.
---help display this help and exit.
---version display version info and exit.
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.

Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
"

-while test -n "$1"; do
+while test $# -ne 0; do
case $1 in
- -c) shift
- continue;;
+ -c) ;;
+
+ -C) copy_on_change=true;;

- -d) dir_arg=true
- shift
- continue;;
+ -d) dir_arg=true;;

-g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
+ shift;;

--help) echo "$usage"; exit $?;;

- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;

-o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
+ shift;;

- -s) stripcmd=$stripprog
- shift
- continue;;
+ -s) stripcmd=$stripprog;;

- -t) dstarg=$2
- shift
- shift
- continue;;
+ -t) dst_arg=$2
+ shift;;

- -T) no_target_directory=true
- shift
- continue;;
+ -T) no_target_directory=true;;

--version) echo "$0 $scriptversion"; exit $?;;

- *) # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- test -n "$dir_arg$dstarg" && break
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dstarg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dstarg"
- shift # fnord
- fi
- shift # arg
- dstarg=$arg
- done
+ --) shift
break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
esac
+ shift
done

-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ done
+fi
+
+if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
exit 0
fi

+if test -z "$dir_arg"; then
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
for src
do
# Protect names starting with `-'.
case $src in
- -*) src=./$src ;;
+ -*) src=./$src;;
esac

if test -n "$dir_arg"; then
dst=$src
- src=
-
- if test -d "$dst"; then
- mkdircmd=:
- chmodcmd=
- else
- mkdircmd=$mkdirprog
- fi
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
else
+
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
@@ -190,71 +248,199 @@ do
exit 1
fi

- if test -z "$dstarg"; then
+ if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi

- dst=$dstarg
+ dst=$dst_arg
# Protect names starting with `-'.
case $dst in
- -*) dst=./$dst ;;
+ -*) dst=./$dst;;
esac

# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
- echo "$0: $dstarg: Is a directory" >&2
+ echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
- dst=$dst/`basename "$src"`
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
fi
fi

- # This sed command emulates the dirname command.
- dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ 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
+ then
+ 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.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac

- # Make sure that the destination directory exists.
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else

- # Skip lots of stat calls in the usual case.
- if test ! -d "$dstdir"; then
- defaultIFS='
- '
- IFS="${IFS-$defaultIFS}"
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.

- oIFS=$IFS
- # Some sh's can't handle IFS=/ for some reason.
- IFS='%'
- set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
- shift
- IFS=$oIFS
+ case $dstdir in
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
+ esac

- pathcomp=
+ eval "$initialize_posix_glob"

- while test $# -ne 0 ; do
- pathcomp=$pathcomp$1
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
shift
- if test ! -d "$pathcomp"; then
- $mkdirprog "$pathcomp"
- # mkdir can fail with a `File exist' error in case several
- # install-sh are creating the directory concurrently. This
- # is OK.
- test -d "$pathcomp" || exit
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
- pathcomp=$pathcomp/
- done
+ fi
fi

if test -n "$dir_arg"; then
- $doit $mkdircmd "$dst" \
- && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
- && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
- && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
- dstfile=`basename "$dst"`

# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
@@ -262,10 +448,9 @@ do

# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
- trap '(exit $?); exit' 1 2 13 15

# Copy the file name to the temp name.
- $doit $cpprog "$src" "$dsttmp" &&
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&

# and set any options; do chmod last to preserve setuid bits.
#
@@ -273,51 +458,63 @@ do
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
- && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
- && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
- # Now rename the file to the real destination.
- { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
- || {
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
-
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- if test -f "$dstdir/$dstfile"; then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
- || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
- || {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit 1
- }
- else
- :
- fi
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
- }
- }
- fi || { (exit 1); exit 1; }
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
done

-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
- (exit 0); exit 0
-}
-
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff --git a/missing b/missing
index 894e786..28055d2 100755
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.

-scriptversion=2005-06-08.21
+scriptversion=2009-04-28.21; # UTC

-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <***@iro.umontreal.ca>, 1996.

# This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@ scriptversion=2005-06-08.21
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.

# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -33,6 +31,8 @@ if test $# -eq 0; then
fi

run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'

# In the cases where this matters, `missing' is being run in the
# srcdir already.
@@ -44,7 +44,7 @@ fi

msg="missing on your system"

-case "$1" in
+case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
@@ -77,6 +77,7 @@ Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
@@ -86,6 +87,9 @@ Supported PROGRAM values:
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]

+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
Send bug reports to <bug-***@gnu.org>."
exit $?
;;
@@ -103,15 +107,22 @@ Send bug reports to <bug-***@gnu.org>."

esac

+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
-# the program).
-case "$1" in
- lex|yacc)
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
# Not GNU programs, they don't have --version.
;;

- tar)
+ tar*)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
@@ -135,7 +146,7 @@ esac

# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case "$1" in
+case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -145,7 +156,7 @@ WARNING: \`$1' is $msg. You should only need it if
touch aclocal.m4
;;

- autoconf)
+ autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
@@ -154,7 +165,7 @@ WARNING: \`$1' is $msg. You should only need it if
touch configure
;;

- autoheader)
+ autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
@@ -164,7 +175,7 @@ WARNING: \`$1' is $msg. You should only need it if
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
- case "$f" in
+ case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
@@ -184,7 +195,7 @@ WARNING: \`$1' is $msg. You should only need it if
while read f; do touch "$f"; done
;;

- autom4te)
+ autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
@@ -192,8 +203,8 @@ WARNING: \`$1' is needed, but is $msg.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."

- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
@@ -207,80 +218,78 @@ WARNING: \`$1' is needed, but is $msg.
fi
;;

- bison|yacc)
+ bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
+ if test $# -ne 1; then
eval LASTARG="\${$#}"
- case "$LASTARG" in
+ case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
- if [ ! -f y.tab.h ]; then
+ if test ! -f y.tab.h; then
echo >y.tab.h
fi
- if [ ! -f y.tab.c ]; then
+ if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;

- lex|flex)
+ lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
- if [ $# -ne 1 ]; then
+ if test $# -ne 1; then
eval LASTARG="\${$#}"
- case "$LASTARG" in
+ case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
- if [ ! -f lex.yy.c ]; then
+ if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;

- help2man)
+ help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."

- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
- exit 1
+ exit $?
fi
;;

- makeinfo)
+ makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -289,11 +298,17 @@ WARNING: \`$1' is $msg. You should only need it if
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
@@ -303,7 +318,7 @@ WARNING: \`$1' is $msg. You should only need it if
touch $file
;;

- tar)
+ tar*)
shift

# We have already tried tar in the generic part.
@@ -317,13 +332,13 @@ WARNING: \`$1' is $msg. You should only need it if
fi
firstarg="$1"
if shift; then
- case "$firstarg" in
+ case $firstarg in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
- case "$firstarg" in
+ case $firstarg in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
@@ -356,5 +371,6 @@ exit 0
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
Ralf Wildenhues
2009-08-15 11:32:17 UTC
Permalink
Post by Ralf Wildenhues
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only)
Automake handling of per-target LDFLAGS rules changed which means
that if you override *_LINK manually, you have to ensure that they
are used, too.

Automake introduced $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
(or per-target LIBTOOLFLAGS). Add them where we manually override
$(LINK). Also, add $(LIBTOOLFLAGS) where we use $(LIBTOOL) in
Makefile.in files not governed by automake.

When this patch is used with Automake 1.9.6, there is a small chance for
problems: its rules may now cause duplicate expansion of some of the
link flags. If link flags duplication is a problem on some systems,
then this can cause failures. I haven't tested this much.

OK to apply?

The boehm-gc changes appear in gcc-specific text, i.e., it already
differs from upstream anyway, so there is no need to go there.

Thanks,
Ralf

boehm-gc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (LTCOMPILE, LTLINK): Add $(AM_LIBTOOLFLAGS)
and $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.

libgfortran/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
* Makefile.in: Regenerate.

libjava/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (libgcj_la_LINK, libgcj_tools_la_LINK)
(lib_gnu_awt_xlib_la_LINK, libgcj_bc_la_LINK, jv_convert_LINK)
(gcj_dbtool_LINK, gc_analyze_LINK, gij_LINK, ecjx_LINK)
(gappletviewer_LINK, gjarsigner_LINK, gkeytool_LINK)
(gjar_LINK, gjavah_LINK, gcjh_LINK, gnative2ascii_LINK)
(gorbd_LINK, grmid_LINK, gserialver_LINK, gtnameserv_LINK)
(grmic_LINK, grmiregistry_LINK, gjdoc_LINK): Add $(gjdoc_LDFLAGS).
* Makefile.in: Regenerate.

libstdc++-v3/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* libsupc++/Makefile.am (LTCOMPILE, LTCXXCOMPILE, CXXLINK): Add
$(LIBTOOLFLAGS).
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (LTCXXCOMPILE, CXXLINK): Add $(AM_LIBTOOLFLAGS)
and $(LIBTOOLFLAGS).
* src/Makefile.in: Regenerate.

libgomp/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.

libobjc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in (LIBTOOL): Add $(LIBTOOLFLAGS).

diff --git a/boehm-gc/Makefile.am b/boehm-gc/Makefile.am
index 41528ae..83005b2 100644
--- a/boehm-gc/Makefile.am
+++ b/boehm-gc/Makefile.am
@@ -64,10 +64,12 @@ TESTS = gctest

## We have our own definition of LTCOMPILE because we want to use our
## CFLAGS, not those passed in from the top level make.
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) \
+LTCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
+ $(CC) $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
-LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LTLDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LTLDFLAGS) -o $@

# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am
index 4a974ba..83634ff 100644
--- a/libgfortran/Makefile.am
+++ b/libgfortran/Makefile.am
@@ -16,7 +16,7 @@ endif
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))

toolexeclib_LTLIBRARIES = libgfortran.la
-libgfortran_la_LINK = $(LINK)
+libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) -lm $(extra_ldflags_libgfortran) $(version_arg)

myexeclib_LTLIBRARIES = libgfortranbegin.la
diff --git a/libgomp/Makefile.am b/libgomp/Makefile.am
index ebb4b6a..6cecc2a 100644
--- a/libgomp/Makefile.am
+++ b/libgomp/Makefile.am
@@ -43,8 +43,8 @@ endif

LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))

-LINK = $(LIBTOOL) --tag CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LTLDFLAGS) -o $@
+LINK = $(LIBTOOL) --tag CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LTLDFLAGS) -o $@

omp_lib_kinds.mod: omp_lib.mod
:
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 839d296..7c7e0db 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -298,7 +298,7 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
if ANONVERSCRIPT
libgcj_la_DEPENDENCIES += $(srcdir)/libgcj.ver
endif
-libgcj_la_LINK = $(LIBLINK)
+libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)

## A hack to make sure the various gcj-related macros, like
## LTGCJCOMPILE, are defined by automake. This is never actually
@@ -318,7 +318,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
-libgcj_tools_la_LINK = $(LIBLINK)
+libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS)

## libjvm.so
libjvm_la_SOURCES = jni-libjvm.cc
@@ -353,7 +353,7 @@ lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
@X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
-lib_gnu_awt_xlib_la_LINK = $(LIBLINK)
+lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)

## Support for libgcj_bc: dummy shared library.
##
@@ -363,7 +363,7 @@ libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
libgcj_bc_la_LIBADD = libgcj.la
libgcj_bc_la_DEPENDENCIES = libgcj.la
-libgcj_bc_la_LINK = $(LIBLINK)
+libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS)
## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others.
## USE_LIBGCJ_BC shouldn't be set on other targets.
libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \
@@ -812,7 +812,7 @@ jv_convert_SOURCES =
## `.la' file.
jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-jv_convert_LINK = $(GCJLINK)
+jv_convert_LINK = $(GCJLINK) $(jv_convert_LDFLAGS)
## We don't explicitly link in the libraries we need; libgcj.la brings
## in all dependencies. We need the -L so that gcj can find libgcj
## with `-lgcj', but it must come first, otherwise the -L flags
@@ -833,7 +833,7 @@ gnu/gcj/tools/gcj_dbtool/natMain.cc
## `.la' file.
gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gcj_dbtool_LINK = $(GCJLINK)
+gcj_dbtool_LINK = $(GCJLINK) $(gcj_dbtool_LDFLAGS)
## We don't explicitly link in the libraries we need; libgcj.la brings
## in all dependencies. We need the -L so that gcj can find libgcj
## with `-lgcj', but it must come first, otherwise the -L flags
@@ -853,7 +853,7 @@ gc_analyze_SOURCES =
## `.la' file.
gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gc_analyze_LINK = $(GCJLINK)
+gc_analyze_LINK = $(GCJLINK) $(gc_analyze_LDFLAGS)
## See jv_convert_LDADD.
gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la
## Depend on the spec file to make sure it is up to date before
@@ -867,7 +867,7 @@ gij_SOURCES =
gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
-shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \
$(extra_gij_ldflags)
-gij_LINK = $(GCJLINK)
+gij_LINK = $(GCJLINK) $(gij_LDFLAGS)
## See jv_convert_LDADD.
gij_LDADD = -L$(here)/.libs libgij.la
## Depend on the spec file to make sure it is up to date before
@@ -885,7 +885,7 @@ ECJX_BASE_FLAGS = -findirect-dispatch \

if NATIVE

-ecjx_LINK = $(GCJLINK)
+ecjx_LINK = $(GCJLINK) $(ecjx_LDFLAGS)

if ENABLE_SHARED
## Use ecj.jar at runtime.
@@ -905,7 +905,7 @@ endif

else !NATIVE

-ecjx_LINK = $(GCJ_FOR_ECJX_LINK)
+ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS)
ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
ecjx_LDADD =
ecjx_DEPENDENCIES =
@@ -916,7 +916,7 @@ endif !NATIVE
gappletviewer_SOURCES =
gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gappletviewer_LINK = $(GCJLINK)
+gappletviewer_LINK = $(GCJLINK) $(gappletviewer_LDFLAGS)
## See jv_convert_LDADD.
gappletviewer_LDADD = -L$(here)/.libs libgcj-tools.la
gappletviewer_DEPENDENCIES = libgcj-tools.la
@@ -925,7 +925,7 @@ gappletviewer_DEPENDENCIES = libgcj-tools.la
gjarsigner_SOURCES =
gjarsigner_LDFLAGS = --main=gnu.classpath.tools.jarsigner.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gjarsigner_LINK = $(GCJLINK)
+gjarsigner_LINK = $(GCJLINK) $(gjarsigner_LDFLAGS)
## See jv_convert_LDADD.
gjarsigner_LDADD = -L$(here)/.libs libgcj-tools.la
gjarsigner_DEPENDENCIES = libgcj-tools.la
@@ -934,7 +934,7 @@ gjarsigner_DEPENDENCIES = libgcj-tools.la
gkeytool_SOURCES =
gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gkeytool_LINK = $(GCJLINK)
+gkeytool_LINK = $(GCJLINK) $(gkeytool_LDFLAGS)
## See jv_convert_LDADD.
gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la
gkeytool_DEPENDENCIES = libgcj-tools.la
@@ -943,7 +943,7 @@ gkeytool_DEPENDENCIES = libgcj-tools.la
gjar_SOURCES =
gjar_LDFLAGS = --main=gnu.classpath.tools.jar.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gjar_LINK = $(GCJLINK)
+gjar_LINK = $(GCJLINK) $(gjar_LDFLAGS)
## See jv_convert_LDADD.
gjar_LDADD = -L$(here)/.libs libgcj-tools.la
gjar_DEPENDENCIES = libgcj-tools.la
@@ -952,7 +952,7 @@ gjar_DEPENDENCIES = libgcj-tools.la
gjavah_SOURCES =
gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gjavah_LINK = $(GCJLINK)
+gjavah_LINK = $(GCJLINK) $(gjavah_LDFLAGS)
## See jv_convert_LDADD.
gjavah_LDADD = -L$(here)/.libs libgcj-tools.la
gjavah_DEPENDENCIES = libgcj-tools.la
@@ -961,7 +961,7 @@ gjavah_DEPENDENCIES = libgcj-tools.la
gcjh_SOURCES =
gcjh_LDFLAGS = --main=gnu.classpath.tools.javah.GcjhMain \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gcjh_LINK = $(GCJLINK)
+gcjh_LINK = $(GCJLINK) $(gcjh_LDFLAGS)
## See jv_convert_LDADD.
gcjh_LDADD = -L$(here)/.libs libgcj-tools.la
gcjh_DEPENDENCIES = libgcj-tools.la
@@ -970,7 +970,7 @@ gcjh_DEPENDENCIES = libgcj-tools.la
gnative2ascii_SOURCES =
gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gnative2ascii_LINK = $(GCJLINK)
+gnative2ascii_LINK = $(GCJLINK) $(gnative2ascii_LDFLAGS)
## See jv_convert_LDADD.
gnative2ascii_LDADD = -L$(here)/.libs libgcj-tools.la
gnative2ascii_DEPENDENCIES = libgcj-tools.la
@@ -979,7 +979,7 @@ gnative2ascii_DEPENDENCIES = libgcj-tools.la
gorbd_SOURCES =
gorbd_LDFLAGS = --main=gnu.classpath.tools.orbd.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gorbd_LINK = $(GCJLINK)
+gorbd_LINK = $(GCJLINK) $(gorbd_LDFLAGS)
## See jv_convert_LDADD.
gorbd_LDADD = -L$(here)/.libs libgcj-tools.la
gorbd_DEPENDENCIES = libgcj-tools.la
@@ -988,7 +988,7 @@ gorbd_DEPENDENCIES = libgcj-tools.la
grmid_SOURCES =
grmid_LDFLAGS = --main=gnu.classpath.tools.rmid.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-grmid_LINK = $(GCJLINK)
+grmid_LINK = $(GCJLINK) $(grmid_LDFLAGS)
## See jv_convert_LDADD.
grmid_LDADD = -L$(here)/.libs libgcj-tools.la
grmid_DEPENDENCIES = libgcj-tools.la
@@ -997,7 +997,7 @@ grmid_DEPENDENCIES = libgcj-tools.la
gserialver_SOURCES =
gserialver_LDFLAGS = --main=gnu.classpath.tools.serialver.SerialVer \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gserialver_LINK = $(GCJLINK)
+gserialver_LINK = $(GCJLINK) $(gserialver_LDFLAGS)
## See jv_convert_LDADD.
gserialver_LDADD = -L$(here)/.libs libgcj-tools.la
gserialver_DEPENDENCIES = libgcj-tools.la
@@ -1006,7 +1006,7 @@ gserialver_DEPENDENCIES = libgcj-tools.la
gtnameserv_SOURCES =
gtnameserv_LDFLAGS = --main=gnu.classpath.tools.tnameserv.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gtnameserv_LINK = $(GCJLINK)
+gtnameserv_LINK = $(GCJLINK) $(gtnameserv_LDFLAGS)
## See jv_convert_LDADD.
gtnameserv_LDADD = -L$(here)/.libs libgcj-tools.la
gtnameserv_DEPENDENCIES = libgcj-tools.la
@@ -1015,7 +1015,7 @@ gtnameserv_DEPENDENCIES = libgcj-tools.la
grmic_SOURCES =
grmic_LDFLAGS = --main=gnu.classpath.tools.rmic.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-grmic_LINK = $(GCJLINK)
+grmic_LINK = $(GCJLINK) $(grmic_LDFLAGS)
## See jv_convert_LDADD.
grmic_LDADD = -L$(here)/.libs libgcj-tools.la
grmic_DEPENDENCIES = libgcj-tools.la
@@ -1024,7 +1024,7 @@ grmic_DEPENDENCIES = libgcj-tools.la
grmiregistry_SOURCES =
grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-grmiregistry_LINK = $(GCJLINK)
+grmiregistry_LINK = $(GCJLINK) $(grmiregistry_LDFLAGS)
## See jv_convert_LDADD.
grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
grmiregistry_DEPENDENCIES = libgcj-tools.la
@@ -1034,7 +1034,7 @@ gjdoc_SOURCES =
gjdoc_LDFLAGS = --main=gnu.classpath.tools.gjdoc.Main \
-Djava.class.path=$(ANTLR_JAR) \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
-gjdoc_LINK = $(GCJLINK)
+gjdoc_LINK = $(GCJLINK) $(gjdoc_LDFLAGS)
## See jv_convert_LDADD.
gjdoc_LDADD = -L$(here)/.libs libgcj-tools.la
gjdoc_DEPENDENCIES = libgcj-tools.la
diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in
index 98539cf..788dfb5 100644
--- a/libobjc/Makefile.in
+++ b/libobjc/Makefile.in
@@ -85,7 +85,7 @@ ALL_CFLAGS = -I. -I$(srcdir) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(WARN_CFLAGS) \
# numbers.
LIBOBJC_VERSION = @VERSION@
LIBOBJC_GC_VERSION = @VERSION@
-LIBTOOL = @LIBTOOL@
+LIBTOOL = @LIBTOOL@ $(LIBTOOLFLAGS)
LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile
LIBTOOL_LINK = $(LIBTOOL) --mode=link
LIBTOOL_INSTALL = $(LIBTOOL) --mode=install
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index b84b5e4..d012da9 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -116,8 +116,8 @@ C_COMPILE = \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)

# LTCOMPILE is copied from LTCXXCOMPILE below.
-LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
- $(DEFS) $(C_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
+LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(LIBTOOLFLAGS) \
+ $(CC) $(DEFS) $(C_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)

cp-demangle.c:
@@ -150,7 +150,7 @@ cp-demangle.o: cp-demangle.c
#
# We have to put --tag disable-shared after --tag CXX lest things
# CXX undo the affect of disable-shared.
-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \
+LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
--mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)

@@ -162,7 +162,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
# course is problematic at this point. So, we get the top-level
# directory to configure libstdc++-v3 to use gcc as the C++
# compilation driver.
-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared \
+CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
--mode=link $(CXX) \
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@

diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 4295d4d..2c8b3ac 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -342,8 +342,8 @@ AM_CXXFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use
-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)

LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))

@@ -353,8 +353,8 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
# course is problematic at this point. So, we get the top-level
# directory to configure libstdc++-v3 to use gcc as the C++
# compilation driver.
-CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@


# Added bits to build debug library.
Paolo Bonzini
2009-08-15 16:55:57 UTC
Permalink
Post by Ralf Wildenhues
Post by Ralf Wildenhues
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only)
Automake handling of per-target LDFLAGS rules changed which means
that if you override *_LINK manually, you have to ensure that they
are used, too.
Automake introduced $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
(or per-target LIBTOOLFLAGS). Add them where we manually override
$(LINK). Also, add $(LIBTOOLFLAGS) where we use $(LIBTOOL) in
Makefile.in files not governed by automake.
When this patch is used with Automake 1.9.6, there is a small chance for
problems: its rules may now cause duplicate expansion of some of the
link flags. If link flags duplication is a problem on some systems,
then this can cause failures. I haven't tested this much.
OK to apply?
Wait for discussion/approval of the override.m4 patch to fix the 2.64
regression before applying this and the jumbo regeneration. However, as
far as this patch is concerned, you know better than anyone else.

Paolo
Tom Tromey
2009-08-17 16:27:29 UTC
Permalink
Ralf> The boehm-gc changes appear in gcc-specific text, i.e., it already
Ralf> differs from upstream anyway, so there is no need to go there.

Thanks for checking.

Ralf> boehm-gc/ChangeLog:
Ralf> libjava/ChangeLog:

These parts are ok.

Tom
Benjamin Kosnik
2009-08-17 17:14:24 UTC
Permalink
I think your implementation plan seems fine. I suggest that once you
have all the approvals just give a notice on gcc or gcc-patches for the
freeze/unfreeze or schedule the check-in on a low-volume day (ie Sat or
Sun.)
Post by Ralf Wildenhues
Add $(LIBTOOLFLAGS).
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (LTCXXCOMPILE, CXXLINK): Add
$(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
* src/Makefile.in: Regenerate.
OK. All N of these are OK for libstdc++.
Post by Ralf Wildenhues
libstdc++-v3/configure |110803
+++-----------------
Yay.

Nice to see this.

-benjamin
Dave Korn
2009-08-28 13:55:29 UTC
Permalink
Post by Ralf Wildenhues
Post by Ralf Wildenhues
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only)
Automake handling of per-target LDFLAGS rules changed which means
that if you override *_LINK manually, you have to ensure that they
are used, too.
Automake introduced $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
(or per-target LIBTOOLFLAGS). Add them where we manually override
$(LINK). Also, add $(LIBTOOLFLAGS) where we use $(LIBTOOL) in
Makefile.in files not governed by automake.
When this patch is used with Automake 1.9.6, there is a small chance for
problems: its rules may now cause duplicate expansion of some of the
link flags. If link flags duplication is a problem on some systems,
then this can cause failures. I haven't tested this much.
OK to apply?
Hi Ralf,

Is it possible that this patch is related to a problem I'm experiencing on
HEAD (r151124) where LTLDFLAGS in libstdc++-v3/src appears no longer to be
used in the final link of libstdc++.la?

It used to be that LTLDFLAGS was included in CXXLINK, which was used in the
rule for linking libstdc++.la, but now that rule uses libstdc___la_LINK
instead. Is it perhaps the case that both LTLDFLAGS and CXXLINK are now
obsolete in the v3 makefiles and don't need to be defined at all?

cheers,
DaveK
Dave Korn
2009-08-28 14:10:13 UTC
Permalink
Post by Dave Korn
Is it possible that this patch is related to a problem I'm experiencing on
HEAD (r151124) where LTLDFLAGS in libstdc++-v3/src appears no longer to be
used in the final link of libstdc++.la?
It used to be that LTLDFLAGS was included in CXXLINK, which was used in the
rule for linking libstdc++.la, but now that rule uses libstdc___la_LINK
instead. Is it perhaps the case that both LTLDFLAGS and CXXLINK are now
obsolete in the v3 makefiles and don't need to be defined at all?
Not that I'm suggesting for a minute that the right thing to do for me
wouldn't be to use libstdc___la_LDFLAGS instead; I'm just curious if those two
definitions can be removed.

cheers,
DaveK
Ralf Wildenhues
2009-08-28 17:47:31 UTC
Permalink
Hello Dave,
Post by Dave Korn
Post by Dave Korn
Is it possible that this patch is related to a problem I'm experiencing on
HEAD (r151124) where LTLDFLAGS in libstdc++-v3/src appears no longer to be
used in the final link of libstdc++.la?
It used to be that LTLDFLAGS was included in CXXLINK, which was used in the
rule for linking libstdc++.la, but now that rule uses libstdc___la_LINK
instead. Is it perhaps the case that both LTLDFLAGS and CXXLINK are now
obsolete in the v3 makefiles and don't need to be defined at all?
Aww darn. That patch was borked too. :-/

libstdc++-v3/src
boehm-gc
libgomp
libjava

seem affected, too.
Post by Dave Korn
Not that I'm suggesting for a minute that the right thing to do for me
wouldn't be to use libstdc___la_LDFLAGS instead; I'm just curious if those two
definitions can be removed.
Curious what you used to detect this. I would like to make sure I
haven't overlooked any other instances; I'll work on it this weekend
(unless you beat me to it).

Thanks for the report,
Ralf
Dave Korn
2009-08-28 18:06:47 UTC
Permalink
Post by Ralf Wildenhues
Hello Dave,
'lo!
Post by Ralf Wildenhues
Post by Dave Korn
Post by Dave Korn
Is it possible that this patch is related to a problem I'm experiencing on
HEAD (r151124) where LTLDFLAGS in libstdc++-v3/src appears no longer to be
used in the final link of libstdc++.la?
It used to be that LTLDFLAGS was included in CXXLINK, which was used in the
rule for linking libstdc++.la, but now that rule uses libstdc___la_LINK
instead. Is it perhaps the case that both LTLDFLAGS and CXXLINK are now
obsolete in the v3 makefiles and don't need to be defined at all?
Aww darn. That patch was borked too. :-/
libstdc++-v3/src
boehm-gc
libgomp
libjava
seem affected, too.
Post by Dave Korn
Not that I'm suggesting for a minute that the right thing to do for me
wouldn't be to use libstdc___la_LDFLAGS instead; I'm just curious if those two
definitions can be removed.
Curious what you used to detect this. I would like to make sure I
haven't overlooked any other instances; I'll work on it this weekend
(unless you beat me to it).
I only noticed it because I have an outstanding patch that builds libstdc++
as a DLL and it stopped producing a DLL when I merged up to HEAD.
Post by Ralf Wildenhues
I'll work on it this weekend (unless you beat me to it).
Not really sure what the problem is? Will the outcome of your solution be
that LTLDFLAGS again works in the way I was previously using it? I'm
perfectly happy to add my -no-undefined to libstdc___la_LDFLAGS, which I think
is probably actually a better (because more specific) location for it.

cheers,
DaveK
Ralf Wildenhues
2009-08-28 17:59:28 UTC
Permalink
Post by Dave Korn
Post by Ralf Wildenhues
I'll work on it this weekend (unless you beat me to it).
Not really sure what the problem is?
The *LINK variables I changed are not necessarily used for the link.
IOW, their override doesn't override.
Post by Dave Korn
Will the outcome of your solution be
that LTLDFLAGS again works in the way I was previously using it?
Yes.
Post by Dave Korn
I'm
perfectly happy to add my -no-undefined to libstdc___la_LDFLAGS, which I think
is probably actually a better (because more specific) location for it.
Yes, that is probably better anyway, even with the fix.

Cheers,
Ralf
Dave Korn
2009-08-28 18:28:19 UTC
Permalink
Post by Ralf Wildenhues
Post by Dave Korn
I'm
perfectly happy to add my -no-undefined to libstdc___la_LDFLAGS, which I think
is probably actually a better (because more specific) location for it.
Yes, that is probably better anyway, even with the fix.
Thanks, then I'll leave it for you to fix in your own time and respin my
patch that way, with a little luck it won't even generated a conflict line
when your fix goes in :)

cheers,
DaveK
Ralf Wildenhues
2009-09-03 20:01:17 UTC
Permalink
[ Dave, Steve, could you please check whether the patch fixes things for
you? Thanks. ]
Post by Dave Korn
Post by Ralf Wildenhues
Post by Ralf Wildenhues
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only)
Automake handling of per-target LDFLAGS rules changed which means
that if you override *_LINK manually, you have to ensure that they
are used, too.
Unfortunately, (out of necessity) it changed much more than I figured it
did, and the NEWS entry that I quoted described, and the Automake manual
that document *LINK variables don't reflect reality fully any more
either. We need to address this upstream.

Anyway, the gist is the following:

As soon as <target>_LDFLAGS or <target>_LIBTOOLFLAGS are used now,
automake will generate a <target>_LINK variable which is used to link.
This <target>_LINK variable will however not reference $(LINK) or
$(CXXLINK) any more.

So in some cases our overriding of LINK, CXXLINK was not sufficient.

FWIW, automake does this so that AM_LDFLAGS and AM_LIBTOOLFLAGS are not
reference in the final link command line any more, so that per-target
link flags replace them, instead of just being listed afterwards.
(That's the above "out of necessity" bit.)

Now, this situation is ugly precisely because it is very unintuitive
that you'd have to override each <target>_LINK variable like that, and
I fear that, as new libraries and programs are generated in the GCC
tree, developers adding <target>_LDFLAGS will not think of adding
<target>_LINK at the same time. :-/
Post by Dave Korn
Is it possible that this patch is related to a problem I'm experiencing on
HEAD (r151124) where LTLDFLAGS in libstdc++-v3/src appears no longer to be
used in the final link of libstdc++.la?
It used to be that LTLDFLAGS was included in CXXLINK, which was used in the
rule for linking libstdc++.la, but now that rule uses libstdc___la_LINK
instead. Is it perhaps the case that both LTLDFLAGS and CXXLINK are now
obsolete in the v3 makefiles and don't need to be defined at all?
Please try the patch below. It should fix all instances that I
introduced in r151013.

Note that I allowed myself some simplification here in that I added the
per-target link flags at the end of the command line. That means,
unlike with automake-1.11-generated lines, $(AM_LDFLAGS) still shows up,
also the $(LDFLAGS) don't come last. That shouldn't be a problem in
GCC; on the contrary, in libgomp at least it seems AM_LDFLAGS was
intended to appear in the link.

I guess I'll take the boehm-gc bit upstream; but since it addresses
a regression induced by the Automake upgrade, I think it should be
applicable in GCC even now.

Tested with a bootstrap; that's not a very effective test for this
particular bug, so I'd appreciate feedback from Dave and Steve. Thanks.

OK to apply?

This is the last autotools update-induced regression I am aware of in
the GCC tree (so please report issues if you see any other).

Thanks,
Ralf

Override all per-target *_LINK variables correctly.

boehm-gc/ChangeLog:
2009-09-03 Ralf Wildenhues <***@gmx.de>

* Makefile.am (libgcjgc_la_LINK, gctest_LINK): New.
(gctest_LDADD): Depend on libgcjgc.la instead of ./libgcjgc.la,
so that library dependency resolution works with portable make.
* Makefile.in: Regenerate.

libgfortran/ChangeLog:
2009-09-03 Ralf Wildenhues <***@gmx.de>

* Makefile.am (libgfortranbegin_la_LINK): New.
* Makefile.in: Regenerate.

libgomp/ChangeLog:
2009-09-03 Ralf Wildenhues <***@gmx.de>

* Makefile.am (libgomp_la_LINK): New.
* Makefile.in: Regenerate.

libjava/ChangeLog:
2009-09-03 Ralf Wildenhues <***@gmx.de>

* Makefile.am (libgij_la_LINK, libjvm_la_LINK): New.
* Makefile.in: Regenerate.

libstdc++-v3/ChangeLog:
2009-09-03 Ralf Wildenhues <***@gmx.de>

* src/Makefile.am (libstdc___la_LINK): New.
* src/Makefile.in: Regenerate.

diff --git a/boehm-gc/Makefile.am b/boehm-gc/Makefile.am
index 8438911..b074ac6 100644
--- a/boehm-gc/Makefile.am
+++ b/boehm-gc/Makefile.am
@@ -40,6 +40,7 @@ extra_ldflags_libgc = @extra_ldflags_libgc@
libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS) $(UNWINDLIBS)
libgcjgc_la_DEPENDENCIES = @addobjs@
libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
+libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS)

libgcjgc_convenience_la_LIBADD = @addobjs@
libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
@@ -49,8 +50,9 @@ AM_CFLAGS = @GC_CFLAGS@

check_PROGRAMS = gctest
gctest_SOURCES = tests/test.c
-gctest_LDADD = ./libgcjgc.la $(THREADLIBS) $(UNWINDLIBS) $(EXTRA_TEST_LIBS)
+gctest_LDADD = libgcjgc.la $(THREADLIBS) $(UNWINDLIBS) $(EXTRA_TEST_LIBS)
gctest_LDFLAGS = -shared-libgcc
+gctest_LINK = $(LINK) $(gctest_LDFLAGS)
TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc
TESTS = gctest

diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am
index 0860955..c2fd941 100644
--- a/libgfortran/Makefile.am
+++ b/libgfortran/Makefile.am
@@ -24,6 +24,7 @@ myexeclib_LTLIBRARIES = libgfortranbegin.la
myexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)
libgfortranbegin_la_SOURCES = fmain.c
libgfortranbegin_la_LDFLAGS = -static
+libgfortranbegin_la_LINK = $(LINK) $(libgfortranbegin_la_LDFLAGS)

## io.h conflicts with a system header on some platforms, so
## use -iquote
diff --git a/libgomp/Makefile.am b/libgomp/Makefile.am
index 5bc0732..3786bee 100644
--- a/libgomp/Makefile.am
+++ b/libgomp/Makefile.am
@@ -29,6 +29,7 @@ endif
libgomp_version_info = -version-info $(libtool_VERSION)
libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script) \
-no-undefined -bindir "$(bindir)"
+libgomp_la_LINK = $(LINK) $(libgomp_la_LDFLAGS)

libgomp_la_SOURCES = alloc.c barrier.c critical.c env.c error.c iter.c \
iter_ull.c loop.c loop_ull.c ordered.c parallel.c sections.c single.c \
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 13b25ac..7b6750c 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -223,6 +223,7 @@ libgij_la_LIBADD = -L$(here)/.libs libgcj.la
## The mysterious backslash in the grep pattern is consumed by make.
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
+libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS)

if INTERPRETER
libgcj_interpret_source_files = jvmti.cc interpret.cc
@@ -326,6 +327,7 @@ libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
## See jv_convert_LDADD.
libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC)
+libjvm_la_LINK = $(CXXLINK) $(libjvm_la_LDFLAGS)

## The .db file. This rule is only used for native builds, so it is
## safe to invoke gcj-dbtool.
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 54d5218..9513bd5 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -209,6 +209,8 @@ libstdc___la_DEPENDENCIES = \
libstdc___la_LDFLAGS = \
-version-info $(libtool_VERSION) ${version_arg} -lm

+libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
+
# Use special rules for the deprecated source files so that they find
# deprecated include files.
GLIBCXX_INCLUDE_DIR=$(glibcxx_builddir)/include
Ralf Wildenhues
2009-09-10 18:57:28 UTC
Permalink
Ping <http://gcc.gnu.org/ml/gcc-patches/2009-09/msg00305.html>
This is a regression caused by the use of newer Automake.

Thanks,
Ralf
Post by Ralf Wildenhues
[ Dave, Steve, could you please check whether the patch fixes things for
you? Thanks. ]
[...]
Post by Ralf Wildenhues
Tested with a bootstrap; that's not a very effective test for this
particular bug, so I'd appreciate feedback from Dave and Steve. Thanks.
OK to apply?
This is the last autotools update-induced regression I am aware of in
the GCC tree (so please report issues if you see any other).
Override all per-target *_LINK variables correctly.
* Makefile.am (libgcjgc_la_LINK, gctest_LINK): New.
(gctest_LDADD): Depend on libgcjgc.la instead of ./libgcjgc.la,
so that library dependency resolution works with portable make.
* Makefile.in: Regenerate.
* Makefile.am (libgfortranbegin_la_LINK): New.
* Makefile.in: Regenerate.
* Makefile.am (libgomp_la_LINK): New.
* Makefile.in: Regenerate.
* Makefile.am (libgij_la_LINK, libjvm_la_LINK): New.
* Makefile.in: Regenerate.
* src/Makefile.am (libstdc___la_LINK): New.
* src/Makefile.in: Regenerate.
Steve Ellcey
2009-09-10 19:31:33 UTC
Permalink
Post by Ralf Wildenhues
Ping <http://gcc.gnu.org/ml/gcc-patches/2009-09/msg00305.html>
This is a regression caused by the use of newer Automake.
Thanks,
Ralf
Post by Ralf Wildenhues
[ Dave, Steve, could you please check whether the patch fixes things for
you? Thanks. ]
[...]
Post by Ralf Wildenhues
Tested with a bootstrap; that's not a very effective test for this
particular bug, so I'd appreciate feedback from Dave and Steve. Thanks.
I put this in my HP-UX builds last night and the build and testing all
looked OK.

Steve Ellcey
***@cup.hp.com
Paolo Bonzini
2009-09-10 21:28:38 UTC
Permalink
Post by Ralf Wildenhues
[ Dave, Steve, could you please check whether the patch fixes things for
you? Thanks. ]
Fine, thanks.

Paolo
Ralf Wildenhues
2009-10-11 11:48:34 UTC
Permalink
<http://thread.gmane.org/gmane.comp.gcc.patches/191228/focus=20062>
Post by Ralf Wildenhues
Post by Ralf Wildenhues
Automake handling of per-target LDFLAGS rules changed which means
that if you override *_LINK manually, you have to ensure that they
are used, too.
Unfortunately, (out of necessity) it changed much more than I figured it
did, and the NEWS entry that I quoted described, and the Automake manual
that document *LINK variables don't reflect reality fully any more
either. We need to address this upstream.
Done with the patch below, Automake master and branch-1.11; adding Dave
to THANKS.
Post by Ralf Wildenhues
As soon as <target>_LDFLAGS or <target>_LIBTOOLFLAGS are used now,
automake will generate a <target>_LINK variable which is used to link.
This <target>_LINK variable will however not reference $(LINK) or
$(CXXLINK) any more.
So in some cases our overriding of LINK, CXXLINK was not sufficient.
Cheers,
Ralf

Improve description of the various *LINK variables.

* doc/automake.texi (Program and Library Variables): _LINK also
receives libraries to link against. _LINK may be generated.
(Program Variables): Document reasons when per-target _LINK is
used instead of LINK.
(How the Linker is Chosen): Document how a per-target _LINK
variable and per-target link flags override linker selection.
* THANKS: Update.
Report by Dave Korn against gcc/libstdc++-v3.

diff --git a/doc/automake.texi b/doc/automake.texi
index cfed344..884caa3 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -5651,14 +5651,20 @@ Program and Library Variables
linker is chosen according to the languages used by the program. For
instance, a program that includes C++ source code would use the C++
compiler to link. The @code{_LINK} variable must hold the name of a
-command that can be passed all the @file{.o} file names as arguments.
-Note that the name of the underlying program is @emph{not} passed to
-@code{_LINK}; typically one uses @samp{$@@}:
+command that can be passed all the @file{.o} file names and libraries
+to link against as arguments. Note that the name of the underlying
+program is @emph{not} passed to @code{_LINK}; typically one uses
+@samp{$@@}:

@example
maude_LINK = $(CCLD) -magic -o $@@
@end example

+If a @code{_LINK} variable is not supplied, it may still be generated
+and used by Automake due to the use of per-target link flags such as
+@code{_CFLAGS}, @code{_LDFLAGS} or @code{_LIBTOOLFLAGS}, in cases where
+they apply.
+
@item maude_CCASFLAGS
@itemx maude_CFLAGS
@itemx maude_CPPFLAGS
@@ -6022,7 +6028,9 @@ Program Variables
This is the command used to actually link a C program. It already
includes @samp{-o $@@} and the usual variable references (for instance,
@code{CFLAGS}); it takes as ``arguments'' the names of the object files
-and libraries to link in.
+and libraries to link in. This variable is not used when the linker is
+overridden with a per-target @code{_LINK} variable or per-target flags
+cause Automake to define such a @code{_LINK} variable.
@end vtable


@@ -6574,6 +6582,10 @@ How the Linker is Chosen
more appropriately. @xref{Libtool Convenience Libraries}, for a
trick with @code{***@dots{}_SOURCES}.

+A per-target @code{_LINK} variable will override the above selection.
+Per-target link flags will cause Automake to write a per-target
+@code{_LINK} variable according to the language chosen as above.
+

@node Fortran 9x Support
@comment node-name, next, previous, up

Ralf Wildenhues
2009-08-15 11:33:57 UTC
Permalink
Post by Ralf Wildenhues
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
world with 2.64 and Automake 1.11,
OK?

Thanks,
Ralf

The patch is really small (if you omit the generated files) ...

diff --git a/config/override.m4 b/config/override.m4
index bf112db..903bb9a 100644
--- a/config/override.m4
+++ b/config/override.m4
@@ -40,7 +40,7 @@ m4_copy_force([_AC_PREREQ], [AC_PREREQ])

dnl Ensure exactly this Autoconf version is used
m4_ifndef([_GCC_AUTOCONF_VERSION],
- [m4_define([_GCC_AUTOCONF_VERSION], [2.59])])
+ [m4_define([_GCC_AUTOCONF_VERSION], [2.64])])

dnl Test for the exact version when AC_INIT is expanded.
dnl This allows to update the tree in steps (for testing)


... but the accompanying ChangeLog entries are rather not :-)
(and the generated files diffs weigh a few MB):

GCC:

config/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64.

ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

intl/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* configure: Regenerate.

libiberty/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Regenerate.

boehm-gc/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* include/Makefile.in: Regenerate.
* include/gc_config.h.in: Regenerate.

fixincludes/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* configure: Regenerate.

gcc/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.

libgcc/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

gnattools/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

libada/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

libcpp/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.

libdecnumber/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* configure: Regenerate.

libffi/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* fficonfig.h.in: Regenerate.
* include/Makefile.in: Regenerate.
* man/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

libgfortran/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.

libgomp/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* testsuite/Makefile.in: Regenerate.

libjava/classpath/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* doc/Makefile.in: Regenerate.
* doc/api/Makefile.in: Regenerate.
* examples/Makefile.in: Regenerate.
* external/Makefile.in: Regenerate.
* external/jsr166/Makefile.in: Regenerate.
* external/relaxngDatatype/Makefile.in: Regenerate.
* external/sax/Makefile.in: Regenerate.
* external/w3c_dom/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* include/config.h.in: Regenerate.
* lib/Makefile.in: Regenerate.
* native/Makefile.in: Regenerate.
* native/fdlibm/Makefile.in: Regenerate.
* native/jawt/Makefile.in: Regenerate.
* native/jni/Makefile.in: Regenerate.
* native/jni/classpath/Makefile.in: Regenerate.
* native/jni/gconf-peer/Makefile.in: Regenerate.
* native/jni/gstreamer-peer/Makefile.in: Regenerate.
* native/jni/gtk-peer/Makefile.in: Regenerate.
* native/jni/java-io/Makefile.in: Regenerate.
* native/jni/java-lang/Makefile.in: Regenerate.
* native/jni/java-math/Makefile.in: Regenerate.
* native/jni/java-net/Makefile.in: Regenerate.
* native/jni/java-nio/Makefile.in: Regenerate.
* native/jni/java-util/Makefile.in: Regenerate.
* native/jni/midi-alsa/Makefile.in: Regenerate.
* native/jni/midi-dssi/Makefile.in: Regenerate.
* native/jni/native-lib/Makefile.in: Regenerate.
* native/jni/qt-peer/Makefile.in: Regenerate.
* native/jni/xmlj/Makefile.in: Regenerate.
* native/plugin/Makefile.in: Regenerate.
* resource/Makefile.in: Regenerate.
* scripts/Makefile.in: Regenerate.
* tools/Makefile.in: Regenerate.

libjava/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* gcj/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* include/config.h.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

libjava/libltdl/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config-h.in: Regenerate.
* configure: Regenerate.

libmudflap/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* testsuite/Makefile.in: Regenerate.

libobjc/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* configure: Regenerate.
* config.h.in: Regenerate.

libssp/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.

libstdc++-v3/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* acinclude.m4: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* doc/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* python/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

zlib/ChangeLog: Regenerate.
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* configure: Regenerate.


--- snip ---

src:

config/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64.

intl/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* config.h.in: Likewise.
* configure: Likewise.

libdecnumber/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* config.in: Likewise.
* configure: Likewise.

etc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

sim/common/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/iq2000/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/d10v/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/igen/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/m32r/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/frv/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* avr/config.in: Regenerate.
* avr/configure: Likewise.
* configure: Likewise.
* cris/config.in: Likewise.
* cris/configure: Likewise.

sim/h8300/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/mn10300/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/ppc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/erc32/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/arm/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/m68hc11/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/lm32/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/sh64/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/v850/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/cr16/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/moxie/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/m32c/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/mips/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/mcore/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

sim/testsuite/d10v-elf/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

sim/testsuite/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

sim/testsuite/frv-elf/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

sim/testsuite/m32r-elf/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

sim/testsuite/mips64el-elf/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

sim/sh/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

gold/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* testsuite/Makefile.in: Likewise.

gprof/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4
* configure: Likewise.
* gconfig.in: Likewise.

libiberty/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* config.in: Regenerate.
* configure: Likewise.

ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

opcodes/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.

readline/examples/rlfe/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

gas/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.

ld/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4
* config.in: Likewise.
* configure: Likewise.

gdb/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4 Regenerate.
* config.in: Likewise.
* configure: Likewise.
* gnulib/Makefile.in: Likewise.

gdb/doc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.

gdb/gdbserver/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* aclocal.m4: Regenerate.
* config.in: Likewise.
* configure: Likewise.

gdb/testsuite/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.
* gdb.hp/configure: Likewise.
* gdb.hp/gdb.aCC/configure: Likewise.
* gdb.hp/gdb.base-hp/configure: Likewise.
* gdb.hp/gdb.compat/configure: Likewise.
* gdb.hp/gdb.defects/configure: Likewise.
* gdb.hp/gdb.objdbg/configure: Likewise.
* gdb.stabs/configure: Likewise.

binutils/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.

bfd/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.

bfd/doc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.in: Regenerate.

readline/ChangeLog.gdb:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure: Regenerate.
Richard Guenther
2009-08-15 11:48:54 UTC
Permalink
Post by Ralf Wildenhues
Post by Ralf Wildenhues
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
  world with 2.64 and Automake 1.11,
OK?
Shouldn't the classpath changes be made upstream and a new version be
imported instead?

I just checked, and current openSUSE Factory still has autoconf 2.63 ...

Richard.
Post by Ralf Wildenhues
Thanks,
Ralf
The patch is really small (if you omit the generated files) ...
diff --git a/config/override.m4 b/config/override.m4
index bf112db..903bb9a 100644
--- a/config/override.m4
+++ b/config/override.m4
@@ -40,7 +40,7 @@ m4_copy_force([_AC_PREREQ], [AC_PREREQ])
 dnl Ensure exactly this Autoconf version is used
 m4_ifndef([_GCC_AUTOCONF_VERSION],
-  [m4_define([_GCC_AUTOCONF_VERSION], [2.59])])
+  [m4_define([_GCC_AUTOCONF_VERSION], [2.64])])
 dnl Test for the exact version when AC_INIT is expanded.
 dnl This allows to update the tree in steps (for testing)
... but the accompanying ChangeLog entries are rather not  :-)
       * override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64.
ChangeLog: Regenerate.
       * configure: Regenerate.
intl/ChangeLog: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
libiberty/ChangeLog: Regenerate.
       * config.in: Regenerate.
       * configure: Regenerate.
boehm-gc/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
       * include/Makefile.in: Regenerate.
       * include/gc_config.h.in: Regenerate.
fixincludes/ChangeLog: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
gcc/ChangeLog: Regenerate.
       * aclocal.m4: Regenerate.
       * config.in: Regenerate.
       * configure: Regenerate.
libgcc/ChangeLog: Regenerate.
       * configure: Regenerate.
gnattools/ChangeLog: Regenerate.
       * configure: Regenerate.
libada/ChangeLog: Regenerate.
       * configure: Regenerate.
libcpp/ChangeLog: Regenerate.
       * aclocal.m4: Regenerate.
       * config.in: Regenerate.
       * configure: Regenerate.
libdecnumber/ChangeLog: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
libffi/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
       * fficonfig.h.in: Regenerate.
       * include/Makefile.in: Regenerate.
       * man/Makefile.in: Regenerate.
       * testsuite/Makefile.in: Regenerate.
libgfortran/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * config.h.in: Regenerate.
       * configure: Regenerate.
libgomp/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * config.h.in: Regenerate.
       * configure: Regenerate.
       * testsuite/Makefile.in: Regenerate.
libjava/classpath/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
       * doc/Makefile.in: Regenerate.
       * doc/api/Makefile.in: Regenerate.
       * examples/Makefile.in: Regenerate.
       * external/Makefile.in: Regenerate.
       * external/jsr166/Makefile.in: Regenerate.
       * external/relaxngDatatype/Makefile.in: Regenerate.
       * external/sax/Makefile.in: Regenerate.
       * external/w3c_dom/Makefile.in: Regenerate.
       * include/Makefile.in: Regenerate.
       * include/config.h.in: Regenerate.
       * lib/Makefile.in: Regenerate.
       * native/Makefile.in: Regenerate.
       * native/fdlibm/Makefile.in: Regenerate.
       * native/jawt/Makefile.in: Regenerate.
       * native/jni/Makefile.in: Regenerate.
       * native/jni/classpath/Makefile.in: Regenerate.
       * native/jni/gconf-peer/Makefile.in: Regenerate.
       * native/jni/gstreamer-peer/Makefile.in: Regenerate.
       * native/jni/gtk-peer/Makefile.in: Regenerate.
       * native/jni/java-io/Makefile.in: Regenerate.
       * native/jni/java-lang/Makefile.in: Regenerate.
       * native/jni/java-math/Makefile.in: Regenerate.
       * native/jni/java-net/Makefile.in: Regenerate.
       * native/jni/java-nio/Makefile.in: Regenerate.
       * native/jni/java-util/Makefile.in: Regenerate.
       * native/jni/midi-alsa/Makefile.in: Regenerate.
       * native/jni/midi-dssi/Makefile.in: Regenerate.
       * native/jni/native-lib/Makefile.in: Regenerate.
       * native/jni/qt-peer/Makefile.in: Regenerate.
       * native/jni/xmlj/Makefile.in: Regenerate.
       * native/plugin/Makefile.in: Regenerate.
       * resource/Makefile.in: Regenerate.
       * scripts/Makefile.in: Regenerate.
       * tools/Makefile.in: Regenerate.
libjava/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
       * gcj/Makefile.in: Regenerate.
       * include/Makefile.in: Regenerate.
       * include/config.h.in: Regenerate.
       * testsuite/Makefile.in: Regenerate.
libjava/libltdl/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * config-h.in: Regenerate.
       * configure: Regenerate.
libmudflap/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * config.h.in: Regenerate.
       * configure: Regenerate.
       * testsuite/Makefile.in: Regenerate.
libobjc/ChangeLog: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
       * config.h.in: Regenerate.
libssp/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * config.h.in: Regenerate.
       * configure: Regenerate.
libstdc++-v3/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * acinclude.m4: Regenerate.
       * aclocal.m4: Regenerate.
       * config.h.in: Regenerate.
       * configure: Regenerate.
       * doc/Makefile.in: Regenerate.
       * include/Makefile.in: Regenerate.
       * libsupc++/Makefile.in: Regenerate.
       * po/Makefile.in: Regenerate.
       * python/Makefile.in: Regenerate.
       * src/Makefile.in: Regenerate.
       * testsuite/Makefile.in: Regenerate.
zlib/ChangeLog: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Regenerate.
       * configure: Regenerate.
--- snip ---
       * override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64.
       * aclocal.m4: Regenerate.
       * config.h.in: Likewise.
       * configure: Likewise.
       * aclocal.m4: Regenerate.
       * config.in: Likewise.
       * configure: Likewise.
       * configure: Regenerate.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * avr/config.in: Regenerate.
       * avr/configure: Likewise.
       * configure: Likewise.
       * cris/config.in: Likewise.
       * cris/configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * configure: Regenerate.
       * configure: Regenerate.
       * configure: Regenerate.
       * configure: Regenerate.
       * configure: Regenerate.
       * config.in: Regenerate.
       * configure: Likewise.
       * Makefile.in: Regenerate.
       * aclocal.m4: Likewise.
       * config.in: Likewise.
       * configure: Likewise.
       * testsuite/Makefile.in: Likewise.
       * Makefile.in: Regenerate.
       * aclocal.m4
       * configure: Likewise.
       * gconfig.in: Likewise.
       * config.in: Regenerate.
       * configure: Likewise.
       * configure: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Likewise.
       * config.in: Likewise.
       * configure: Likewise.
       * configure: Regenerate.
       * Makefile.in: Regenerate.
       * aclocal.m4: Likewise.
       * config.in: Likewise.
       * configure: Likewise.
       * doc/Makefile.in: Likewise.
       * Makefile.in: Regenerate.
       * aclocal.m4
       * config.in: Likewise.
       * configure: Likewise.
       * aclocal.m4  Regenerate.
       * config.in: Likewise.
       * configure: Likewise.
       * gnulib/Makefile.in: Likewise.
       * configure: Regenerate.
       * aclocal.m4: Regenerate.
       * config.in: Likewise.
       * configure: Likewise.
       * configure: Regenerate.
       * gdb.hp/configure: Likewise.
       * gdb.hp/gdb.aCC/configure: Likewise.
       * gdb.hp/gdb.base-hp/configure: Likewise.
       * gdb.hp/gdb.compat/configure: Likewise.
       * gdb.hp/gdb.defects/configure: Likewise.
       * gdb.hp/gdb.objdbg/configure: Likewise.
       * gdb.stabs/configure: Likewise.
       * Makefile.in: Regenerate.
       * aclocal.m4: Likewise.
       * config.in: Likewise.
       * configure: Likewise.
       * doc/Makefile.in: Likewise.
       * Makefile.in: Regenerate.
       * aclocal.m4: Likewise.
       * config.in: Likewise.
       * configure: Likewise.
       * Makefile.in: Regenerate.
       * configure: Regenerate.
Ralf Wildenhues
2009-08-15 12:22:58 UTC
Permalink
Hello Richard,
Post by Richard Guenther
Post by Ralf Wildenhues
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
  world with 2.64 and Automake 1.11,
OK?
Shouldn't the classpath changes be made upstream and a new version be
imported instead?
This patch set contains no changes to classpath except in generated
files (which are not checked in upstream) and in the one bit of
documentation. Tom agreed to handle that (I Cc:ed him on the patch)
in <http://gcc.gnu.org/ml/gcc/2009-06/msg00680.html>.
Post by Richard Guenther
I just checked, and current openSUSE Factory still has autoconf 2.63 ...
I thought the consensus was to move to the most recent stable releases
when we would move. At least there was no complaints to the plan
<http://gcc.gnu.org/ml/gcc/2009-06/msg00647.html>.

A move to 2.63 would be more work (backporting some known issues from
2.64); OTOH, for development, the situation does not grow worse with
2.64 from what we have now: you already have to have an extra set of
(old) tools installed somewhere. We expect this situation to only
improve, as more distributions upgrade Autoconf.

Since its release on 2009-07-26, Autoconf 2.64 has not seen a regression
that impacted GCC's use of it AFAICS (and only minor ones otherwise).

Cheers,
Ralf
Ralf Wildenhues
2009-08-15 12:29:07 UTC
Permalink
Post by Ralf Wildenhues
Since its release on 2009-07-26, Autoconf 2.64 has not seen a regression
that impacted GCC's use of it AFAICS (and only minor ones otherwise).
Ah, hm, except for
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6839>
which is still pending.

Hmm. Paolo, do you agree that we can probably fix this in
config/override.m4 if we should?

Sorry about that,
Ralf
Paolo Bonzini
2009-08-15 16:21:25 UTC
Permalink
Post by Ralf Wildenhues
Post by Ralf Wildenhues
Since its release on 2009-07-26, Autoconf 2.64 has not seen a regression
that impacted GCC's use of it AFAICS (and only minor ones otherwise).
Ah, hm, except for
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6839>
which is still pending.
Hmm. Paolo, do you agree that we can probably fix this in
config/override.m4 if we should?
Yes, we should fix it simply by dropping fopen from the program used in
the cross compilation + default file name test (like the
AC_LANG_NULL_PROGRAM in my patch). It should be two lines in
override.m4, and they should be committed first.

Paolo
Ralf Wildenhues
2009-08-17 19:33:49 UTC
Permalink
Suggested patch to avoid the 2.64 glitch, and to disable option checking
in the top level. This patch could be applied right now, as with 2.59,
all it does is add white space to the toplevel configure script.

With 2.64 and up, the AC_DISABLE_OPTION_CHECKING avoids warnings about
--enable-*, --disable-*, --with-* and --without-*
switches passed in by the user and unknown to the toplevel configure
script. Note that with this patch, subdirectory configure scripts may
still warn about unknown switches. We could easily avoid that across
the whole tree by letting just the toplevel pass
--disable-option-checking to each sub configure script invoked, e.g.,
by adding it to $baseargs in configure.ac. Do you want that? If yes,
OK to just squash it in with this patch? (2.59 scripts will ignore
the argument.)

With exactly 2.64, this patch changes the AC_PROG_{CC,CXX,FC,F77}
expansions used throughout the tree to avoid trying out fopen in the
test for whether the compiler works and we don't cross compile. The
diff for the toplevel configure script looks like this:

| --- b/configure
| +++ a/configure
| @@ -3897,12 +3897,10 @@ done
|
| cat confdefs.h - <<_ACEOF >conftest.$ac_ext
| /* end confdefs.h. */
| -#include <stdio.h>
| +
| int
| main ()
| {
| -FILE *f = fopen ("conftest.out", "w");
| - return ferror (f) || fclose (f) != 0;
|
| ;
| return 0;

This change ought to fix build for AVR and RTEMS and maybe other
embedded architectures that do not provide a hosted C implementation
by default; OTOH, it re-opens a small bug for hybrid systems like
BlueGene in that configure falsely assumes non-cross-compiling there
unless you pass both --build and --host correctly.

See these threads for the corresponding bug reports and discussions:
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6839>
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/6656>

Wrt. also overriding the things for the other languages, I'm not sure
that's ever necessary, but it can't hurt to play safe here.

OK to commit to GCC and src right away?

Thanks,
Ralf

Disable option checking in the toplevel, avoid 2.64 fopen glitch.

ChangeLog:
2009-08-17 Ralf Wildenhues <***@gmx.de>

* configure.ac: Call AC_DISABLE_OPTION_CHECKING.
* configure: Regenerate.

config/ChangeLog:
2009-08-17 Ralf Wildenhues <***@gmx.de>

* override.m4 (AC_DISABLE_OPTION_CHECKING): Define to be
empty if not defined, to avoid error with 2.59.
(_AC_LANG_IO_PROGRAM): When the Autoconf version is exactly
2.64, avoid per-language instances to drop fopen from test
program.

diff --git a/config/override.m4 b/config/override.m4
index bf112db..a10146f 100644
--- a/config/override.m4
+++ b/config/override.m4
@@ -58,6 +58,19 @@ m4_define([AC_INIT], m4_defn([AC_INIT])[
_GCC_AUTOCONF_VERSION_CHECK
])

+
+dnl Turn AC_DISABLE_OPTION_CHECKING into a no-op if not defined.
+m4_ifndef([AC_DISABLE_OPTION_CHECKING],
+ [m4_define([AC_DISABLE_OPTION_CHECKING])])
+
+
+dnl Fix 2.64 cross compile detection for AVR and RTEMS
+dnl by not trying to compile fopen.
+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64],
+ [m4_foreach([_GCC_LANG], [C, C++, Fortran, Fortran 77],
+ [m4_define([_AC_LANG_IO_PROGRAM(]_GCC_LANG[)], m4_defn([AC_LANG_PROGRAM(]_GCC_LANG[)]))])])
+
+
m4_version_prereq([2.60],, [
dnl We use $ac_pwd in some of the overrides below; ensure its definition
m4_divert_push([PARSE_ARGS])dnl
diff --git a/configure.ac b/configure.ac
index dcd9ced..2e07713 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,6 +25,7 @@ m4_include(config/proginstall.m4)

AC_INIT(move-if-change)
AC_PREREQ(2.59)
+AC_DISABLE_OPTION_CHECKING

progname=$0
# if PWD already has a value, it is probably wrong.
Paolo Bonzini
2009-08-17 19:39:41 UTC
Permalink
Post by Ralf Wildenhues
With 2.64 and up, the AC_DISABLE_OPTION_CHECKING avoids warnings about
--enable-*, --disable-*, --with-* and --without-*
switches passed in by the user and unknown to the toplevel configure
script. Note that with this patch, subdirectory configure scripts may
still warn about unknown switches. We could easily avoid that across
the whole tree by letting just the toplevel pass
--disable-option-checking to each sub configure script invoked, e.g.,
by adding it to $baseargs in configure.ac. Do you want that? If yes,
OK to just squash it in with this patch? (2.59 scripts will ignore
the argument.)
Yes and yes.
Post by Ralf Wildenhues
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6839>
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/6656>
Wrt. also overriding the things for the other languages, I'm not sure
that's ever necessary, but it can't hurt to play safe here.
OK to commit to GCC and src right away?
Ok.

Paolo
Dave Korn
2009-08-15 14:54:28 UTC
Permalink
Ralf Wildenhues wrote:

Hi Ralf,
Post by Ralf Wildenhues
Post by Ralf Wildenhues
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
world with 2.64 and Automake 1.11,
--- a/config/override.m4
+++ b/config/override.m4
- [m4_define([_GCC_AUTOCONF_VERSION], [2.59])])
+ [m4_define([_GCC_AUTOCONF_VERSION], [2.64])])
Looking at the toplevel of/src, there are no changes to blt/, cgen/, cpu/,
dejagnu/, elfcpp/, expat/, expect/, itcl/, iwidgets/, libgloss/, libgui/,
mmalloc/, newlib/, rda/, sid/, tcl/, texinfo/, tix/, tk/, utils/ and winsup/.
Are these all unaffected or are some of them liable to need updates too?

cheers,
DaveK
Ralf Wildenhues
2009-08-15 16:04:01 UTC
Permalink
Post by Dave Korn
Looking at the toplevel of/src, there are no changes to blt/, cgen/, cpu/,
dejagnu/, elfcpp/, expat/, expect/, itcl/, iwidgets/, libgloss/, libgui/,
mmalloc/, newlib/, rda/, sid/, tcl/, texinfo/, tix/, tk/, utils/ and winsup/.
That is correct.
Post by Dave Korn
Are these all unaffected or are some of them liable to need updates too?
I have never ever gotten a full src tree to cleanly build with
--enable-maintainer-mode, and IIRC not even without. I've always just
worked on the git binutils-gdb mirror. The rest of the tree has IMHO
lacked lots of love at least on the build system side. If you tell me
that it is used actively, and they are generally willing to see updated
build machinery (and there is somebody to review patches to this end,
timely, too), then I would look into this task. But last time I looked
I didn't think a drift apart would make things any worse; for example,
Autoconf versions used were quite inconsistent already.

Sorry if I've misunderstood things there.

I hope there is a chance this does not need to happen in lock step.

Cheers,
Ralf
Dave Korn
2009-08-15 16:49:39 UTC
Permalink
Post by Ralf Wildenhues
I have never ever gotten a full src tree to cleanly build with
--enable-maintainer-mode, and IIRC not even without. I've always just
worked on the git binutils-gdb mirror. The rest of the tree has IMHO
lacked lots of love at least on the build system side. If you tell me
that it is used actively, and they are generally willing to see updated
build machinery (and there is somebody to review patches to this end,
timely, too), then I would look into this task. But last time I looked
I didn't think a drift apart would make things any worse; for example,
Autoconf versions used were quite inconsistent already.
Well, the winsup/ directory is pretty heavily used, winsup == cygwin +
mingw! I can help with the testing if you can help with the patching; winsup
depends on newlib, so I can test those together for you. I think Joseph's
cut-down list looks about right for the rest.

cheers,
DaveK
Ralf Wildenhues
2009-08-18 19:14:04 UTC
Permalink
Post by Joseph S. Myers
Post by Dave Korn
Looking at the toplevel of/src, there are no changes to blt/, cgen/, cpu/,
dejagnu/, elfcpp/, expat/, expect/, itcl/, iwidgets/, libgloss/, libgui/,
mmalloc/, newlib/, rda/, sid/, tcl/, texinfo/, tix/, tk/, utils/ and winsup/.
Are these all unaffected or are some of them liable to need updates too?
Some of these do not exist on HEAD; they only have files in the Attic.
[...]
Post by Joseph S. Myers
I think cgen/ libgloss/ libgui/ newlib/ rda/ sid/ utils/ winsup/ actually
live in the src repository as their main home.
Plus sim/, as Tom noted.
Post by Joseph S. Myers
Well, the winsup/ directory is pretty heavily used, winsup == cygwin +
mingw! I can help with the testing if you can help with the patching; winsup
depends on newlib, so I can test those together for you. I think Joseph's
cut-down list looks about right for the rest.
Thanks guys. Does anyone have an up to date git clone of the full src
tree? If not, are there any volunteers to set one up, or can I bribe
one?

I have ventured a wee bit into building the whole tree, GNU/Linux and
Cygwin native builds.

Observing the autotools version used right now:

- sid/component/tcl was configured with Autoconf 2.61,
- parts of winsup with Autoconf 2.63,
- parts of itcl with 2.61,
- parts of libgloss with 2.61,
- parts of tk and parts of tcl with 2.60a,

Automake 1.9.3 has seen usage, 1.9.5 and 1.10 (sid), 1.4 and 1.4-p5
(rda, libgloss, utils are all candidates).

- libgloss/testsuite and ../libgloss.all has files named configure.in
which are not meant to be input files to autoconf (and are probably
dead for 12 years?).

Oberving build times: Cygwin takes several hours to build.

A conservative estimate is that I will need around 10 or more builds to
get the current tree to run without and with maintainer-mode enabled,
then update autotools, then retry the same again, plus bugfixing on the
way, then sort patches in logical order and retry patches in that order.
(This is how I did the rest of the tree, during the last months; if you
like, I can post a detailed recipe).

So, I expect this to take a few weekends, even without more surprises.
In light of the expected Stage 1 end for GCC, allow me to ask again:

May I proceed in updating the tree to 2.64/1.11 before getting the rest
of the tree (that already has out-of-sync autotools) back into sync?

This patch series is almost ready to go otherwise (expect to be able to
commit this weekend), and it'd be sad to see it hostage of the lesser
tightly maintained part of the tree. (Not to speak of the extra work
required to keep the current patch series in sync with other changes
while it is still pending.)

Thanks,
Ralf
Paolo Bonzini
2009-08-18 19:20:46 UTC
Permalink
Post by Ralf Wildenhues
May I proceed in updating the tree to 2.64/1.11 before getting the rest
of the tree (that already has out-of-sync autotools) back into sync?
As far as I'm concerned, yes. Nothing outside binutils/gdb/gcc has ever
cared much about Autotools versions (and some parts like newlib/libgloss
and winsup are not even CCed), it should be fine as long as we provide
override.m4 to cover their bugs.

Paolo
Dave Korn
2009-08-18 21:37:15 UTC
Permalink
Post by Ralf Wildenhues
Oberving build times: Cygwin takes several hours to build.
That can't be right. What did you do, and what hardware are you using?

cheers,
DaveK
Tom Tromey
2009-08-18 19:57:19 UTC
Permalink
Ralf> Thanks guys. Does anyone have an up to date git clone of the full src
Ralf> tree? If not, are there any volunteers to set one up, or can I bribe
Ralf> one?

I don't think there is one; AFAIK there are only git trees for a couple
parts of src.

Ralf> - parts of itcl with 2.61,
Ralf> - parts of tk and parts of tcl with 2.60a,

My understanding is that gdb changes can be made without worrying about
the consequence to the Insight bits, because Insight is not "official"
in some way.

I would suggest that this also applies to build infrastructure -- IMO it
would be ok for you to move forward with the main parts and fix this up
later.

Ralf> This patch series is almost ready to go otherwise (expect to be able to
Ralf> commit this weekend), and it'd be sad to see it hostage of the lesser
Ralf> tightly maintained part of the tree.

FWIW, I tend to agree. I know this sort of change is very difficult to
get in and I think it would be worthwhile to bend the rules a little to
make it simpler for you.

Tom
Christopher Faylor
2009-08-24 16:55:50 UTC
Permalink
Post by Tom Tromey
Ralf> Thanks guys. Does anyone have an up to date git clone of the full src
Ralf> tree? If not, are there any volunteers to set one up, or can I bribe
Ralf> one?
I don't think there is one; AFAIK there are only git trees for a couple
parts of src.
Ralf> - parts of itcl with 2.61,
Ralf> - parts of tk and parts of tcl with 2.60a,
My understanding is that gdb changes can be made without worrying about
the consequence to the Insight bits, because Insight is not "official"
in some way.
I would suggest that this also applies to build infrastructure -- IMO it
would be ok for you to move forward with the main parts and fix this up
later.
Ralf> This patch series is almost ready to go otherwise (expect to be able to
Ralf> commit this weekend), and it'd be sad to see it hostage of the lesser
Ralf> tightly maintained part of the tree.
FWIW, I tend to agree. I know this sort of change is very difficult to
get in and I think it would be worthwhile to bend the rules a little to
make it simpler for you.
I mainly agree but I'd like to know exactly what the "lesser tightly
maintained part" means since that is a judgement call rather than an
objective determination.

cgf
Joseph S. Myers
2009-08-15 16:26:38 UTC
Permalink
Post by Dave Korn
Looking at the toplevel of/src, there are no changes to blt/, cgen/, cpu/,
dejagnu/, elfcpp/, expat/, expect/, itcl/, iwidgets/, libgloss/, libgui/,
mmalloc/, newlib/, rda/, sid/, tcl/, texinfo/, tix/, tk/, utils/ and winsup/.
Are these all unaffected or are some of them liable to need updates too?
Some of these do not exist on HEAD; they only have files in the Attic.
Others do not have auto* source or generated files in them. So the
potentially active set that may need updates is reduced to cgen/ itcl/
libgloss/ libgui/ newlib/ rda/ sid/ tcl/ tk/ utils/ winsup/. At least
tcl/ and tk/ are imports of pretty old upstream versions (itcl/ also looks
like an import from upstream) and it would be good if they too could be
removed from HEAD as various other imports of upstream-maintained tools
(DejaGnu, Expect etc.) have been over time.

I think cgen/ libgloss/ libgui/ newlib/ rda/ sid/ utils/ winsup/ actually
live in the src repository as their main home.
--
Joseph S. Myers
***@codesourcery.com
Nick Clifton
2009-08-17 10:20:18 UTC
Permalink
Hi Ralf,

Binutils changes approved.

Cheers
Nick
Post by Ralf Wildenhues
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* testsuite/Makefile.in: Likewise.
* Makefile.in: Regenerate.
* aclocal.m4
* configure: Likewise.
* gconfig.in: Likewise.
* config.in: Regenerate.
* configure: Likewise.
* configure: Regenerate.
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* Makefile.in: Regenerate.
* aclocal.m4
* config.in: Likewise.
* configure: Likewise.
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* Makefile.in: Regenerate.
Andreas Schwab
2009-08-23 11:31:09 UTC
Permalink
Post by Ralf Wildenhues
* Makefile.in: Regenerate.
* aclocal.m4
* config.in: Likewise.
* configure: Likewise.
This has broken the .l.c and .y.c rules. Once the targets are generated
they are never updated again even if out of date.

Andreas.
--
Andreas Schwab, ***@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Gerald Pfeifer
2009-08-15 11:34:15 UTC
Permalink
Post by Ralf Wildenhues
Apart from that, I would need somebody to update the autotools tarballs
at ftp://sources.redhat.com/pub/binutils for me, at the time I am
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz
ftp://ftp.gnu.org/gnu/automake/automake-1.11.tar.gz
Looking at the dates of the original tarballs (which look like snapshots
needed at that point in time), I am wondering why we shouldn't just refer
to the vanilla upstream versions and downloads?

Gerald
Ralf Wildenhues
2009-08-16 09:49:22 UTC
Permalink
Post by Gerald Pfeifer
Post by Ralf Wildenhues
Apart from that, I would need somebody to update the autotools tarballs
at ftp://sources.redhat.com/pub/binutils for me, at the time I am
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz
ftp://ftp.gnu.org/gnu/automake/automake-1.11.tar.gz
Looking at the dates of the original tarballs (which look like snapshots
needed at that point in time), I am wondering why we shouldn't just refer
to the vanilla upstream versions and downloads?
FWIW, I wouldn't mind such a move at all, esp. considering that these
snapshots are pretty outdated. However, the pub/binutils location can
serve as as useful indirection in case we do need to rely on unreleased
versions again.

At least the gettext version used throughout GCC/src is pretty old,
and/or not consistent anyway. I don't know if there is need to update
it, though.

Below is a proposed patch that would let src refer to upstream versions,
to be squashed in with [PATCH 5/N] of this series (tested make info html
pdf).

Thanks,
Ralf

ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* README-maintainer-mode: Point directly to upstream locations
for autoconf, automake, libtool, gettext, instead of copies on
sources.redhat.com. Document required versions.

gdb/doc/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* gdbint.texinfo (Releasing GDB): Point to
README-maintainer-mode file for required autoconf version.

diff --git a/README-maintainer-mode b/README-maintainer-mode
index 0115a1e..a350974 100644
--- a/README-maintainer-mode
+++ b/README-maintainer-mode
@@ -3,7 +3,18 @@

Note that if you configure with --enable-maintainer-mode, you will need
special versions of automake, autoconf, libtool and gettext. You will
-find the sources for these in ftp://sources.redhat.com/pub/binutils.
+find the sources for these in the respective upstream directories:
+
+ ftp://ftp.gnu.org/gnu/autoconf
+ ftp://ftp.gnu.org/gnu/automake
+ ftp://ftp.gnu.org/gnu/libtool
+ ftp://ftp.gnu.org/gnu/gettext
+
+The required versions of the tools for this tree are
+ autoconf 2.64
+ automake 1.11
+ libtool 2.2.6
+ gettext 0.14.5

Note - "make distclean" does not work with maintainer mode enabled.
The Makefiles in the some of the po/ subdirectories depend upon the
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index b1c0452..6d0a226 100644
--- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo
@@ -7078,10 +7078,9 @@ Notes:
@itemize @bullet
@item
Check the @code{autoconf} version carefully. You want to be using the
-version taken from the @file{binutils} snapshot directory, which can be
-found at @uref{ftp://sourceware.org/pub/binutils/}. It is very
-unlikely that a system installed version of @code{autoconf} (e.g.,
-@file{/usr/bin/autoconf}) is correct.
+version documented in the toplevel @file{README-maintainer-mode} file.
+It is very unlikely that a system installed version of @code{autoconf}
+(e.g., @file{/usr/bin/autoconf}) is correct.
@end itemize

@subsubheading Check out the relevant modules:
Eli Zaretskii
2009-08-16 17:04:32 UTC
Permalink
Date: Sun, 16 Aug 2009 11:49:22 +0200
Below is a proposed patch that would let src refer to upstream versions,
to be squashed in with [PATCH 5/N] of this series (tested make info html
pdf).
Thanks,
Ralf
* README-maintainer-mode: Point directly to upstream locations
for autoconf, automake, libtool, gettext, instead of copies on
sources.redhat.com. Document required versions.
* gdbint.texinfo (Releasing GDB): Point to
README-maintainer-mode file for required autoconf version.
Fine with me (although I'd prefer you fixed the confusing ``system
installed version'' thingy, if you can).

Thanks.
Ralf Wildenhues
2009-08-15 11:34:51 UTC
Permalink
Post by Ralf Wildenhues
- remove {all,install}-{html,pdf} and {dataroot,doc,pdf,html}dir stuff
not needed any more, update documentation bits throughout the tree.
This patch fixes fallout from rules that are not needed any more with
newer autotools.

OK for the GCC, binutils, and gdb parts?

Tom, could you submit the classpath change upstream, please?

Does http://gcc.gnu.org/install/prerequisites.html get rebuilt
automatically?

Thanks,
Ralf

GCC:
ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure.ac: Remove --with-datarootdir, --with-docdir,
--with-pdfdir, --with-htmldir switches.
* configure: Regenerate.

gcc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure.ac: Remove --with-datarootdir, --with-docdir,
--with-htmldir switches. No need to call AC_SUBST for
datarootdir, docdir, htmldir any more.
* configure: Regenerate.
* doc/install.texi (Configuration): Document --datarootdir,
--docdir, --htmldir, --pdfdir; update documentation for
--infodir, --mandir.
(Prerequisites): Bump Autoconf version to 2.64, Automake to
1.11, M4 to 1.4.6.

libgfortran/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.

libjava/classpath/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* doc/cp-hacking.texinfo (Needed Tools and Libraries): Bump
Autoconf version to 2.64, Automake to 1.11, M4 to 1.4.6.

libjava/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* HACKING: Use aclocal-1.11 and autoconf-2.64 in example.

libstdc++-v3/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* doc/xml/manual/build_hacking.xml: Use tools from Autoconf
2.64 and Automake 1.11 in examples; update link to Autoconf
manual page about quadrigraphs.

diff --git a/configure.ac b/configure.ac
index 22cd976..68ac6b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3106,32 +3106,6 @@ case ${enable_werror} in
esac
AC_SUBST(stage2_werror_flag)

-# Flags needed to enable html installing and building
-AC_ARG_WITH(datarootdir,
-[ --with-datarootdir use datarootdir as the data root directory.],
-[datarootdir="\${prefix}/${withval}"],
-[datarootdir="\${prefix}/share"])
-
-AC_ARG_WITH(docdir,
-[ --with-docdir install documentation in this directory.],
-[docdir="\${prefix}/${withval}"],
-[docdir="\${datarootdir}/doc"])
-
-AC_ARG_WITH(pdfdir,
-[ --with-pdfdir install pdf in this directory.],
-[pdfdir="\${prefix}/${withval}"],
-[pdfdir="\${docdir}"])
-
-AC_ARG_WITH(htmldir,
-[ --with-htmldir install html in this directory.],
-[htmldir="\${prefix}/${withval}"],
-[htmldir="\${docdir}"])
-
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(pdfdir)
-AC_SUBST(htmldir)
-
# Specify what files to not compare during bootstrap.

compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 267de5a..6f33612 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -819,11 +819,6 @@ AC_ARG_ENABLE(languages,
esac],
[enable_languages=c])

-# Used by documentation targets
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(htmldir)
-
AC_ARG_WITH(multilib-list,
[ --with-multilib-list Select multilibs (SH only)],
:,
@@ -4003,24 +3998,6 @@ else
fi)
AC_SUBST(slibdir)

-AC_ARG_WITH(datarootdir,
-[ --with-datarootdir=DIR Use DIR as the data root [[PREFIX/share]]],
-datarootdir="\${prefix}/$with_datarootdir",
-datarootdir='$(prefix)/share')
-AC_SUBST(datarootdir)
-
-AC_ARG_WITH(docdir,
-[ --with-docdir=DIR Install documentation in DIR [[DATAROOTDIR]]],
-docdir="\${prefix}/$with_docdir",
-docdir='$(datarootdir)')
-AC_SUBST(docdir)
-
-AC_ARG_WITH(htmldir,
-[ --with-htmldir=DIR html documentation in in DIR [[DOCDIR]]],
-htmldir="\${prefix}/$with_htmldir",
-htmldir='$(docdir)')
-AC_SUBST(htmldir)
-
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index a480dc5..b9043b2 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -714,18 +714,34 @@ The default is @file{@var{exec-prefix}/libexec}.
Specify the installation directory for the shared libgcc library. The
default is @file{@var{libdir}}.

+@item --datarootdir=@var{dirname}
+Specify the root of the directory tree for read-only architecture-independent
+data files referenced by ***@. The default is @file{@var{prefix}/share}.
+
@item --infodir=@var{dirname}
Specify the installation directory for documentation in info format.
-The default is @file{@var{prefix}/info}.
+The default is @file{@var{datarootdir}/info}.

@item --datadir=@var{dirname}
Specify the installation directory for some architecture-independent
-data files referenced by ***@. The default is @file{@var{prefix}/share}.
+data files referenced by ***@. The default is @file{@var{datarootdir}}.
+
+@item --docdir=@var{dirname}
+Specify the installation directory for documentation files (other
+than Info) for ***@. The default is @file{@var{datarootdir}/doc}.
+
+@item --htmldir=@var{dirname}
+Specify the installation directory for HTML documentation files.
+The default is @file{@var{docdir}}.
+
+@item --pdfdir=@var{dirname}
+Specify the installation directory for PDF documentation files.
+The default is @file{@var{docdir}}.

@item --mandir=@var{dirname}
Specify the installation directory for manual pages. The default is
-@file{@var{prefix}/man}. (Note that the manual pages are only extracts from
-the full GCC manuals, which are provided in Texinfo format. The manpages
+@file{@var{datarootdir}/man}. (Note that the manual pages are only extracts
+from the full GCC manuals, which are provided in Texinfo format. The manpages
are derived by an automatic conversion process from parts of the full
manual.)

diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am
index 83634ff..d1fa32c 100644
--- a/libgfortran/Makefile.am
+++ b/libgfortran/Makefile.am
@@ -719,11 +719,6 @@ $(gfor_misc_specifics) \
intrinsics/dprod_r8.f90 \
intrinsics/f2c_specifics.F90

-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
-
# Turn on vectorization and loop unrolling for matmul.
$(patsubst %.c,%.lo,$(notdir $(i_matmul_c))): AM_CFLAGS += -ftree-vectorize -funroll-loops
# Logical matmul doesn't vectorize.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index b9043b2..e3afa15 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -360,13 +360,13 @@ together with ***@.

@heading Tools/packages necessary for modifying GCC
@table @asis
-@item autoconf version 2.59
-@itemx GNU m4 version 1.4 (or later)
+@item autoconf version 2.64
+@itemx GNU m4 version 1.4.6 (or later)

Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@:
to regenerate @file{configure} and @file{config.in} files.

-@item automake version 1.9.6
+@item automake version 1.11

Necessary when modifying a @file{Makefile.am} file to regenerate its
associated @file{Makefile.in}.
@@ -377,8 +377,8 @@ file. Specifically this applies to the @file{gcc}, @file{intl},
as any of their subdirectories.

For directories that use automake, GCC requires the latest release in
-the 1.9.x series, which is currently 1.9.6. When regenerating a directory
-to a newer version, please update all the directories using an older 1.9.x
+the 1.11 series, which is currently 1.11. When regenerating a directory
+to a newer version, please update all the directories using an older 1.11
to the latest released version.

@item gettext version 0.14.5 (or later)
diff --git a/libjava/HACKING b/libjava/HACKING
index ba85b69..fa38027 100644
--- a/libjava/HACKING
+++ b/libjava/HACKING
@@ -41,9 +41,9 @@ this can be done using these commands:
cd libjava &&
rm -f aclocal.m4 &&
ACFLAGS=$(grep "^ACLOCAL_AMFLAGS" Makefile.in | sed -e "s/ACLOCAL_AMFLAGS[ \t ]*=//") &&
- aclocal-1.9 $ACFLAGS &&
+ aclocal-1.11 $ACFLAGS &&
rm -f configure &&
- autoconf-2.59 &&
+ autoconf-2.64 &&
rm -fr autom4te.cache

See the GCC documentation which auto* versions to use.
@@ -91,7 +91,7 @@ To import a new release:
in the classpath/ChangeLog.gcj file.
(Don't forget to svn resolved files.)
- Use auto* to create configure, Makefile.in, etc
- Make sure you have Automake 1.9.6 installed. Exactly that version!
+ Make sure you have Automake 1.11 installed. Exactly that version!
You have to make sure to use the gcc libtool.m4 and gcc lt* scripts
cd .../classpath
cp ../../lt* .
diff --git a/libjava/classpath/doc/cp-hacking.texinfo b/libjava/classpath/doc/cp-hacking.texinfo
index 829b0e4..a424b56 100644
--- a/libjava/classpath/doc/cp-hacking.texinfo
+++ b/libjava/classpath/doc/cp-hacking.texinfo
@@ -351,13 +351,13 @@ Eclipse Compiler for Java 3.1+
@item
CVS 1.11+
@item
-automake 1.9+
+automake 1.11+
@item
-autoconf 2.59+
+autoconf 2.64+
@item
libtool 1.5+
@item
-GNU m4 1.4
+GNU m4 1.4.6
@item
texinfo 4.2+
@end itemize
diff --git a/libstdc++-v3/doc/xml/manual/build_hacking.xml b/libstdc++-v3/doc/xml/manual/build_hacking.xml
index e5ca0cb..bfec860 100644
--- a/libstdc++-v3/doc/xml/manual/build_hacking.xml
+++ b/libstdc++-v3/doc/xml/manual/build_hacking.xml
@@ -58,8 +58,8 @@
Regenerate all generated files by using the command sequence
<code>"autoreconf"</code> at the top level of the libstdc++ source
directory. The following will also work, but is much more complex:
- <code>"aclocal-1.7 &amp;&amp; autoconf-2.59 &amp;&amp;
- autoheader-2.59 &amp;&amp; automake-1.7"</code> The version
+ <code>"aclocal-1.11 &amp;&amp; autoconf-2.64 &amp;&amp;
+ autoheader-2.64 &amp;&amp; automake-1.11"</code> The version
numbers may be absent entirely or otherwise vary depending on
<ulink url="http://gcc.gnu.org/install/prerequisites.html">the
current requirements</ulink> and your vendor's choice of
@@ -305,7 +305,7 @@
If you're wondering what that line noise in the last example was,
that's how you embed autoconf special characters in output text.
They're called <ulink
- url="http://ftp.gnu.org/pub/old-gnu/Manuals/autoconf-2.57/html_mono/autoconf.html#SEC95"><emphasis>quadrigraphs</emphasis></ulink>
+ url="http://www.gnu.org/software/autoconf/manual/autoconf.html#Quadrigraphs"><emphasis>quadrigraphs</emphasis></ulink>
and you should use them whenever necessary.
</para>
</listitem>




src:

ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure.ac: Do not substitute datarootdir, htmldir,
pdfdir, docdir. Do not process --with-datarootdir,
--with-htmldir, --with-pdfdir, --with-docdir.
* configure: Regenerate.

gdb/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure.ac: Do not substitute datarootdir, htmldir,
pdfdir, docdir. Do not process --with-datarootdir,
--with-htmldir, --with-pdfdir, --with-docdir.
* configure: Regenerate.
* CONTRIBUTE: Bump documented Autoconf version.

gdb/doc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* configure.ac: Do not substitute datarootdir, htmldir,
pdfdir, docdir. Do not process --with-datarootdir,
--with-htmldir, --with-pdfdir, --with-docdir.
* configure: Regenerate.

gprof/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (pdf__strip_dir, install-pdf, install-pdf-am)
(install-pdf-recursive, html__strip_dir, install-html)
(install-html-am, install-html-recursive): Remove.
* Makefile.in: Regenerate.

opcodes/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-pdf, install-html): Remove.
* Makefile.in: Regenerate.

gas/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-pdf, install-pdf-recursive, install-html)
(install-html-recursive): Remove.
* Makefile.in: Regenerate.
* doc/Makefile.am (pdf__strip_dir, install-pdf, install-pdf-am)
(html__strip_dir, install-html, install-html-am): Remove.
* doc/Makefile.in: Regenerate.

ld/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (pdf__strip_dir, install-pdf, install-pdf-am)
(install-pdf-recursive, html__strip_dir, install-html)
(install-html-am, install-html-recursive): Remove.
* Makefile.in: Regenerate.

binutils/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-pdf, install-pdf-recursive, install-html)
(install-html-recursive): Remove.
* Makefile.in: Regenerate.
* doc/Makefile.am (pdf__strip_dir, install-pdf, install-pdf-am)
(html__strip_dir, install-html, install-html-am): Remove.
* doc/Makefile.in: Regenerate.

bfd/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (datarootdir, docdir, htmldor, pdfdir)
(install-pdf, install-pdf-recursive, install-html)
(install-html-recursive): Remove.
* Makefile.in: Regenerate.

bfd/doc/ChangeLog:
2009-08-15 Ralf Wildenhues <***@gmx.de>

* Makefile.am (pdf__strip_dir, install-pdf, install-pdf-am)
(html__strip_dir, install-html, install-html-am): Remove.
* Makefile.in: Regenerate.

diff --git a/configure.ac b/configure.ac
index a594222..1e76600 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2946,30 +2946,4 @@ case ${enable_werror} in
esac
AC_SUBST(stage2_werror_flag)

-# Flags needed to enable html installing and building
-AC_ARG_WITH(datarootdir,
-[ --with-datarootdir use datarootdir as the data root directory.],
-[datarootdir="\${prefix}/${withval}"],
-[datarootdir="\${prefix}/share"])
-
-AC_ARG_WITH(docdir,
-[ --with-docdir install documentation in this directory.],
-[docdir="\${prefix}/${withval}"],
-[docdir="\${datarootdir}/doc"])
-
-AC_ARG_WITH(pdfdir,
-[ --with-pdfdir install pdf in this directory.],
-[pdfdir="\${prefix}/${withval}"],
-[pdfdir="\${docdir}"])
-
-AC_ARG_WITH(htmldir,
-[ --with-htmldir install html in this directory.],
-[htmldir="\${prefix}/${withval}"],
-[htmldir="\${docdir}"])
-
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(pdfdir)
-AC_SUBST(htmldir)
-
AC_OUTPUT(Makefile)
diff --git a/gdb/CONTRIBUTE b/gdb/CONTRIBUTE
index 75b6ddf..8ed656b 100644
--- a/gdb/CONTRIBUTE
+++ b/gdb/CONTRIBUTE
@@ -121,7 +121,7 @@ o If ``gdb/configure.ac'' is modified then you don't
``configure''.

The maintainer will re-generate those files
- using autoconf (2.59 as of 2005-01-07).
+ using autoconf (2.64 as of 2009-08-15).


o If ``gdb/gdbarch.sh'' is modified, you don't
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 9dc736c..aa0bf75 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1917,32 +1917,6 @@ dnl At the moment, we just assume it's UTF-8.
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
[Define to be a string naming the default host character set.])

-# Flags needed to enable html installing and building
-AC_ARG_WITH(datarootdir,
-AC_HELP_STRING([--with-datarootdir], [use datarootdir as the data root directory.]),
-[datarootdir="\${prefix}/${withval}"],
-[datarootdir="\${prefix}/share"])
-
-AC_ARG_WITH(docdir,
-AC_HELP_STRING([--with-docdir], [install documentation in this directory.]),
-[docdir="\${prefix}/${withval}"],
-[docdir="\${datarootdir}/doc"])
-
-AC_ARG_WITH(pdfdir,
-AC_HELP_STRING([--with-pdfdir], [install pdf in this directory.]),
-[pdfdir="\${prefix}/${withval}"],
-[pdfdir="\${docdir}"])
-
-AC_ARG_WITH(htmldir,
-AC_HELP_STRING([--with-htmldir], [install html in this directory.]),
-[htmldir="\${prefix}/${withval}"],
-[htmldir="\${docdir}"])
-
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(htmldir)
-AC_SUBST(pdfdir)
-
AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile,
[
case x$CONFIG_HEADERS in
diff --git a/gdb/doc/configure.ac b/gdb/doc/configure.ac
index b7a2b48..3baea74 100644
--- a/gdb/doc/configure.ac
+++ b/gdb/doc/configure.ac
@@ -4,32 +4,6 @@ sinclude(../../config/acx.m4)
AC_PROG_INSTALL
AC_PROG_LN_S

-# Flags needed to enable html installing and building
-AC_ARG_WITH(datarootdir,
-AC_HELP_STRING([--with-datarootdir], [use datarootdir as the data root directory.]),
-[datarootdir="\${prefix}/${withval}"],
-[datarootdir="\${prefix}/share"])
-
-AC_ARG_WITH(docdir,
-AC_HELP_STRING([--with-docdir], [install documentation in this directory.]),
-[docdir="\${prefix}/${withval}"],
-[docdir="\${datarootdir}/doc"])
-
-AC_ARG_WITH(pdfdir,
-AC_HELP_STRING([--with-pdfdir], [install pdf in this directory.]),
-[pdfdir="\${prefix}/${withval}"],
-[pdfdir="\${docdir}"])
-
-AC_ARG_WITH(htmldir,
-AC_HELP_STRING([--with-htmldir], [install html in this directory.]),
-[htmldir="\${prefix}/${withval}"],
-[htmldir="\${docdir}"])
-
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(htmldir)
-AC_SUBST(pdfdir)
-
ACX_PKGVERSION([GDB])
ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
AC_OUTPUT(Makefile)
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 73ff953..5d2ed37 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -16,11 +16,6 @@ bfddocdir = doc
bfdlibdir = @bfdlibdir@
bfdincludedir = @bfdincludedir@

-datarootdir = @datarootdir@
-docdir = @docdir@
-htmldir = @htmldir@
-pdfdir = @pdfdir@
-
bfdlib_LTLIBRARIES = libbfd.la

WARN_CFLAGS = @WARN_CFLAGS@
@@ -719,64 +714,6 @@ po/BLD-POTFILES.in: @MAINT@ Makefile $(BLD_POTFILES)

all diststuff: info

-.PHONY: install-pdf install-pdf-am install-pdf-recursive
-
-install-pdf: install-pdf-recursive
-
-install-pdf-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-.PHONY: install-html install-html-am install-html-recursive
-
-install-html: install-html-recursive
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
# Various kinds of .o files to put in libbfd.a:
# BFD_BACKENDS Routines the configured targets need.
# BFD_MACHINES Architecture-specific routines the configured targets need.
diff --git a/bfd/doc/Makefile.am b/bfd/doc/Makefile.am
index d5b3fba..2a10fc0 100644
--- a/bfd/doc/Makefile.am
+++ b/bfd/doc/Makefile.am
@@ -296,41 +296,6 @@ MAINTAINERCLEANFILES = $(DOCFILES)
# cygnus option.
install: install-info

-pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-pdf: install-pdf-am
-
-install-pdf-am: $(PDFS)
- @$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(pdf__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
-
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
MAINTAINERCLEANFILES += bfd.info

# Automake 1.9 will only build info files in the objdir if they are
diff --git a/binutils/Makefile.am b/binutils/Makefile.am
index 636140d..2d38715 100644
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -116,64 +116,6 @@ OPCODES = ../opcodes/libopcodes.la

LIBIBERTY = ../libiberty/libiberty.a

-.PHONY: install-pdf install-pdf-am install-pdf-recursive
-
-install-pdf: install-pdf-recursive
-
-install-pdf-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-.PHONY: install-html install-html-am install-html-recursive
-
-install-html: install-html-recursive
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
po/POTFILES.in: @MAINT@ Makefile
for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
diff --git a/binutils/doc/Makefile.am b/binutils/doc/Makefile.am
index 71aa192..bdd470d 100644
--- a/binutils/doc/Makefile.am
+++ b/binutils/doc/Makefile.am
@@ -161,41 +161,6 @@ $(DEMANGLER_NAME).1: cxxfilt.man Makefile
# cygnus option.
install-data-local: install-info

-pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-pdf: install-pdf-am
-
-install-pdf-am: $(PDFS)
- @$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(pdf__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
-
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
MAINTAINERCLEANFILES = binutils.info

# Automake 1.9 will only build info files in the objdir if they are
diff --git a/gas/Makefile.am b/gas/Makefile.am
index 5501325..8f4ede5 100644
--- a/gas/Makefile.am
+++ b/gas/Makefile.am
@@ -725,64 +725,6 @@ MOSTLYCLEANFILES = $(STAGESTUFF) core \

CLEANFILES = dep.sed DEPTC DEPTCA DEPOBJ DEPOBJA DEP2 DEP2A DEP1 DEPA DEP DEPDIR

-.PHONY: install-pdf install-pdf-am install-pdf-recursive
-
-install-pdf: install-pdf-recursive
-
-install-pdf-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-.PHONY: install-html install-html-am install-html-recursive
-
-install-html: install-html-recursive
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
.PHONY: install-exec-local install-data-local
.PHONY: install-exec-bindir install-exec-tooldir

diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am
index 6a02ccf..3042650 100644
--- a/gas/doc/Makefile.am
+++ b/gas/doc/Makefile.am
@@ -73,41 +73,6 @@ CPU_DOCS = \
# cygnus option.
install-data-local: install-info

-pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-pdf: install-pdf-am
-
-install-pdf-am: $(PDFS)
- @$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(pdf__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
-
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
# This one isn't ready for prime time yet. Not even a little bit.

noinst_TEXINFOS = internals.texi
diff --git a/gprof/Makefile.am b/gprof/Makefile.am
index 12d794b..6c73106 100644
--- a/gprof/Makefile.am
+++ b/gprof/Makefile.am
@@ -83,95 +83,6 @@ gprof.1: $(srcdir)/gprof.texi config.texi
(rm -f $@.T$$$$ && exit 1)
rm -f gprof.pod

-.PHONY: install-pdf install-pdf-am install-pdf-recursive
-
-pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-pdf: install-pdf-recursive install-pdf-am
-
-install-pdf-am: $(PDFS)
- @$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(pdf__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
-
-install-pdf-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-.PHONY: install-html install-html-am install-html-recursive
-
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-recursive install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
# We want install to imply install-info as per GNU standards, despite the
# cygnus option.
install-data-local: install-info
diff --git a/ld/Makefile.am b/ld/Makefile.am
index b4e291c..2a2b519 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -1872,95 +1872,6 @@ mostlyclean-local:
-rm -rf tmpdir
CLEANFILES = dep.sed DEP DEPA DEP1 DEP2 spu_ovl.s spu_ovl.o spu_icache.s spu_icache.o

-.PHONY: install-pdf install-pdf-am install-pdf-recursive
-
-pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-pdf: install-pdf-recursive install-pdf-am
-
-install-pdf-am: $(PDFS)
- @$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(pdf__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
-
-install-pdf-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-.PHONY: install-html install-html-am install-html-recursive
-
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-recursive install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
.PHONY: install-exec-local install-data-local

install-exec-local: ld-new$(EXEEXT)
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index d2a76c7..4f30b42 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -16,12 +16,6 @@ AM_CFLAGS = $(WARN_CFLAGS)
bfdlibdir = @bfdlibdir@
bfdincludedir = @bfdincludedir@

-.PHONY: install-pdf
-install-pdf:
-
-.PHONY: install-html
-install-html:
-
bfdlib_LTLIBRARIES = libopcodes.la

# This is where bfd.h lives.
Paolo Bonzini
2009-08-15 16:58:24 UTC
Permalink
The GCC bits are fine by me. It will likely take a few days until we
finish discussing the details of override.m4 and testing the src/
directories, and this will give enough time to the binutils and gdb
folks to look at the patch & scream.

Thanks again!

Paolo
Joseph S. Myers
2009-08-15 15:31:44 UTC
Permalink
Post by Ralf Wildenhues
- Update automake-provided helper scripts in the toplevel,
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only),
- some minor fixes in sim, gold, gdb (src only)
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
world with 2.64 and Automake 1.11,
- remove {all,install}-{html,pdf} and {dataroot,doc,pdf,html}dir stuff
not needed any more, update documentation bits throughout the tree.
I note that the patch series doesn't include resyncing shared build system
files that are out of sync between gcc and src. Any chance this could be
done either before or after the above?

Makefile.def
Makefile.tpl
Makefile.in
config/ChangeLog
config/lead-dot.m4
config/mh-cygwin
config/mh-ppc-aix
config/tls.m4
config/unwind_ipinfo.m4
config/warnings.m4
configure.ac
configure
include/ChangeLog-9103

(The whole config directory should be exactly identical in both places,
including the ChangeLog. Each repository has accumulated changes that
need merging to the other repository. I believe such resyncing can be
considered preapproved since approval for a change to a shared file in one
repository is sufficient for it to go in the other as well.)
Post by Ralf Wildenhues
The texinfo changes have been tested with 'make info pdf html'.
There should be a "make install-pdf install-html" test (for both gcc and
GDB/Binutils) as well.
Post by Ralf Wildenhues
To make it easy for whoever volunteers for the --with-build-sysroot
test, I would like to ask for this to be done after I commit the patch
set. OK?
Once the changes are in, CodeSourcery's next arm-none-linux-gnueabi
automatic test run will cover such a configuration.
--
Joseph S. Myers
***@codesourcery.com
Ralf Wildenhues
2009-08-15 16:06:54 UTC
Permalink
Post by Joseph S. Myers
Post by Ralf Wildenhues
- Update automake-provided helper scripts in the toplevel,
- LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11 (GCC only),
- some minor fixes in sim, gold, gdb (src only)
- Bump Autoconf version to 2.64 in override.m4, and regenerate the
world with 2.64 and Automake 1.11,
- remove {all,install}-{html,pdf} and {dataroot,doc,pdf,html}dir stuff
not needed any more, update documentation bits throughout the tree.
I note that the patch series doesn't include resyncing shared build system
files that are out of sync between gcc and src. Any chance this could be
done either before or after the above?
Yes, I can look into it. Sigh.
Post by Joseph S. Myers
(The whole config directory should be exactly identical in both places,
including the ChangeLog. Each repository has accumulated changes that
need merging to the other repository. I believe such resyncing can be
considered preapproved since approval for a change to a shared file in one
repository is sufficient for it to go in the other as well.)
OK thanks, that is quite helpful.
Post by Joseph S. Myers
Post by Ralf Wildenhues
The texinfo changes have been tested with 'make info pdf html'.
There should be a "make install-pdf install-html" test (for both gcc and
GDB/Binutils) as well.
I think I tried that when changing the relevant rules, but I will test
again before committing.
Post by Joseph S. Myers
Post by Ralf Wildenhues
To make it easy for whoever volunteers for the --with-build-sysroot
test, I would like to ask for this to be done after I commit the patch
set. OK?
Once the changes are in, CodeSourcery's next arm-none-linux-gnueabi
automatic test run will cover such a configuration.
Great!

Thanks,
Ralf
Ralf Wildenhues
2009-08-16 11:48:38 UTC
Permalink
Post by Ralf Wildenhues
Post by Joseph S. Myers
Post by Ralf Wildenhues
The texinfo changes have been tested with 'make info pdf html'.
There should be a "make install-pdf install-html" test (for both gcc and
GDB/Binutils) as well.
I think I tried that when changing the relevant rules, but I will test
again before committing.
Gah, I did overlook libgomp, which indeed had a bug, and I didn't search
for unneeded Makefile.am bits that can just be deleted now. Incremental
patch below, against GCC; intended to be squashed into [PATCH 5/N].
binutils/gdb seems ok.

I noted that files are installed a bit inconsistently:

GCC:

${docdir}/libgomp.pdf
${docdir}/classpath/cp-tools.pdf
${docdir}/gcc/gnat-style.pdf
${docdir}/gcc/gccinstall.pdf
${docdir}/gcc/cpp.pdf
${docdir}/gcc/cppinternals.pdf
${docdir}/gcc/gccint.pdf
${docdir}/gcc/gnat_ugn.pdf
${docdir}/gcc/gcc.pdf
${docdir}/gcc/gfortran.pdf
${docdir}/gcc/gnat_rm.pdf
${docdir}/gcj.pdf
${docdir}/libiberty.pdf

and HTML files as this, or below these directories:

${docdir}/gccint/
${docdir}/cpp/
${docdir}/classpath/cp-tools.html/
${docdir}/gccinstall/
${docdir}/libgomp.html/
${docdir}/libiberty.html
${docdir}/gcc/
${docdir}/cppinternals/

Here, the location for at least gcj.pdf seems inconsistent
(but that issue existed before my patch series already).

For src:

${docdir}/bfd.pdf
${docdir}/gdbint.pdf
${docdir}/binutils.pdf
${docdir}/gprof.pdf
${docdir}/ld.pdf
${docdir}/etc/standards.pdf
${docdir}/etc/configure.pdf
${docdir}/as.pdf
${docdir}/stabs.pdf
${docdir}/refcard.pdf
${docdir}/annotate.pdf
${docdir}/gdb.pdf
${docdir}/libiberty.pdf

${docdir}/binutils.html/
${docdir}/ld.html/
${docdir}/standards.html
${docdir}/bfd.html/
${docdir}/annotate/
${docdir}/gdb/
${docdir}/as.html/
${docdir}/gdbint/
${docdir}/libiberty.html
${docdir}/configure.html
${docdir}/stabs/
${docdir}/gprof.html/

At least the location of GDB's obsolete annotations and its refcard seem
weird, maybe also stabs (they all have rather generic names for not
being placed in a subdirectory), as does the fact that some directories
are named with ".html" in their name but not all. etc/*.pdf seems
weird, too, and that the html equivalents are in a different directory.
All of these issues are independent of my patch series (the install tree
looks exactly the same before and after).

Comments as to the desired structure?

Thanks,
Ralf

libjava/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

libssp/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

libstdc++-v3/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

boehm-gc/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

libmudflap/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

zlib/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf, html): Remove.
* Makefile.in: Regenerate.

libffi/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

libgomp/ChangeLog:
2009-08-16 Ralf Wildenhues <***@gmx.de>

* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.

diff --git a/boehm-gc/Makefile.am b/boehm-gc/Makefile.am
index 83005b2..8438911 100644
--- a/boehm-gc/Makefile.am
+++ b/boehm-gc/Makefile.am
@@ -115,9 +115,3 @@ AM_MAKEFLAGS = \
CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host

MAKEOVERRIDES=
-
-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
-
diff --git a/libffi/Makefile.am b/libffi/Makefile.am
index 9705c8f..74d45d4 100644
--- a/libffi/Makefile.am
+++ b/libffi/Makefile.am
@@ -169,11 +169,6 @@ libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LT
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
AM_CCASFLAGS = $(AM_CPPFLAGS)

-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
-
# Multilib support. Automake should provide these on its own.
all-recursive: all-multi
install-recursive: install-multi
diff --git a/libgomp/Makefile.am b/libgomp/Makefile.am
index 6cecc2a..83942f7 100644
--- a/libgomp/Makefile.am
+++ b/libgomp/Makefile.am
@@ -56,20 +56,6 @@ env.lo: libgomp_f.h
env.o: libgomp_f.h


-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-
-install-pdf: $(PDFS)
- @$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
-
# Automake Documentation:
# If your package has Texinfo files in many directories, you can use the
# variable TEXINFO_TEX to tell Automake where to find the canonical
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 7c7e0db..d4b45d7 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -1326,11 +1326,6 @@ CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host

MAKEOVERRIDES=

-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
-
# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
diff --git a/libmudflap/Makefile.am b/libmudflap/Makefile.am
index d326d88..29091de 100644
--- a/libmudflap/Makefile.am
+++ b/libmudflap/Makefile.am
@@ -94,10 +94,5 @@ AM_MAKEFLAGS = \

MAKEOVERRIDES=

-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
-
## ################################################################

diff --git a/libssp/Makefile.am b/libssp/Makefile.am
index 6a8b4c8..7a350f4 100644
--- a/libssp/Makefile.am
+++ b/libssp/Makefile.am
@@ -90,10 +90,5 @@ AM_MAKEFLAGS = \

MAKEOVERRIDES=

-# No install-html or install-pdf support in automake yet
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
-
## ################################################################

diff --git a/libstdc++-v3/Makefile.am b/libstdc++-v3/Makefile.am
index 1f8d315..c7a22aa 100644
--- a/libstdc++-v3/Makefile.am
+++ b/libstdc++-v3/Makefile.am
@@ -89,7 +89,3 @@ AM_MAKEFLAGS = \

# Subdir rules rely on $(FLAGS_TO_PASS)
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
-
-.PHONY: install-html install-pdf
-install-html:
-install-pdf:
diff --git a/zlib/Makefile.am b/zlib/Makefile.am
index 749a13c..55418e4 100644
--- a/zlib/Makefile.am
+++ b/zlib/Makefile.am
@@ -58,12 +58,3 @@ AM_MAKEFLAGS = \
"PICFLAG=$(PICFLAG)" \
"RANLIB=$(RANLIB)" \
"DESTDIR=$(DESTDIR)"
-
-# No html support.
-# No install-html or install-pdf support in automake yet
-.PHONY: html install-html install-pdf
-
-html:
-install-html:
-install-pdf:
-
Paolo Bonzini
2009-08-17 10:34:05 UTC
Permalink
Patch okay.
Tom Tromey
2009-08-17 16:16:30 UTC
Permalink
Ralf> ${docdir}/gcc/gcc.pdf
[...]
Ralf> ${docdir}/gcj.pdf
[...]

Ralf> Here, the location for at least gcj.pdf seems inconsistent
Ralf> (but that issue existed before my patch series already).

If you want to fix the gcj.pdf install directory, consider your patch
pre-approved.

Tom
Ralf Wildenhues
2009-08-17 20:22:47 UTC
Permalink
Post by Tom Tromey
Ralf> ${docdir}/gcc/gcc.pdf
[...]
Ralf> ${docdir}/gcj.pdf
[...]
Ralf> Here, the location for at least gcj.pdf seems inconsistent
Ralf> (but that issue existed before my patch series already).
If you want to fix the gcj.pdf install directory, consider your patch
pre-approved.
Thanks! Applied the following after testing.

Cheers,
Ralf

gcc/java/ChangeLog:
2009-08-17 Ralf Wildenhues <***@gmx.de>

* Make-lang.in (java.install-pdf): Install gcj.pdf in
$(pdfdir)/gcc, alongside the other manuals.

diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in
index 094e5e1..ff330fd 100644
--- a/gcc/java/Make-lang.in
+++ b/gcc/java/Make-lang.in
@@ -197,12 +197,12 @@ java.install-info: $(DESTDIR)$(infodir)/gcj.info

java.install-pdf: $(JAVA_PDFFILES)
@$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)"
+ test -z "$(pdfdir)" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc"
@list='$(JAVA_PDFFILES)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(pdf__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
+ echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \
+ $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \
done

#
Ralf Wildenhues
2009-08-25 19:02:35 UTC
Permalink
Hello Joseph,
Post by Joseph S. Myers
Post by Ralf Wildenhues
To make it easy for whoever volunteers for the --with-build-sysroot
test, I would like to ask for this to be done after I commit the patch
set. OK?
Once the changes are in, CodeSourcery's next arm-none-linux-gnueabi
automatic test run will cover such a configuration.
Has such a run completed already since Sunday?

Thanks,
Ralf
Joseph S. Myers
2009-08-25 19:26:03 UTC
Permalink
Post by Ralf Wildenhues
Hello Joseph,
Post by Joseph S. Myers
Post by Ralf Wildenhues
To make it easy for whoever volunteers for the --with-build-sysroot
test, I would like to ask for this to be done after I commit the patch
set. OK?
Once the changes are in, CodeSourcery's next arm-none-linux-gnueabi
automatic test run will cover such a configuration.
Has such a run completed already since Sunday?
No.
--
Joseph S. Myers
***@codesourcery.com
Paolo Bonzini
2009-08-15 18:04:29 UTC
Permalink
Post by Ralf Wildenhues
- fix the (new with Autoconf 2.64) warnings from configure about unknown
--enable/--with switches. I would appreciate some input on whether
this functionality should just be turned off with
AC_DISABLE_OPTION_CHECKING, or we should add some logic to the
toplevel configure script to be more intelligent about it.
For toplevel, add AC_DISABLE_OPTION_CHECKING definitely (at the same
time as the regeneration).

For other directories, we can decide later on a case-by-case basis.

Just for fun, if you have a diffstat of the world-regeneration, it would
be nice to see it.

Paolo
Ralf Wildenhues
2009-08-15 23:06:55 UTC
Permalink
Post by Paolo Bonzini
Just for fun, if you have a diffstat of the world-regeneration, it would
be nice to see it.
GCC:

boehm-gc/Makefile.in | 308 +-
boehm-gc/aclocal.m4 | 478 +-
boehm-gc/configure |11978 +--
boehm-gc/include/Makefile.in | 188 +-
boehm-gc/include/gc_config.h.in | 3 +
configure | 9549 +-
config/override.m4 | 2 +-
fixincludes/aclocal.m4 | 4 +-
fixincludes/configure | 7960 +-
gcc/aclocal.m4 | 20 +-
gcc/config.in | 83 +-
gcc/configure |19768 ++---
gnattools/configure | 4109 +-
intl/aclocal.m4 | 5 +-
intl/configure | 7855 +-
libada/configure | 4865 +-
libcpp/aclocal.m4 | 5 +-
libcpp/config.in | 13 +-
libcpp/configure |10947 +--
libdecnumber/aclocal.m4 | 4 +-
libdecnumber/configure |10165 +--
libffi/Makefile.in | 595 +-
libffi/aclocal.m4 | 483 +-
libffi/configure |11950 +--
libffi/fficonfig.h.in | 26 +-
libffi/include/Makefile.in | 272 +-
libffi/man/Makefile.in | 302 +-
libffi/testsuite/Makefile.in | 201 +-
libgcc/configure | 5055 +-
libgfortran/Makefile.in | 3247 +-
libgfortran/aclocal.m4 | 463 +-
libgfortran/config.h.in | 21 +-
libgfortran/configure |28127 ++----
libgomp/Makefile.in | 610 +-
libgomp/aclocal.m4 | 463 +-
libgomp/config.h.in | 13 +-
libgomp/configure |17029 +--
libgomp/testsuite/Makefile.in | 155 +-
libiberty/config.in | 22 +-
libiberty/configure |11204 +--
libjava/Makefile.in | 1142 +-
libjava/aclocal.m4 | 478 +-
libjava/classpath/Makefile.in | 379 +-
libjava/classpath/aclocal.m4 | 518 +-
libjava/classpath/configure |23059 ++---
libjava/classpath/doc/Makefile.in | 575 +-
libjava/classpath/doc/api/Makefile.in | 200 +-
libjava/classpath/examples/Makefile.in | 243 +-
libjava/classpath/external/Makefile.in | 329 +-
libjava/classpath/external/jsr166/Makefile.in | 201 +-
.../classpath/external/relaxngDatatype/Makefile.in | 201 +-
libjava/classpath/external/sax/Makefile.in | 201 +-
libjava/classpath/external/w3c_dom/Makefile.in | 201 +-
libjava/classpath/include/Makefile.in | 204 +-
libjava/classpath/include/config.h.in | 19 +-
libjava/classpath/lib/Makefile.in | 199 +-
libjava/classpath/native/Makefile.in | 329 +-
libjava/classpath/native/fdlibm/Makefile.in | 264 +-
libjava/classpath/native/jawt/Makefile.in | 313 +-
libjava/classpath/native/jni/Makefile.in | 331 +-
libjava/classpath/native/jni/classpath/Makefile.in | 264 +-
.../classpath/native/jni/gconf-peer/Makefile.in | 313 +-
.../native/jni/gstreamer-peer/Makefile.in | 313 +-
libjava/classpath/native/jni/gtk-peer/Makefile.in | 313 +-
libjava/classpath/native/jni/java-io/Makefile.in | 310 +-
libjava/classpath/native/jni/java-lang/Makefile.in | 314 +-
libjava/classpath/native/jni/java-math/Makefile.in | 313 +-
libjava/classpath/native/jni/java-net/Makefile.in | 310 +-
libjava/classpath/native/jni/java-nio/Makefile.in | 310 +-
libjava/classpath/native/jni/java-util/Makefile.in | 310 +-
libjava/classpath/native/jni/midi-alsa/Makefile.in | 313 +-
libjava/classpath/native/jni/midi-dssi/Makefile.in | 313 +-
.../classpath/native/jni/native-lib/Makefile.in | 264 +-
libjava/classpath/native/jni/qt-peer/Makefile.in | 278 +-
libjava/classpath/native/jni/xmlj/Makefile.in | 310 +-
libjava/classpath/native/plugin/Makefile.in | 320 +-
libjava/classpath/resource/Makefile.in | 265 +-
libjava/classpath/scripts/Makefile.in | 200 +-
libjava/classpath/tools/Makefile.in | 616 +-
libjava/configure |19848 ++---
libjava/gcj/Makefile.in | 311 +-
libjava/include/Makefile.in | 286 +-
libjava/include/config.h.in | 32 +-
libjava/libltdl/Makefile.in | 341 +-
libjava/libltdl/aclocal.m4 | 463 +-
libjava/libltdl/config-h.in | 3 +
libjava/libltdl/configure |13247 +--
libjava/testsuite/Makefile.in | 210 +-
libmudflap/Makefile.in | 486 +-
libmudflap/aclocal.m4 | 463 +-
libmudflap/config.h.in | 3 +
libmudflap/configure |10984 +--
libmudflap/testsuite/Makefile.in | 151 +-
libobjc/aclocal.m4 | 81 +-
libobjc/config.h.in | 3 +
libobjc/configure | 8706 +-
libssp/Makefile.in | 361 +-
libssp/aclocal.m4 | 463 +-
libssp/config.h.in | 3 +
libssp/configure | 8954 +-
libstdc++-v3/Makefile.in | 335 +-
libstdc++-v3/aclocal.m4 | 291 +-
libstdc++-v3/config.h.in | 13 +-
libstdc++-v3/configure |110803 +++-----------------
libstdc++-v3/doc/Makefile.in | 166 +-
libstdc++-v3/include/Makefile.in | 167 +-
libstdc++-v3/libsupc++/Makefile.in | 260 +-
libstdc++-v3/po/Makefile.in | 166 +-
libstdc++-v3/python/Makefile.in | 216 +-
libstdc++-v3/src/Makefile.in | 262 +-
libstdc++-v3/testsuite/Makefile.in | 166 +-
zlib/Makefile.in | 217 +-
zlib/aclocal.m4 | 463 +-
zlib/configure | 8951 +-
113 files changed, 135429 insertions(+), 256326 deletions(-)

src:

bfd/Makefile.in | 307 +-
bfd/aclocal.m4 | 468 +-
bfd/config.in | 60 +-
bfd/configure |19335 ++++++++------------------
bfd/doc/Makefile.in | 289 +-
binutils/Makefile.in | 416 +-
binutils/aclocal.m4 | 468 +-
binutils/config.in | 54 +-
binutils/configure |13087 +++++++-----------
binutils/doc/Makefile.in | 375 +-
config/override.m4 | 2 +-
configure | 9309 +++++++------
etc/configure | 2923 +++--
gas/Makefile.in | 321 +-
gas/aclocal.m4 | 464 +-
gas/config.in | 71 +-
gas/configure |12204 ++++++++---------
gas/doc/Makefile.in | 362 +-
gdb/aclocal.m4 | 483 +-
gdb/config.in | 44 +-
gdb/configure |20691 +++++++++-------------------
gdb/doc/configure | 2999 +++--
gdb/gdbserver/aclocal.m4 | 4 +-
gdb/gdbserver/config.in | 38 +-
gdb/gdbserver/configure | 7031 +++++-----
gdb/gnulib/Makefile.in | 189 +-
gdb/testsuite/configure | 5172 ++++----
gdb/testsuite/gdb.hp/configure | 3206 +++--
gdb/testsuite/gdb.hp/gdb.aCC/configure | 3018 +++--
gdb/testsuite/gdb.hp/gdb.base-hp/configure | 3018 +++--
gdb/testsuite/gdb.hp/gdb.compat/configure | 3018 +++--
gdb/testsuite/gdb.hp/gdb.defects/configure | 3018 +++--
gdb/testsuite/gdb.hp/gdb.objdbg/configure | 3206 +++--
gdb/testsuite/gdb.stabs/configure | 3018 +++--
gold/Makefile.in | 485 +-
gold/aclocal.m4 | 463 +-
gold/config.in | 59 +-
gold/configure |11148 +++++++---------
gold/testsuite/Makefile.in | 624 +-
gprof/Makefile.in | 591 +-
gprof/aclocal.m4 | 464 +-
gprof/configure |10379 +++++++--------
gprof/gconfig.in | 46 +-
intl/aclocal.m4 | 5 +-
intl/config.h.in | 9 +-
intl/configure | 7855 +++++------
ld/Makefile.in | 577 +-
ld/aclocal.m4 | 464 +-
ld/config.in | 54 +-
ld/configure |12425 ++++++++----------
libdecnumber/aclocal.m4 | 4 +-
libdecnumber/config.in | 32 +-
libdecnumber/configure |10165 +++++---------
libiberty/config.in | 22 +-
libiberty/configure |11204 ++++++---------
opcodes/Makefile.in | 249 +-
opcodes/aclocal.m4 | 464 +-
opcodes/config.in | 34 +-
opcodes/configure |10413 +++++++--------
readline/configure | 9776 +++++--------
readline/examples/rlfe/configure | 5977 ++++----
sim/arm/config.in | 3 +
sim/arm/configure | 7088 +++++------
sim/avr/config.in | 3 +
sim/avr/configure | 6937 +++++-----
sim/common/config.in | 3 +
sim/common/configure | 8507 +++++-------
sim/configure | 5248 ++++----
sim/cr16/config.in | 3 +
sim/cr16/configure | 7146 +++++------
sim/cris/config.in | 20 +-
sim/cris/configure | 7612 +++++------
sim/d10v/config.in | 3 +
sim/d10v/configure | 7146 +++++------
sim/erc32/config.in | 3 +
sim/erc32/configure | 7225 +++++------
sim/frv/config.in | 20 +-
sim/frv/configure | 7404 +++++------
sim/h8300/config.in | 3 +
sim/h8300/configure | 7087 +++++------
sim/igen/config.in | 3 +
sim/igen/configure | 5893 ++++----
sim/iq2000/config.in | 20 +-
sim/iq2000/configure | 7398 +++++------
sim/lm32/config.in | 3 +
sim/lm32/configure | 3901 ++----
sim/m32c/config.in | 3 +
sim/m32c/configure | 6937 +++++-----
sim/m32r/config.in | 20 +-
sim/m32r/configure | 7402 +++++------
sim/m68hc11/config.in | 20 +-
sim/m68hc11/configure | 7551 +++++------
sim/mcore/config.in | 3 +
sim/mcore/configure | 7083 +++++------
sim/mips/config.in | 20 +-
sim/mips/configure | 8008 +++++------
sim/mn10300/config.in | 20 +-
sim/mn10300/configure | 7710 +++++------
sim/moxie/config.in | 12 +
sim/moxie/configure | 6997 +++++-----
sim/ppc/config.in | 36 +-
sim/ppc/configure | 9475 ++++++-------
sim/sh/config.in | 3 +
sim/sh/configure | 7083 +++++------
sim/sh64/config.in | 20 +-
sim/sh64/configure | 7398 +++++------
sim/testsuite/configure | 3220 +++--
sim/testsuite/d10v-elf/configure | 3018 +++--
sim/testsuite/frv-elf/configure | 3018 +++--
sim/testsuite/m32r-elf/configure | 3018 +++--
sim/testsuite/mips64el-elf/configure | 3018 +++--
sim/v850/config.in | 20 +-
sim/v850/configure | 7688 +++++------
113 files changed, 183039 insertions(+), 217097 deletions(-)

Why, by the way, do some of the trees in src contains so endlessly many
configure scripts? Can't they be consolidated?

Cheers,
Ralf
Tom Tromey
2009-08-17 16:14:11 UTC
Permalink
Ralf> Tom, could you submit the classpath change upstream, please?

Done.

Ralf> libjava/ChangeLog:
Ralf> 2009-08-15 Ralf Wildenhues <***@gmx.de>
Ralf> * HACKING: Use aclocal-1.11 and autoconf-2.64 in example.

This is ok.

Ralf> gdb/ChangeLog:
Ralf> gdb/doc/ChangeLog:

These are ok as well.

thanks,
Tom
Ralf Wildenhues
2009-08-23 07:28:15 UTC
Permalink
A few notes on this taken while applying the patch set, and a couple of
small fixups I made to them (they all seemed obvious to me, so I figured
pushing back the patch set and waiting for review would have been the
worse way to go).

- Toplevel mkinstalldirs and ylwrap were also updated from Automake
(containing only trivial changes).

- In libjava/Makefile.am, $(LIBTOOLFLAGS) was also added to the
CXXLINK, LIBLINK, and GCJLINK variables. (LIBTOOLFLAGS is a user
variable, so it is set nowhere in the GCC makefiles.) Also, in some
cases in libstdc++-v3, the patch posted in
http://gcc.gnu.org/ml/gcc-patches/2009-08/msg00804.html
erroneously added the variable after the --mode argument instead of
before; I fixed that now, as obvious patch.

- Confirmed that the [2/N] patch libjava breaks the build. That means,
r151013 fails due to libltdl being included twice; this is fixed in
the [3/N] patch aka. r151014.

- The regeneration of fixincludes/config.h.in adds
#ifndef USED_FOR_TARGET
around defines now, which comes from gcc/acinclude.m4. This doesn't
seem to be a problem, and would have happened too with a regeneration
of this file with autoheader 2.59, but I found it unobvious enough to
mention it here.

- In [3/N], 'AUTOMAKE_OPTIONS = foreign' was missing from the
gold/testsuite/Makefile.am file as well; I've added in the commit.
If you prefer to have it mentioned just once in gold, then we could
alos put it in configure.ac:AM_INIT_AUTOMAKE([foreign]) for
consistency.

- In [3/N], I did not regenerate files in gdb and sim on purpose, as
those changes would have caused a broken build with 2.59. The
regeneration with 2.64 in [4/N] fixes this.


During the process I noticed a few additional items that still need
fixing:

- sim/testsuite and below has configure scripts that do not include
override.m4 also need rebuild rules in Makefile.in files.

- Below gdb, some rebuild rules are still missing, too.

- Besides these trees:
cgen libgloss libgui newlib rda sid utils winsup

the following directories also contain configure scripts that need
updating (or eliminating):
gdb/gdbtk/plugins
gdb/gdbtk
gdb/testsuite/gdb.gdbtk
gdb/testsuite/gdb.cell

I'll work on these issues.

Cheers,
Ralf
Steve Ellcey
2009-08-28 21:30:50 UTC
Permalink
I think the move to autoconf 2.64 and automake 1.11 has broken
the libgomp build on HP-UX and maybe some other platforms (and
maybe some other libraries).


Here is what I see:

In libgomp's configure.tgt we set XLDFLAGS to '-lrt' for HP-UX.
In Makefile.am XLDFLAGS is rolled into AM_LDFLAGS and AM_LDFLAGS
is used in the LINK command.

In Makefile.in I see those same settings, but the LINK command is not used
when linking libgomp. Instead automake 1.11 has created libgomp_la_LINK
command to create libgomp and that command uses AM_LIBTOOLFLAGS and
libgomp_la_LDFLAGS but not AM_LDFLAGS. Neither AM_LIBTOOLFLAGS nor
libgomp_la_LDFLAGS include the XLDFLAGS setting from configure so I don't
get the -lrt flag that I need when building libgomp.

Does anyone know the right way to fix this for Automake 1.11?

Steve Ellcey
***@cup.hp.com
Dave Korn
2009-08-28 21:49:49 UTC
Permalink
Post by Steve Ellcey
I think the move to autoconf 2.64 and automake 1.11 has broken
the libgomp build on HP-UX and maybe some other platforms (and
maybe some other libraries).
In libgomp's configure.tgt we set XLDFLAGS to '-lrt' for HP-UX.
In Makefile.am XLDFLAGS is rolled into AM_LDFLAGS and AM_LDFLAGS
is used in the LINK command.
In Makefile.in I see those same settings, but the LINK command is not used
when linking libgomp. Instead automake 1.11 has created libgomp_la_LINK
command to create libgomp and that command uses AM_LIBTOOLFLAGS and
libgomp_la_LDFLAGS but not AM_LDFLAGS. Neither AM_LIBTOOLFLAGS nor
libgomp_la_LDFLAGS include the XLDFLAGS setting from configure so I don't
get the -lrt flag that I need when building libgomp.
Does anyone know the right way to fix this for Automake 1.11?
This looks like the same problem I discovered earlier today:

http://gcc.gnu.org/ml/gcc-patches/2009-08/msg01535.html

Ralf's on it:

http://gcc.gnu.org/ml/gcc-patches/2009-08/msg01554.html

cheers,
DaveK
Continue reading on narkive:
Loading...