[1/2] Bump to autoconf 2.69 and automake 1.15.1

Message ID 20180615004309.29913-1-simon.marchi@polymtl.ca
State New
Headers show
Series
  • [1/2] Bump to autoconf 2.69 and automake 1.15.1
Related show

Commit Message

Simon Marchi June 15, 2018, 12:43 a.m.
From: Simon Marchi <simon.marchi@ericsson.com>


When trying to run the update-gnulib.sh script in gdb, I get this:

Error: Wrong automake version (Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^      =:+{}]+)}/ at /opt/automake/1.11.1/bin/automake line 4113.), we need 1.11.1.
Aborting.

Apparently, it's an issue with a regex in automake that triggers a
warning starting with Perl 5.22.  It has been fixed in automake 1.15.1.
So I think it's a good excuse to bump the versions of autoconf and
automake used in the gnulib import.  And to avoid requiring multiple
builds of autoconf/automake, it was suggested that we bump the required
version of those tools for all binutils-gdb.

For autoconf, the 2.69 version is universally available, so it's an easy
choice.  For automake, different distros and distro versions have
different automake versions.  But 1.15.1 seems to be the most readily
available as a package.  In any case, it's easy to build it from source.

This patch only includes the manually edited file.  The changes to
generated files are included in the following patch.  I have included
the generated changes in the ChangeLog entries below, and would amend
them just before pushing.

To help with testing, I pushed the changes to the
users/simark/autotools-bump on sourceware's git.

I hit a few categories of problems that required some changes.  They are
described below along with the chosen solutions.

Problem 1:

  configure.ac:17: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more info, see:
  configure.ac:17: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation

Solution 1:

  Adjust the code based on the example at that URL.

Problem 2 (in zlib/):

  Makefile.am: error: required file './INSTALL' not found
  Makefile.am:   'automake --add-missing' can install 'INSTALL'
  Makefile.am: error: required file './NEWS' not found
  Makefile.am: error: required file './AUTHORS' not found
  Makefile.am: error: required file './COPYING' not found
  Makefile.am:   'automake --add-missing' can install 'COPYING'

Solution 2:

  Add the foreign option to AUTOMAKE_OPTIONS.

Problem 3:

  doc/Makefile.am:20: error: support for Cygnus-style trees has been removed

Solution 3:

  Remove the cygnus options.

Problem 4:

  Makefile.am:656: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')

Solution 4:

  Rename "INCLUDES = " to "AM_CPPFLAGS += " (because AM_CPPFLAGS is
  already defined earlier).

Problem 5:

  doc/Makefile.am:71: warning: suffix '.texinfo' for Texinfo files is discouraged; use '.texi' instead
  doc/Makefile.am: warning: Oops!
  doc/Makefile.am:     It appears this file (or files included by it) are triggering
  doc/Makefile.am:     an undocumented, soon-to-be-removed automake hack.
  doc/Makefile.am:     Future automake versions will no longer place in the builddir
  doc/Makefile.am:     (rather than in the srcdir) the generated '.info' files that
  doc/Makefile.am:     appear to be cleaned, by e.g. being listed in CLEANFILES or
  doc/Makefile.am:     DISTCLEANFILES.
  doc/Makefile.am:     If you want your '.info' files to be placed in the builddir
  doc/Makefile.am:     rather than in the srcdir, you have to use the shiny new
  doc/Makefile.am:     'info-in-builddir' automake option.

Solution 5:

  Rename .texinfo files to .texi.

Problem 6:

  doc/Makefile.am: warning: Oops!
  doc/Makefile.am:     It appears this file (or files included by it) are triggering
  doc/Makefile.am:     an undocumented, soon-to-be-removed automake hack.
  doc/Makefile.am:     Future automake versions will no longer place in the builddir
  doc/Makefile.am:     (rather than in the srcdir) the generated '.info' files that
  doc/Makefile.am:     appear to be cleaned, by e.g. being listed in CLEANFILES or
  doc/Makefile.am:     DISTCLEANFILES.
  doc/Makefile.am:     If you want your '.info' files to be placed in the builddir
  doc/Makefile.am:     rather than in the srcdir, you have to use the shiny new
  doc/Makefile.am:     'info-in-builddir' automake option.

Solution 6:

  Remove the hack at the bottom of doc/Makefile.am and use
  the info-in-builddir automake option.

Problem 7:

  doc/Makefile.am:35: error: required file '../texinfo.tex' not found
  doc/Makefile.am:35:   'automake --add-missing' can install 'texinfo.tex'

Solution 7:

  Use the no-texinfo.tex automake option.  We also have one in
  texinfo/texinfo.tex, not sure if we should point to that, or move it
  (or a newer version of it added with automake --add-missing) to
  top-level.

Problem 8:

  Makefile.am:131: warning: source file 'config/tc-aarch64.c' is in a subdirectory,
  Makefile.am:131: but option 'subdir-objects' is disabled
  automake: warning: possible forward-incompatibility.
  automake: At least a source file is in a subdirectory, but the 'subdir-objects'
  automake: automake option hasn't been enabled.  For now, the corresponding output
  automake: object file(s) will be placed in the top-level directory.  However,
  automake: this behaviour will change in future Automake versions: they will
  automake: unconditionally cause object files to be placed in the same subdirectory
  automake: of the corresponding sources.
  automake: You are advised to start using 'subdir-objects' option throughout your
  automake: project, to avoid future incompatibilities.

Solution 8:

  Use subdir-objects, that means adjusting references to some .o that will now
  be in config/.

Problem 9:

  configure.ac:375: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
  ../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
  ../../lib/autoconf/general.m4:2601: _AC_COMPILE_IFELSE is expanded from...
  ../../lib/autoconf/general.m4:2617: AC_COMPILE_IFELSE is expanded from...
  ../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
  ../../lib/autoconf/general.m4:2042: AC_CACHE_VAL is expanded from...
  ../../lib/autoconf/general.m4:2063: AC_CACHE_CHECK is expanded from...
  configure.ac:375: the top level

Solution 9:

  Use AC_LANG_SOURCE, or use proper quoting.

ChangeLog:

	* libtool.m4: Use AC_LANG_SOURCE.
	* ar-lib: New file.
	* configure: Re-generate.
	* configure.ac: Re-generate.
	* test-driver: New file.

bfd/ChangeLog:

	* Makefile.am (INCLUDES): Rename to ...
	(AM_CPPFLAGS): ... this.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* config.in: Re-generate.
	* configure: Re-generate.
	* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, add
	info-in-builddir no-texinfo.tex.
	(info_TEXINFOS): Rename bfd.texinfo to bfd.texi.
	* doc/bfd.texinfo: Rename to ...
	* doc/bfd.texi: ... this.
	* doc/Makefile.in: Re-generate.

binutils/ChangeLog:

	* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, add
	info-in-builddir no-texinfo.tex.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* config.in: Re-generate.
	* configure: Re-generate.
	* doc/Makefile.in: Re-generate.

config/ChangeLog:

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

