diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6fb0946..89f4338 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* version.m4: Bump version to 2.29
+	* configure: Regenerate.
+
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* development.sh: Set development to false.
+
 2017-07-23  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to
diff --git a/bfd/configure b/bfd/configure
index 59897c5..7c8ebb1 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for bfd 2.28.90.
+# Generated by GNU Autoconf 2.64 for bfd 2.29.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@
 # Identity of this package.
 PACKAGE_NAME='bfd'
 PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.28.90'
-PACKAGE_STRING='bfd 2.28.90'
+PACKAGE_VERSION='2.29'
+PACKAGE_STRING='bfd 2.29'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1354,7 +1354,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bfd 2.28.90 to adapt to many kinds of systems.
+\`configure' configures bfd 2.29 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1425,7 +1425,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bfd 2.28.90:";;
+     short | recursive ) echo "Configuration of bfd 2.29:";;
    esac
   cat <<\_ACEOF
 
@@ -1546,7 +1546,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bfd configure 2.28.90
+bfd configure 2.29
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2188,7 +2188,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bfd $as_me 2.28.90, which was
+It was created by bfd $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3997,7 +3997,7 @@
 
 # Define the identity of the package.
  PACKAGE='bfd'
- VERSION='2.28.90'
+ VERSION='2.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -16666,7 +16666,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bfd $as_me 2.28.90, which was
+This file was extended by bfd $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16730,7 +16730,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-bfd config.status 2.28.90
+bfd config.status 2.29
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/bfd/development.sh b/bfd/development.sh
index cd31410..b001a88 100644
--- a/bfd/development.sh
+++ b/bfd/development.sh
@@ -16,4 +16,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Controls whether to enable development-mode features by default.
-development=true
+development=false
diff --git a/bfd/version.m4 b/bfd/version.m4
index 897acff..a54e7f8 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.28.90])
+m4_define([BFD_VERSION], [2.29])
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 909caea..b74dbcf 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* configure: Regenerate.
+
 2017-07-21  Nick Clifton  <nickc@redhat.com>
 
 	* po/fr.po: Updated French translation.
diff --git a/binutils/configure b/binutils/configure
index 80eb3ed..e903709 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for binutils 2.28.90.
+# Generated by GNU Autoconf 2.64 for binutils 2.29.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@
 # Identity of this package.
 PACKAGE_NAME='binutils'
 PACKAGE_TARNAME='binutils'
-PACKAGE_VERSION='2.28.90'
-PACKAGE_STRING='binutils 2.28.90'
+PACKAGE_VERSION='2.29'
+PACKAGE_STRING='binutils 2.29'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1338,7 +1338,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures binutils 2.28.90 to adapt to many kinds of systems.
+\`configure' configures binutils 2.29 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1409,7 +1409,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of binutils 2.28.90:";;
+     short | recursive ) echo "Configuration of binutils 2.29:";;
    esac
   cat <<\_ACEOF
 
@@ -1530,7 +1530,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-binutils configure 2.28.90
+binutils configure 2.29
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2172,7 +2172,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by binutils $as_me 2.28.90, which was
+It was created by binutils $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3981,7 +3981,7 @@
 
 # Define the identity of the package.
  PACKAGE='binutils'
- VERSION='2.28.90'
+ VERSION='2.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15233,7 +15233,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by binutils $as_me 2.28.90, which was
+This file was extended by binutils $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15297,7 +15297,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-binutils config.status 2.28.90
+binutils config.status 2.29
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2e50ce7..d5b208a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* configure: Regenerate.
+
 2017-07-18  Nick Clifton  <nickc@redhat.com>
 
 	* po/es.po: Updated translation.
diff --git a/gas/configure b/gas/configure
index 6f93ec5..e78136c 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for gas 2.28.90.
+# Generated by GNU Autoconf 2.64 for gas 2.29.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@
 # Identity of this package.
 PACKAGE_NAME='gas'
 PACKAGE_TARNAME='gas'
-PACKAGE_VERSION='2.28.90'
-PACKAGE_STRING='gas 2.28.90'
+PACKAGE_VERSION='2.29'
+PACKAGE_STRING='gas 2.29'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1330,7 +1330,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gas 2.28.90 to adapt to many kinds of systems.
+\`configure' configures gas 2.29 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1401,7 +1401,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gas 2.28.90:";;
+     short | recursive ) echo "Configuration of gas 2.29:";;
    esac
   cat <<\_ACEOF
 
@@ -1523,7 +1523,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gas configure 2.28.90
+gas configure 2.29
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1933,7 +1933,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gas $as_me 2.28.90, which was
+It was created by gas $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3742,7 +3742,7 @@
 
 # Define the identity of the package.
  PACKAGE='gas'
- VERSION='2.28.90'
+ VERSION='2.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15223,7 +15223,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gas $as_me 2.28.90, which was
+This file was extended by gas $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15287,7 +15287,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-gas config.status 2.28.90
+gas config.status 2.29
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 1ea5058..ef39520 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* configure: Regenerate.
+
 2017-07-18  Nick Clifton  <nickc@redhat.com>
 
 	* po/bg.po: Updated translation.
diff --git a/gprof/configure b/gprof/configure
index b138a45..30aa546 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for gprof 2.28.90.
+# Generated by GNU Autoconf 2.64 for gprof 2.29.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@
 # Identity of this package.
 PACKAGE_NAME='gprof'
 PACKAGE_TARNAME='gprof'
-PACKAGE_VERSION='2.28.90'
-PACKAGE_STRING='gprof 2.28.90'
+PACKAGE_VERSION='2.29'
+PACKAGE_STRING='gprof 2.29'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1302,7 +1302,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gprof 2.28.90 to adapt to many kinds of systems.
+\`configure' configures gprof 2.29 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1373,7 +1373,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gprof 2.28.90:";;
+     short | recursive ) echo "Configuration of gprof 2.29:";;
    esac
   cat <<\_ACEOF
 
@@ -1479,7 +1479,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gprof configure 2.28.90
+gprof configure 2.29
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1844,7 +1844,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gprof $as_me 2.28.90, which was
+It was created by gprof $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3653,7 +3653,7 @@
 
 # Define the identity of the package.
  PACKAGE='gprof'
- VERSION='2.28.90'
+ VERSION='2.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12787,7 +12787,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gprof $as_me 2.28.90, which was
+This file was extended by gprof $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12851,7 +12851,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-gprof config.status 2.28.90
+gprof config.status 2.29
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 7b945e5..bc7d797 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* configure: Regenerate.
+
 2017-07-18  Nick Clifton  <nickc@redhat.com>
 
 	* po/bg.po: Updated translation.
diff --git a/ld/configure b/ld/configure
index e9efc41..da20ab5 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for ld 2.28.90.
+# Generated by GNU Autoconf 2.64 for ld 2.29.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@
 # Identity of this package.
 PACKAGE_NAME='ld'
 PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.28.90'
-PACKAGE_STRING='ld 2.28.90'
+PACKAGE_VERSION='2.29'
+PACKAGE_STRING='ld 2.29'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1351,7 +1351,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ld 2.28.90 to adapt to many kinds of systems.
+\`configure' configures ld 2.29 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1422,7 +1422,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ld 2.28.90:";;
+     short | recursive ) echo "Configuration of ld 2.29:";;
    esac
   cat <<\_ACEOF
 
@@ -1548,7 +1548,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ld configure 2.28.90
+ld configure 2.29
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2257,7 +2257,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ld $as_me 2.28.90, which was
+It was created by ld $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -4067,7 +4067,7 @@
 
 # Define the identity of the package.
  PACKAGE='ld'
- VERSION='2.28.90'
+ VERSION='2.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17827,7 +17827,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ld $as_me 2.28.90, which was
+This file was extended by ld $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17891,7 +17891,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-ld config.status 2.28.90
+ld config.status 2.29
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 226618f..f48c01e 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* configure: Regenerate.
+
 2017-07-20  Nick Clifton  <nickc@redhat.com>
 
 	* po/de.po: Updated German translation.
diff --git a/opcodes/configure b/opcodes/configure
index 0743534..2bedc8d 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for opcodes 2.28.90.
+# Generated by GNU Autoconf 2.64 for opcodes 2.29.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@
 # Identity of this package.
 PACKAGE_NAME='opcodes'
 PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.28.90'
-PACKAGE_STRING='opcodes 2.28.90'
+PACKAGE_VERSION='2.29'
+PACKAGE_STRING='opcodes 2.29'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1322,7 +1322,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures opcodes 2.28.90 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.29 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1393,7 +1393,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of opcodes 2.28.90:";;
+     short | recursive ) echo "Configuration of opcodes 2.29:";;
    esac
   cat <<\_ACEOF
 
@@ -1500,7 +1500,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-opcodes configure 2.28.90
+opcodes configure 2.29
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1910,7 +1910,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by opcodes $as_me 2.28.90, which was
+It was created by opcodes $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3719,7 +3719,7 @@
 
 # Define the identity of the package.
  PACKAGE='opcodes'
- VERSION='2.28.90'
+ VERSION='2.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13307,7 +13307,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by opcodes $as_me 2.28.90, which was
+This file was extended by opcodes $as_me 2.29, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13371,7 +13371,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-opcodes config.status 2.28.90
+opcodes config.status 2.29
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