etc/ChangeLog:

	* configure: Re-generate.

gas/ChangeLog:

	* Makefile.am (AUTOMAKE_OPTIONS): Add subdir-objects.
	* configure.ac (TARG_CPU_O, OBJ_FORMAT_O, ATOF_TARG_O, emfiles,
	extra_objects): Add config/ prefix.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* config.in: Re-generate.
	* configure: Re-generate.
	* doc/as.texinfo: Rename to...
	* doc/as.texi: ... this.
	* doc/Makefile.am: Rename as.texinfo to as.texi throughout.
	Remove DISTCLEANFILES hack.
	(AUTOMAKE_OPTIONS): Remove cygnus, add no-texinfo.tex and
	info-in-builddir.
	* doc/Makefile.in: Re-generate.

gdb/ChangeLog:

	* common/common-defs.h (PACKAGE_NAME, PACKAGE_VERSION,
	PACKAGE_STRING, PACKAGE_TARNAME): Undefine.
	* configure.ac: Add missing quoting.
	* configure: Re-generate.
	* gnulib/configure.ac: Modernize usage of
	AC_INIT/AM_INIT_AUTOMAKE.  Bump AC_PREREQ to 2.69.
	* gnulib/update-gnulib.sh (AUTOCONF_VERSION): Bump to 2.69.
	(AUTOMAKE_VERSION): Bump to 1.15.1.
	* gnulib/aclocal.m4: Re-generate.
	* gnulib/config.in: Re-generate.
	* gnulib/configure: Re-generate.
	* gnulib/import/Makefile.in: Re-generate.

gdb/gdbserver/ChangeLog:

	* configure: Re-generate.

gdb/testsuite/ChangeLog:

	* configure: Re-generate.

gold/ChangeLog:

	* configure.ac: Add missing quoting and usage of AC_LANG_SOURCE.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* configure: Re-generate.
	* testsuite/Makefile.in: Re-generate.

gprof/ChangeLog:

	* Makefile.am: Remove DISTCLEANFILES hack.
	(AUTOMAKE_OPTIONS): Add info-in-builddir.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* configure: Re-generate.
	* gconfig.in: Re-generate.

intl/ChangeLog:

	* configure: Re-generate.

ld/ChangeLog:

	* Makefile.am: Remove DISTCLEANFILES hack, rename ld.texinfo to
	ld.texi, ldint.texinfo to ldint.texi throughout.
	(AUTOMAKE_OPTIONS): Add info-in-builddir.
	* README: Rename ld.texinfo to ld.texi, ldint.texinfo to
	ldint.texi throughout.
	* gen-doc.texi: Likewise.
	* h8-doc.texi: Likewise.
	* ld.texinfo: Rename to ...
	* ld.texi: ... this.
	* ldint.texinfo: Rename to ...
	* ldint.texi: ... this.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* config.in: Re-generate.
	* configure: Re-generate.

libdecnumber/ChangeLog:

	* configure: Re-generate.

libiberty/ChangeLog:

	* configure: Re-generate.

opcodes/ChangeLog:

	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* configure: Re-generate.

readline/ChangeLog.gdb:

	* configure: Re-generate.

sim/ChangeLog:

	* configure: Re-generate.
	* aarch64/configure: Re-generate.
	* arm/configure: Re-generate.
	* avr/configure: Re-generate.
	* bfin/configure: Re-generate.
	* common/configure: Re-generate.
	* cr16/configure: Re-generate.
	* cris/configure: Re-generate.
	* d10v/configure: Re-generate.
	* erc32/configure: Re-generate.
	* frv/configure: Re-generate.
	* ft32/configure: Re-generate.
	* h8300/configure: Re-generate.
	* igen/configure: Re-generate.
	* iq2000/configure: Re-generate.
	* lm32/configure: Re-generate.
	* m32c/configure: Re-generate.
	* m32r/configure: Re-generate.
	* m68hc11/configure: Re-generate.
	* mcore/configure: Re-generate.
	* microblaze/configure: Re-generate.
	* mips/configure: Re-generate.
	* mn10300/configure: Re-generate.
	* moxie/configure: Re-generate.
	* msp430/configure: Re-generate.
	* or1k/configure: Re-generate.
	* ppc/configure: Re-generate.
	* rl78/configure: Re-generate.
	* rx/configure: Re-generate.
	* sh64/configure: Re-generate.
	* sh/configure: Re-generate.
	* testsuite/configure: Re-generate.
	* testsuite/d10v-elf/configure: Re-generate.
	* testsuite/frv-elf/configure: Re-generate.
	* testsuite/m32r-elf/configure: Re-generate.
	* testsuite/mips64el-elf/configure: Re-generate.
	* v850/configure: Re-generate.

zlib/ChangeLog.bin-gdb:

	* Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, add foreign.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* configure: Re-generate.
---
 bfd/Makefile.am                   |  2 +-
 bfd/doc/Makefile.am               | 13 +++-------
 bfd/doc/{bfd.texinfo => bfd.texi} |  0
 binutils/doc/Makefile.am          |  2 +-
 config/override.m4                |  2 +-
 gas/Makefile.am                   |  8 +++----
 gas/configure.ac                  |  4 ++--
 gas/doc/Makefile.am               | 17 ++++---------
 gas/doc/{as.texinfo => as.texi}   |  0
 gdb/common/common-defs.h          | 11 +++++++++
 gdb/configure.ac                  | 20 ++++++++--------
 gdb/gdbserver/configure.ac        |  2 +-
 gdb/gnulib/configure.ac           |  7 +++---
 gdb/gnulib/update-gnulib.sh       |  4 ++--
 gold/configure.ac                 | 40 +++++++++++++++----------------
 gprof/Makefile.am                 |  9 +------
 ld/Makefile.am                    | 19 +++++----------
 ld/README                         |  6 ++---
 ld/gen-doc.texi                   |  2 +-
 ld/h8-doc.texi                    |  2 +-
 ld/{ld.texinfo => ld.texi}        |  0
 ld/{ldint.texinfo => ldint.texi}  |  0
 libtool.m4                        |  4 ++--
 zlib/Makefile.am                  |  2 +-
 zlib/configure.ac                 |  6 ++---
 25 files changed, 83 insertions(+), 99 deletions(-)
 rename bfd/doc/{bfd.texinfo => bfd.texi} (100%)
 rename gas/doc/{as.texinfo => as.texi} (100%)
 rename ld/{ld.texinfo => ld.texi} (100%)
 rename ld/{ldint.texinfo => ldint.texi} (100%)

-- 
2.17.1

Comments

Simon Marchi June 15, 2018, 2:59 a.m. | #1
On 2018-06-14 20:46, Simon Marchi wrote:
> Here is the generated files portion of the patch.  It is 7.7M big, so

> I am sending it compressed (see attached file).  Again, the code is 

> also

> available on the users/simark/autotools-bump branch on sourceware's 

> git.

> 

> Thanks,

> 

> Simon


Hmmm for some reason the zlib/configure file is incomplete in this 
patch.  I re-generated it and this time it looks fine.  I have updated 
the git branch.

Simon
Simon Marchi June 15, 2018, 2:38 p.m. | #2
On 2018-06-15 10:22 AM, Nick Clifton wrote:
> Hi Simon,

> 

>> And to avoid requiring multiple

>> builds of autoconf/automake, it was suggested that we bump the required

>> version of those tools for all binutils-gdb.

> 

> Thanks very much for taking on this task.


Thanks for looking at it!

> You do not appear to have updated the AC_PREREQ macro statements in the

> various */configure.ac files.  Is this intentional ?


No, it's an oversight.  I have changed them locally.

> Also the config/override.m4 file still contains a hard coded requirement 

> for autoconf 2.64 exactly.


Are you talking about this?

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[)]))])])


If I understand correctly, this patched an Autoconf 2.64 issue?  So you are
suggesting that we can remove it now?

> The patch did not include renamed *.texinfo files, although that was

> simple enough to fix.


I have included some (bfd, ld) but might have forgotten others.  Can you
point me to the ones I have forgotten so I can fix it?

Thanks,

Simon
Nick Clifton June 15, 2018, 3:54 p.m. | #3
Hi Simon,

> Go here:

> 

> https://sourceware.org/ml/gdb-patches/2018-06/msg00385.html


Ah - I only applies the second part of the patch:

  https://sourceware.org/ml/gdb-patches/2018-06/msg00386.html

Oops!

Cheers
  Nick
Joseph Myers June 15, 2018, 5:29 p.m. | #4
Questions:

* Are all the shared files and directories fully in sync between the GCC 
and binutils-gdb trees before this patch?  Shared directories include 
config, intl, parts of include, libdecnumber, libiberty, zlib, for 
example.

* Where you are changing shared files and directories, do any changes to 
*non-generated* files other than config/override.m4 depend on the autoconf 
/ automake updates, or would such changes work equally well in the GCC 
tree even in the absence of a version update there?

If proposing to change only one tree at a time I think it's important to 
take care to minimise the extra costs introduced for people synchronizing 
changes between the two trees while the versions are out of sync.  To me, 
that indicates that the shared files and directories should be fully in 
sync before any changes making them deliberately out of sync are applied, 
and that changes to non-generated files other than config/override.m4 
should go in both places if they work in both places, so that the 
differences immediately after the change is applied are only the required 
ones (i.e. config/override.m4 and the generated files), so that anyone 
then merging a subsequent change in future knows they expect to get back 
to exactly that set of differences and no more.

(Shared files in the newlib-cygwin tree have been out of sync for a lot 
longer.  So, while I think that tree also ought to have shared files in 
sync, with changes being applied to all three trees (I don't know if 
newlib-cygwin has any changes not present in the other trees), I don't 
think it's immediately relevant to changes in the binutils-gdb tree right 
now.)

-- 
Joseph S. Myers
joseph@codesourcery.com
Alan Modra June 16, 2018, 1:39 a.m. | #5
On Fri, Jun 15, 2018 at 03:22:10PM +0100, Nick Clifton wrote:
> Otherwise so far, my testing has been showing no signs of any real problems.


The patch looks good to me too.  I did see some generated file
differences, most of which disappeared when I compiled my own
autoconf-2.69 rather than using the Ubuntu 18.04 version (which
apparently has some patches from autoconf-2.70 applied).

I applied both of your posted patches, ran autoconf in zlib since
you'd said the posted patch was broken, touched all the files in the
first patch, then built binutils-gdb with --enable-maintainer-mode.
Apart from .pot files, these were the files that differed:

bfd/doc/Makefile.in
binutils/doc/Makefile.in
gas/doc/Makefile.in
gdb/aclocal.m4
gdb/config.in
gdb/configure
gdb/gnulib/aclocal.m4
gdb/gnulib/configure
libdecnumber/aclocal.m4
zlib/configure

-- 
Alan Modra
Australia Development Lab, IBM
Simon Marchi June 16, 2018, 3:55 a.m. | #6
On 2018-06-15 09:39 PM, Alan Modra wrote:
> On Fri, Jun 15, 2018 at 03:22:10PM +0100, Nick Clifton wrote:

>> Otherwise so far, my testing has been showing no signs of any real problems.

> 

> The patch looks good to me too.  I did see some generated file

> differences, most of which disappeared when I compiled my own

> autoconf-2.69 rather than using the Ubuntu 18.04 version (which

> apparently has some patches from autoconf-2.70 applied).

> 

> I applied both of your posted patches, ran autoconf in zlib since

> you'd said the posted patch was broken, touched all the files in the

> first patch, then built binutils-gdb with --enable-maintainer-mode.

> Apart from .pot files, these were the files that differed:

> 

> bfd/doc/Makefile.in

> binutils/doc/Makefile.in

> gas/doc/Makefile.in

> gdb/aclocal.m4

> gdb/config.in

> gdb/configure

> gdb/gnulib/aclocal.m4

> gdb/gnulib/configure

> libdecnumber/aclocal.m4

> zlib/configure



1. About aclocal.m4's, there are a bunch more generated from other versions of
automake than 1.15.1:

$ grep -rn "generated automatically by aclocal" | grep -v 1.15.1
gdb/aclocal.m4:1:# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
gdb/gdbserver/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
intl/aclocal.m4:1:# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
sim/arm/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/common/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/d10v/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/erc32/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/h8300/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/m32r/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/mcore/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/mips/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/mn10300/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/sh/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/v850/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/cr16/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/cris/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/frv/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/iq2000/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/m32c/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/m68hc11/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/sh64/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/aarch64/aclocal.m4:1:# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
sim/avr/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/bfin/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/ft32/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/lm32/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/microblaze/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/moxie/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/msp430/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/rl78/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/rx/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
sim/or1k/aclocal.m4:1:# generated automatically by aclocal 1.15 -*- Autoconf -*-
libdecnumber/aclocal.m4:1:# generated automatically by aclocal 1.11.1 -*- Autoconf -*-

Should I make sure to re-generate all of them?  I was running "autoconf" only, but
it seems like running "autoreconf" will also update aclocal.m4 and config.in if needed.


2. How do I update those */doc/Makefile.in?  When I try to run automake in these
directories, I get:

  automake: error: 'configure.ac' is required

and indeed, there is no configure.ac in the doc directories.

Simon
Andreas Schwab June 16, 2018, 7:16 a.m. | #7
On Jun 15 2018, Simon Marchi <simon.marchi@polymtl.ca> wrote:

> 2. How do I update those */doc/Makefile.in?  When I try to run automake in these

> directories, I get:

>

>   automake: error: 'configure.ac' is required

>

> and indeed, there is no configure.ac in the doc directories.


You always need to run automake (and the other autotools) in the
directory containing the configure.ac file (top_srcdir in automake
speak).  If you configure with --enable-maintainer-mode the needed rules
are run automatically.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."
Alan Modra June 18, 2018, 2:46 a.m. | #8
On Fri, Jun 15, 2018 at 11:55:40PM -0400, Simon Marchi wrote:
> On 2018-06-15 09:39 PM, Alan Modra wrote:

> > On Fri, Jun 15, 2018 at 03:22:10PM +0100, Nick Clifton wrote:

> >> Otherwise so far, my testing has been showing no signs of any real problems.

> > 

> > The patch looks good to me too.  I did see some generated file

> > differences, most of which disappeared when I compiled my own

> > autoconf-2.69 rather than using the Ubuntu 18.04 version (which

> > apparently has some patches from autoconf-2.70 applied).

> > 

> > I applied both of your posted patches, ran autoconf in zlib since

> > you'd said the posted patch was broken, touched all the files in the

> > first patch, then built binutils-gdb with --enable-maintainer-mode.

> > Apart from .pot files, these were the files that differed:

> > 

> > bfd/doc/Makefile.in

> > binutils/doc/Makefile.in

> > gas/doc/Makefile.in

> > gdb/aclocal.m4

> > gdb/config.in

> > gdb/configure

> > gdb/gnulib/aclocal.m4

> > gdb/gnulib/configure

> > libdecnumber/aclocal.m4

> > zlib/configure

> 

> 

> 1. About aclocal.m4's, there are a bunch more generated from other versions of

> automake than 1.15.1:

[snip]

> Should I make sure to re-generate all of them?


Yes, I think that should be done whenever updating the version of
autotools.

I also just noticed these 1.11 version specifiers that probably should
be updated to 1.15:
./bfd/Makefile.am:AUTOMAKE_OPTIONS = 1.11 no-dist foreign
./gas/Makefile.am:AUTOMAKE_OPTIONS = 1.11 dejagnu foreign no-dist subdir-objects
./gprof/Makefile.am:AUTOMAKE_OPTIONS = 1.11 foreign no-dist no-texinfo.tex info-in-builddir
./opcodes/Makefile.am:AUTOMAKE_OPTIONS = 1.11 foreign no-dist


> 2. How do I update those */doc/Makefile.in?


Andreas has already given the canonical answer, but something like the
following should work too.

cd ~/src/binutils-gdb/bfd && automake-1.15 --foreign doc/Makefile
cd ~/src/binutils-gdb/binutils && automake-1.15 --foreign doc/Makefile
cd ~/src/binutils-gdb/gas && automake-1.15 --foreign doc/Makefile

-- 
Alan Modra
Australia Development Lab, IBM
Simon Marchi June 18, 2018, 3:05 a.m. | #9
On 2018-06-17 10:46 PM, Alan Modra wrote:
>> 1. About aclocal.m4's, there are a bunch more generated from other versions of

>> automake than 1.15.1:

> [snip]

> 

>> Should I make sure to re-generate all of them?

> 

> Yes, I think that should be done whenever updating the version of

> autotools.


Noted.

> I also just noticed these 1.11 version specifiers that probably should

> be updated to 1.15:

> ./bfd/Makefile.am:AUTOMAKE_OPTIONS = 1.11 no-dist foreign

> ./gas/Makefile.am:AUTOMAKE_OPTIONS = 1.11 dejagnu foreign no-dist subdir-objects

> ./gprof/Makefile.am:AUTOMAKE_OPTIONS = 1.11 foreign no-dist no-texinfo.tex info-in-builddir

> ./opcodes/Makefile.am:AUTOMAKE_OPTIONS = 1.11 foreign no-dist


I simply removed them in my latest version of the patch.  I think it is only useful
to put it if you let the user of you Makefile.am use the version of automake they want,
but want to put a lower bound on the version of automake that will work.  In our case we
force people to use a specific version anyway...

>> 2. How do I update those */doc/Makefile.in?

> 

> Andreas has already given the canonical answer, but something like the

> following should work too.

> 

> cd ~/src/binutils-gdb/bfd && automake-1.15 --foreign doc/Makefile

> cd ~/src/binutils-gdb/binutils && automake-1.15 --foreign doc/Makefile

> cd ~/src/binutils-gdb/gas && automake-1.15 --foreign doc/Makefile


Ok, thanks.  Maintainer mode does update them, but I was wondering how to
do it by hand.

I'll post a new version once the sync-with-gcc patches are merged.

Simon
Nick Clifton June 18, 2018, 9:42 a.m. | #10
Hi Simon,

> I'll post a new version once the sync-with-gcc patches are merged.


Great.  Those patches should now be approved.

Cheers
  Nick

PS.  As you probably realised I had only applied patch 2/2 of your
original patch set, and forgot to apply patch 1/2.  Doh!  I will
try to do better next time.
Joseph Myers June 18, 2018, 3:12 p.m. | #11
On Fri, 15 Jun 2018, Simon Marchi wrote:

> - include: I'll need more precise guidance on how to sync


If a file in include/ is present in both trees (apart from ChangeLogs), it 
should also have the same contents.  However, each tree has some headers 
of its own in include/ and there's no need to copy such headers from one 
tree to the other.

-- 
Joseph S. Myers
joseph@codesourcery.com
Simon Marchi June 18, 2018, 3:32 p.m. | #12
On 2018-06-18 11:12 AM, Joseph Myers wrote:
> On Fri, 15 Jun 2018, Simon Marchi wrote:

> 

>> - include: I'll need more precise guidance on how to sync

> 

> If a file in include/ is present in both trees (apart from ChangeLogs), it 

> should also have the same contents.  However, each tree has some headers 

> of its own in include/ and there's no need to copy such headers from one 

> tree to the other.

> 


Ok, thanks.  I submitted a patch that does that:

https://sourceware.org/ml/binutils/2018-06/msg00223.html

Simon

Patch

diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 8374bbda2091..b4fa6d980947 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -657,7 +657,7 @@  BFD_MACHINES = @bfd_machines@
 TDEFAULTS = @tdefaults@
 HAVEVECS = @havevecs@
 
-INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \
+AM_CPPFLAGS += @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \
 	$(HAVEVECS) @INCINTL@
 
 # C source files that correspond to .o's.
diff --git a/bfd/doc/Makefile.am b/bfd/doc/Makefile.am
index 8e9d831bc9e6..0e8a75e65964 100644
--- a/bfd/doc/Makefile.am
+++ b/bfd/doc/Makefile.am
@@ -17,7 +17,7 @@ 
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = 1.9 cygnus
+AUTOMAKE_OPTIONS = 1.9 info-in-builddir no-texinfo.tex
 
 DOCFILES = aoutx.texi  archive.texi archures.texi \
 	bfdt.texi  cache.texi coffcode.texi \
@@ -68,7 +68,7 @@  SRCIPROT = $(srcdir)/../cache.c $(srcdir)/../libbfd.c \
 
 TEXIDIR = $(srcdir)/../../texinfo/fsf
 
-info_TEXINFOS = bfd.texinfo
+info_TEXINFOS = bfd.texi
 bfd_TEXINFOS = $(DOCFILES) bfdsumm.texi
 
 MKDOC = chew$(EXEEXT_FOR_BUILD)
@@ -116,7 +116,7 @@  archures.stamp: $(srcdir)/../archures.c $(srcdir)/doc.str $(MKDOC)
 	touch $@
 
 # We use bfdt.texi, rather than bfd.texi, to avoid conflicting with
-# bfd.texinfo on an 8.3 filesystem.
+# bfd.texi on an 8.3 filesystem.
 bfdt.texi: bfdt.stamp ; @true
 bfdt.stamp: $(srcdir)/../bfd.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfd.c >bfd.tmp
@@ -368,10 +368,3 @@  MAINTAINERCLEANFILES = $(DOCFILES)
 install: install-info
 
 MAINTAINERCLEANFILES += bfd.info
-
-# Automake 1.9 will only build info files in the objdir if they are
-# mentioned in DISTCLEANFILES.  It doesn't have to be unconditional,
-# though, so we use a bogus condition.
-if GENINSRC_NEVER
-DISTCLEANFILES += bfd.info
-endif
diff --git a/bfd/doc/bfd.texinfo b/bfd/doc/bfd.texi
similarity index 100%
rename from bfd/doc/bfd.texinfo
rename to bfd/doc/bfd.texi
diff --git a/binutils/doc/Makefile.am b/binutils/doc/Makefile.am
index 0c108db9b6c9..c164c6b06d9f 100644
--- a/binutils/doc/Makefile.am
+++ b/binutils/doc/Makefile.am
@@ -17,7 +17,7 @@ 
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = cygnus
+AUTOMAKE_OPTIONS = info-in-builddir no-texinfo.tex
 
 # What version of the manual you want; "all" includes everything
 CONFIG=all
diff --git a/config/override.m4 b/config/override.m4
index b5ce6545ab69..d3e815bb1b40 100644
--- a/config/override.m4
+++ b/config/override.m4
@@ -29,7 +29,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.64])])
+  [m4_define([_GCC_AUTOCONF_VERSION], [2.69])])
 
 dnl Test for the exact version when AC_INIT is expanded.
 dnl This allows to update the tree in steps (for testing)
diff --git a/gas/Makefile.am b/gas/Makefile.am
index ff46b0dfefcd..152f7c1617eb 100644
--- a/gas/Makefile.am
+++ b/gas/Makefile.am
@@ -17,7 +17,7 @@ 
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = 1.11 dejagnu foreign no-dist
+AUTOMAKE_OPTIONS = 1.11 dejagnu foreign no-dist subdir-objects
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
 
 SUBDIRS = doc po
@@ -43,14 +43,14 @@  AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
 
 TARG_CPU = @target_cpu_type@
 TARG_CPU_C = $(srcdir)/config/tc-@target_cpu_type@.c
-TARG_CPU_O = tc-@target_cpu_type@.@OBJEXT@
+TARG_CPU_O = config/tc-@target_cpu_type@.@OBJEXT@
 TARG_CPU_H = $(srcdir)/config/tc-@target_cpu_type@.h
 OBJ_FORMAT_C = $(srcdir)/config/obj-@obj_format@.c
-OBJ_FORMAT_O = obj-@obj_format@.@OBJEXT@
+OBJ_FORMAT_O = config/obj-@obj_format@.@OBJEXT@
 OBJ_FORMAT_H = $(srcdir)/config/obj-@obj_format@.h
 TARG_ENV_H = $(srcdir)/config/te-@te_file@.h
 ATOF_TARG_C = $(srcdir)/config/atof-@atof@.c
-ATOF_TARG_O = atof-@atof@.@OBJEXT@
+ATOF_TARG_O = config/atof-@atof@.@OBJEXT@
 
 # use @target_cpu_type@ for refering to configured target name
 IT_HDRS=itbl-parse.h $(srcdir)/itbl-ops.h
diff --git a/gas/configure.ac b/gas/configure.ac
index a639422026ca..96698fc48392 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -731,7 +731,7 @@  for em in . $emulations ; do
 	fmt=elf file=$em ;;
   esac
   formats="$formats $fmt"
-  emfiles="$emfiles e-$file.o"
+  emfiles="$emfiles config/e-$file.o"
   EMULATIONS="$EMULATIONS &$em,"
 done
 GAS_UNIQ(formats)
@@ -746,7 +746,7 @@  if test `set . $formats ; shift ; echo $#` -gt 1 ; then
       generic)	AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
       som)	AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
     esac
-    extra_objects="$extra_objects obj-$fmt.o"
+    extra_objects="$extra_objects config/obj-$fmt.o"
   done
   obj_format=multi
 fi
diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am
index c9c3405272a3..270e09291ac3 100644
--- a/gas/doc/Makefile.am
+++ b/gas/doc/Makefile.am
@@ -17,12 +17,12 @@ 
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = 1.8 cygnus
+AUTOMAKE_OPTIONS = 1.8 info-in-builddir no-texinfo.tex
 
 # What version of the manual you want; "all" includes everything
 CONFIG=all
 
-# Options to extract the man page from as.texinfo
+# Options to extract the man page from as.texi
 MANCONF = -Dman
 
 TEXI2POD = perl $(BASEDIR)/etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
@@ -32,7 +32,7 @@  POD2MAN = pod2man --center="GNU Development Tools" \
 
 man_MANS = as.1
 
-info_TEXINFOS = as.texinfo
+info_TEXINFOS = as.texi
 as_TEXINFOS = asconfig.texi $(CPU_DOCS)
 
 AM_MAKEINFOFLAGS = -I "$(srcdir)" -I "$(top_srcdir)/../libiberty" \
@@ -120,9 +120,9 @@  info-local: $(MANS)
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-as.1: $(srcdir)/as.texinfo asconfig.texi $(CPU_DOCS)
+as.1: $(srcdir)/as.texi asconfig.texi $(CPU_DOCS)
 	touch $@
-	-$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
+	-$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texi > as.pod
 	-($(POD2MAN) as.pod | \
 	        sed -e '/^.if n .na/d' > $@.T$$$$ && \
 	        mv -f $@.T$$$$ $@) || \
@@ -130,10 +130,3 @@  as.1: $(srcdir)/as.texinfo asconfig.texi $(CPU_DOCS)
 	rm -f as.pod
 
 MAINTAINERCLEANFILES += as.info
-
-# Automake 1.9 will only build info files in the objdir if they are
-# mentioned in DISTCLEANFILES.  It doesn't have to be unconditional,
-# though, so we use a bogus condition.
-if GENINSRC_NEVER
-DISTCLEANFILES = as.info
-endif
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texi
similarity index 100%
rename from gas/doc/as.texinfo
rename to gas/doc/as.texi
diff --git a/gdb/common/common-defs.h b/gdb/common/common-defs.h
index 881a4eaaffce..eb0ec214926c 100644
--- a/gdb/common/common-defs.h
+++ b/gdb/common/common-defs.h
@@ -21,12 +21,23 @@ 
 #define COMMON_DEFS_H
 
 #include "config.h"
+
+#undef PACKAGE_NAME
+#undef PACKAGE_VERSION
+#undef PACKAGE_STRING
+#undef PACKAGE_TARNAME
+
 #ifdef GDBSERVER
 #include "build-gnulib-gdbserver/config.h"
 #else
 #include "build-gnulib/config.h"
 #endif
 
+#undef PACKAGE_NAME
+#undef PACKAGE_VERSION
+#undef PACKAGE_STRING
+#undef PACKAGE_TARNAME
+
 /* From:
     https://www.gnu.org/software/gnulib/manual/html_node/stdint_002eh.html
 
diff --git a/gdb/configure.ac b/gdb/configure.ac
index e1f630cd388f..57f702177827 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -734,8 +734,8 @@  AC_DEFUN([AC_TRY_LIBPYTHON],
   CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
   LIBS="$new_LIBS $LIBS"
   found_usable_python=no
-  AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
-                                 [[Py_Initialize ();]]),
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]],
+                                 [[Py_Initialize ();]])],
                  [have_libpython_var=${version}
                   found_usable_python=yes
                   PYTHON_CPPFLAGS=$new_CPPFLAGS
@@ -1021,12 +1021,12 @@  if test "${have_libpython}" != no; then
   CPPFLAGS="${PYTHON_CPPFLAGS}"
   # Note that the test is reversed so that python_has_threads=yes on
   # unexpected failures.
-  AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
+  AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 #include <Python.h>
 #ifdef WITH_THREAD
 # error
 #endif
-  ]]), [python_has_threads=no], [python_has_threads=yes])
+  ]])], [python_has_threads=no], [python_has_threads=yes])
   AC_MSG_RESULT(${python_has_threads})
   CPPFLAGS="${saved_CPPFLAGS}"
 else
@@ -1100,8 +1100,8 @@  AC_DEFUN([AC_TRY_LIBGUILE],
     save_LIBS=$LIBS
     CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
     LIBS="$LIBS $new_LIBS"
-    AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]],
-                                   [[scm_init_guile ();]]),
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]],
+                                   [[scm_init_guile ();]])],
                    [have_libguile_var=yes
                     GUILE_CPPFLAGS=$new_CPPFLAGS
                     GUILE_LIBS=$new_LIBS],
@@ -1271,12 +1271,12 @@  if test "${with_intel_pt}" = no; then
   AC_MSG_WARN([Intel Processor Trace support disabled; some features may be unavailable.])
   HAVE_LIBIPT=no
 else
-  AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
+  AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 #include <linux/perf_event.h>
 #ifndef PERF_ATTR_SIZE_VER5
 # error
 #endif
-  ]]), [perf_event=yes], [perf_event=no])
+  ]])], [perf_event=yes], [perf_event=no])
   if test "$perf_event" != yes; then
     if test "$with_intel_pt" = yes; then
       AC_MSG_ERROR([linux/perf_event.h missing or too old])
@@ -1720,13 +1720,13 @@  if test "${gdb_native}" = yes; then
      old_CPPFLAGS="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
      AC_RUN_IFELSE(
-       AC_LANG_PROGRAM(
+       [AC_LANG_PROGRAM(
          [#include "Python.h"],
          [int err;
           Py_Initialize ();
           err = PyRun_SimpleString ("import itertools\n");
           Py_Finalize ();
-          return err == 0 ? 0 : 1;]),
+          return err == 0 ? 0 : 1;])],
        [dynamic_list=true], [], [true])
      LIBS="$old_LIBS"
      CFLAGS="$old_CFLAGS"
diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
index 99801681ff47..01eee66ac9e1 100644
--- a/gdb/gdbserver/configure.ac
+++ b/gdb/gdbserver/configure.ac
@@ -429,7 +429,7 @@  fi
 dnl Check for -fvisibility=hidden support in the compiler.
 saved_cflags="$CFLAGS"
 CFLAGS="$CFLAGS -fvisibility=hidden"
-AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
 		        [gdbsrv_cv_have_visibility_hidden=yes],
 	        	[gdbsrv_cv_have_visibility_hidden=no])
 CFLAGS="$saved_cflags"
diff --git a/gdb/gnulib/configure.ac b/gdb/gnulib/configure.ac
index 3d70b233965a..30f61b8e8d41 100644
--- a/gdb/gnulib/configure.ac
+++ b/gdb/gnulib/configure.ac
@@ -18,8 +18,9 @@  dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 dnl Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.64)dnl
-AC_INIT(import/memmem.c)
+AC_PREREQ(2.69)dnl
+AC_INIT([libgnu], [UNUSED-VERSION])
+AC_CONFIG_SRCDIR([import/memmem.c])
 AC_CONFIG_HEADER(config.h:config.in)
 AM_MAINTAINER_MODE
 
@@ -35,7 +36,7 @@  gl_INIT
 
 # We don't use automake, but gnulib does.  This line lets us generate
 # its Makefile.in.
-AM_INIT_AUTOMAKE(libgnu, UNUSED-VERSION, [no-define])
+AM_INIT_AUTOMAKE([no-define])
 
 AM_SILENT_RULES([yes])
 
diff --git a/gdb/gnulib/update-gnulib.sh b/gdb/gnulib/update-gnulib.sh
index 70c23e80c05e..bef4937a8bc8 100755
--- a/gdb/gnulib/update-gnulib.sh
+++ b/gdb/gnulib/update-gnulib.sh
@@ -67,8 +67,8 @@  GNULIB_COMMIT_SHA1="38237baf99386101934cd93278023aa4ae523ec0"
 
 # The expected version number for the various auto tools we will
 # use after the import.
-AUTOCONF_VERSION="2.64"
-AUTOMAKE_VERSION="1.11.1"
+AUTOCONF_VERSION="2.69"
+AUTOMAKE_VERSION="1.15.1"
 ACLOCAL_VERSION="$AUTOMAKE_VERSION"
 
 if [ $# -ne 1 ]; then
diff --git a/gold/configure.ac b/gold/configure.ac
index 1ed6c0d45cbb..a281ff677c98 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -373,17 +373,17 @@  AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [
 dnl Test for gcc 4.1 or later.  Full support for -mcmodel=medium is
 dnl only available in gcc 4.1.
 AC_CACHE_CHECK([for gcc >= 4.1], [gold_cv_prog_gcc41],
-[AC_COMPILE_IFELSE([
+[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 #if !defined __GNUC__
 error
 #elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1)
 error
 #endif
-], [gold_cv_prog_gcc41=yes], [gold_cv_prog_gcc41=no])])
+])], [gold_cv_prog_gcc41=yes], [gold_cv_prog_gcc41=no])])
 
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -mcmodel=medium"
-AC_COMPILE_IFELSE([int i;], [have_mcmodel_medium=yes], [have_mcmodel_medium=no])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [have_mcmodel_medium=yes], [have_mcmodel_medium=no])
 CFLAGS="$save_CFLAGS"
 dnl Whether we can test -mcmodel=medium.
 AM_CONDITIONAL(MCMODEL_MEDIUM,
@@ -393,7 +393,7 @@  AC_CACHE_CHECK([whether $CC supports -fmerge-constants],
 	       [gold_cv_merge_constants], [
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fmerge-constants"
-AC_COMPILE_IFELSE([const char *s = "foo";],
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([const char *s = "foo";])],
 		  [gold_cv_merge_constants=yes],
 		  [gold_cv_merge_constants=no])
 CFLAGS="$save_CFLAGS"])
@@ -404,7 +404,7 @@  AS_IF([test "$gold_cv_merge_constants" = yes],
 
 dnl Test for __thread support.
 AC_CACHE_CHECK([for thread support], [gold_cv_c_thread],
-[AC_COMPILE_IFELSE([__thread int i = 1;],
+[AC_COMPILE_IFELSE([AC_LANG_SOURCE([__thread int i = 1;])],
 [gold_cv_c_thread=yes], [gold_cv_c_thread=no])])
 
 AM_CONDITIONAL(TLS, test "$gold_cv_c_thread" = "yes")
@@ -412,14 +412,14 @@  AM_CONDITIONAL(TLS, test "$gold_cv_c_thread" = "yes")
 dnl On GNU/Linux TLS in static programs only works when using glibc
 dnl 2.4 or later.
 AC_CACHE_CHECK([for glibc >= 2.4], [gold_cv_lib_glibc24],
-[AC_COMPILE_IFELSE([
+[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 #include <features.h>
 #if !defined __GLIBC__
 error
 #elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 4)
 error
 #endif
-], [gold_cv_lib_glibc24=yes], [gold_cv_lib_glibc24=no])])
+])], [gold_cv_lib_glibc24=yes], [gold_cv_lib_glibc24=no])])
 
 AM_CONDITIONAL(STATIC_TLS, test "$gold_cv_lib_glibc24" = "yes")
 
@@ -427,11 +427,11 @@  dnl Test for #pragma omp threadprivate
 AC_CACHE_CHECK([for omp support], [gold_cv_c_threadprivate],
 [save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fopenmp"
-AC_COMPILE_IFELSE([
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 #include <omp.h>
 int i;
 #pragma omp threadprivate (i)
-], [gold_cv_c_threadprivate=yes], [gold_cv_c_threadprivate=no])
+])], [gold_cv_c_threadprivate=yes], [gold_cv_c_threadprivate=no])
 CFLAGS="$save_CFLAGS"])
 if test "$gold_cv_c_threadprivate" = "yes"; then
   AC_DEFINE(HAVE_OMP_SUPPORT, 1,
@@ -447,27 +447,27 @@  dnl assuming here that there is no compiler that groks -mtls-dialect=gnu2
 dnl but does not grok -Werror.)
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Werror -fpic -mtls-dialect=gnu2"
-AC_COMPILE_IFELSE([
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 __thread int i;
 void foo (void)
 {
   i = 10;
 }
-], [have_tls_gnu2=yes], [have_tls_gnu2=no])
+])], [have_tls_gnu2=yes], [have_tls_gnu2=no])
 CFLAGS="$save_CFLAGS"
 AM_CONDITIONAL(TLS_GNU2_DIALECT, test "$have_tls_gnu2" = "yes")
 
 dnl On GNU/Linux TLS descriptors are supported by the dynamic loader
 dnl only with glibc 2.9 or later.
 AC_CACHE_CHECK([for glibc >= 2.9], [gold_cv_lib_glibc29],
-[AC_COMPILE_IFELSE([
+[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 #include <features.h>
 #if !defined __GLIBC__
 error
 #elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 9)
 error
 #endif
-], [gold_cv_lib_glibc29=yes], [gold_cv_lib_glibc29=no])])
+])], [gold_cv_lib_glibc29=yes], [gold_cv_lib_glibc29=no])])
 
 AM_CONDITIONAL(TLS_DESCRIPTORS, test "$gold_cv_lib_glibc29" = "yes")
 
@@ -475,7 +475,7 @@  dnl Test for the -frandom-seed option.
 AC_CACHE_CHECK([for -frandom-seed support], [gold_cv_c_random_seed],
 [save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -frandom-seed=foo"
-AC_COMPILE_IFELSE([int i;], [gold_cv_c_random_seed=yes],
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [gold_cv_c_random_seed=yes],
 [gold_cv_c_random_seed=no])
 CFLAGS="$save_CFLAGS"])
 if test "$gold_cv_c_random_seed" = "yes"; then
@@ -579,14 +579,14 @@  dnl assuming here that there is no compiler that groks -gpubnames
 dnl but does not grok -Werror.)
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Werror -gpubnames"
-AC_COMPILE_IFELSE([int i;], [have_pubnames=yes], [have_pubnames=no])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [have_pubnames=yes], [have_pubnames=no])
 CFLAGS="$save_CFLAGS"
 AM_CONDITIONAL(HAVE_PUBNAMES, test "$have_pubnames" = "yes")
 
 dnl Check if gcc supports the -fno-use-linker-plugin option.
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Werror -fno-use-linker-plugin"
-AC_COMPILE_IFELSE([int i;], [have_no_use_linker_plugin=yes], [have_no_use_linker_plugin=no])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [have_no_use_linker_plugin=yes], [have_no_use_linker_plugin=no])
 CFLAGS="$save_CFLAGS"
 AM_CONDITIONAL(HAVE_NO_USE_LINKER_PLUGIN, test "$have_no_use_linker_plugin" = "yes")
 
@@ -630,11 +630,11 @@  AC_CACHE_CHECK([whether std::tr1::hash<off_t> is defined],
 [gold_cv_hash_off_t],
 [CXXFLAGS_hold=$CXXFLAGS
 CXXFLAGS="$CXXFLAGS $LFS_CFLAGS"
-AC_COMPILE_IFELSE([
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 #include <sys/types.h>
 #include <tr1/unordered_map>
 std::tr1::hash<off_t> h;
-],
+])],
 [gold_cv_hash_off_t=yes],
 [gold_cv_hash_off_t=no])
 CXXFLAGS=$CXXFLAGS_hold])
@@ -648,12 +648,12 @@  fi
 # probably be removed after the bug has been fixed for a while.
 AC_CACHE_CHECK([whether we can use attributes with template functions],
 [gold_cv_template_attribute],
-[AC_COMPILE_IFELSE([
+[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 template<typename T> extern void foo(const char*, ...)
   __attribute__ ((__format__ (__printf__, 1, 2)));
 template<typename T> void foo(const char* format, ...) {}
 void bar() { foo<int>("%s\n", "foo"); }
-], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])])
+])], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])])
 if test "$gold_cv_template_attribute" = "yes"; then
   AC_DEFINE(HAVE_TEMPLATE_ATTRIBUTES, 1,
 	    [Define if attributes work on C++ templates])
diff --git a/gprof/Makefile.am b/gprof/Makefile.am
index 84837abd1b63..ebab9b95d859 100644
--- a/gprof/Makefile.am
+++ b/gprof/Makefile.am
@@ -17,7 +17,7 @@ 
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = 1.11 foreign no-dist no-texinfo.tex
+AUTOMAKE_OPTIONS = 1.11 foreign no-dist no-texinfo.tex info-in-builddir
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
 TEXINFO_TEX = ../texinfo/texinfo.tex
 
@@ -103,10 +103,3 @@  gprof.1: $(srcdir)/gprof.texi config.texi
 	rm -f gprof.pod
 
 MAINTAINERCLEANFILES = gprof.info
-
-# Automake 1.9 will only build info files in the objdir if they are
-# mentioned in DISTCLEANFILES.  It doesn't have to be unconditional,
-# though, so we use a bogus condition.
-if GENINSRC_NEVER
-DISTCLEANFILES = gprof.info
-endif
diff --git a/ld/Makefile.am b/ld/Makefile.am
index fcd90838cedb..d86ad0940c90 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -17,7 +17,7 @@ 
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = dejagnu no-texinfo.tex no-dist foreign
+AUTOMAKE_OPTIONS = dejagnu no-texinfo.tex no-dist foreign info-in-builddir
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
 TEXINFO_TEX = ../texinfo/texinfo.tex
 
@@ -80,7 +80,7 @@  INCDIR	= $(BASEDIR)/include
 # What version of the manual to build
 DOCVER = gen
 
-# Options to extract the man page from ld.texinfo
+# Options to extract the man page from ld.texi
 MANCONF = -Dman
 
 TEXI2POD = perl $(BASEDIR)/etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
@@ -135,9 +135,9 @@  CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's
 
 transform = s/^ld-new$$/$(installed_linker)/;@program_transform_name@
 bin_PROGRAMS = ld-new
-info_TEXINFOS = ld.texinfo
+info_TEXINFOS = ld.texi
 ld_TEXINFOS = configdoc.texi
-noinst_TEXINFOS = ldint.texinfo
+noinst_TEXINFOS = ldint.texi
 man_MANS = ld.1
 
 AM_MAKEINFOFLAGS = -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \
@@ -1928,9 +1928,9 @@  configdoc.texi:	${DOCVER}-doc.texi
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-ld.1: $(srcdir)/ld.texinfo configdoc.texi
+ld.1: $(srcdir)/ld.texi configdoc.texi
 	touch $@
-	-$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod
+	-$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texi > ld.pod
 	-($(POD2MAN) ld.pod | \
 		sed -e '/^.if n .na/d' > $@.T$$$$ && \
 		mv -f $@.T$$$$ $@) || \
@@ -1994,10 +1994,3 @@  distclean-local:
 	rm -rf ldscripts
 
 MAINTAINERCLEANFILES += ld.info
-
-# Automake 1.9 will only build info files in the objdir if they are
-# mentioned in DISTCLEANFILES.  It doesn't have to be unconditional,
-# though, so we use a bogus condition.
-if GENINSRC_NEVER
-DISTCLEANFILES += ld.info
-endif
diff --git a/ld/README b/ld/README
index 16f9442e7d7d..72b11257e331 100644
--- a/ld/README
+++ b/ld/README
@@ -18,8 +18,8 @@  There are many features of the linker:
 
 * The linker supports a control language.
 
-* There is a user manual (ld.texinfo), as well as the
-  beginnings of an internals manual (ldint.texinfo).
+* There is a user manual (ld.texi), as well as the
+  beginnings of an internals manual (ldint.texi).
 
 Installation
 ============
@@ -37,7 +37,7 @@  directory (one directory above this one).
 Porting to a new target
 =======================
 
-See the ldint.texinfo manual.
+See the ldint.texi manual.
 
 Reporting bugs etc
 ===========================
diff --git a/ld/gen-doc.texi b/ld/gen-doc.texi
index 28acc93a9f2c..1b80ee6952b5 100644
--- a/ld/gen-doc.texi
+++ b/ld/gen-doc.texi
@@ -1,5 +1,5 @@ 
 @c Copyright (C) 2012-2018 Free Software Foundation, Inc.
-@c For copying conditions, see the file ld.texinfo.
+@c For copying conditions, see the file ld.texi.
 
 @c ------------------------------ CONFIGURATION VARS:
 @c 1. Inclusiveness of this manual
diff --git a/ld/h8-doc.texi b/ld/h8-doc.texi
index ee3fe6aaa887..503eaceea4e5 100644
--- a/ld/h8-doc.texi
+++ b/ld/h8-doc.texi
@@ -1,5 +1,5 @@ 
 @c Copyright (C) 2012-2018 Free Software Foundation, Inc.
-@c For copying conditions, see the file ld.texinfo.
+@c For copying conditions, see the file ld.texi.
 
 @c ------------------------------ CONFIGURATION VARS:
 @c 1. Inclusiveness of this manual
diff --git a/ld/ld.texinfo b/ld/ld.texi
similarity index 100%
rename from ld/ld.texinfo
rename to ld/ld.texi
diff --git a/ld/ldint.texinfo b/ld/ldint.texi
similarity index 100%
rename from ld/ldint.texinfo
rename to ld/ldint.texi
diff --git a/libtool.m4 b/libtool.m4
index 24d13f34409d..434530059fad 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -1079,7 +1079,7 @@  m4_defun([_LT_DARWIN_LINKER_FEATURES],
 # to the aix ld manual.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
 	/^0/ {
@@ -4932,7 +4932,7 @@  _LT_EOF
 	# implicitly export all symbols.
         save_LDFLAGS="$LDFLAGS"
         LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
+        AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])],
           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
         )
         LDFLAGS="$save_LDFLAGS"
diff --git a/zlib/Makefile.am b/zlib/Makefile.am
index 82f709d9ec79..c2930b69b6d9 100644
--- a/zlib/Makefile.am
+++ b/zlib/Makefile.am
@@ -1,6 +1,6 @@ 
 ## Process this file with automake to create Makefile.in.
 
-AUTOMAKE_OPTIONS = 1.8 cygnus
+AUTOMAKE_OPTIONS = 1.8 foreign
 
 ACLOCAL_AMFLAGS = -I .. -I ../config
 
diff --git a/zlib/configure.ac b/zlib/configure.ac
index 57d6fa56b69b..341ffa9b56b3 100644
--- a/zlib/configure.ac
+++ b/zlib/configure.ac
@@ -1,7 +1,7 @@ 
 dnl Process this with autoconf to create configure
 
-AC_PREREQ(2.64)
-AC_INIT
+AC_PREREQ(2.69)
+AC_INIT([zlib], [1.1.4])
 AC_CONFIG_SRCDIR([zlib.h])
 
 if test -n "${with_target_subdir}"; then
@@ -14,7 +14,7 @@  AC_CANONICAL_SYSTEM
 mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
 AC_SUBST(mkinstalldirs)
 
-AM_INIT_AUTOMAKE(zlib, 1.1.4)
+AM_INIT_AUTOMAKE
 
 AM_MAINTAINER_MODE