aboutsummaryrefslogtreecommitdiff
path: root/gdb/configure.ac
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@adacore.com>2014-12-03 06:31:54 -0500
committerJoel Brobecker <brobecker@adacore.com>2014-12-13 09:45:57 -0500
commit648d586d843834820c3a1a4eb4ed767aff6283cd (patch)
tree9055f6003ec7c4099cb52467edfdd4c2f300c298 /gdb/configure.ac
parent5537b577695dd5cd72395590d7ebd7aa92ee856a (diff)
downloadgdb-648d586d843834820c3a1a4eb4ed767aff6283cd.zip
gdb-648d586d843834820c3a1a4eb4ed767aff6283cd.tar.gz
gdb-648d586d843834820c3a1a4eb4ed767aff6283cd.tar.bz2
configure gdb/gnulib with --disable-largefile if largefile support disabled.
This patch mostly aims at fixing a GDB build failure on 32bit Solaris systems (Sparc and x86), due to a recent gnulib update adding the readlink module. But it might also fix related issues when configuring with --disable-largefile. A side-effect of the gnulib readlink module addition is that it caused largefile support to be added as well, and in particular gnulib/import/m4/largefile.m4 introduced the following new #define in gnulib's config.in: | +/* Number of bits in a file offset, on hosts where this is settable. */ | +#undef _FILE_OFFSET_BITS When defined to 64, it triggers an issue with procfs.h while trying to build sparc-sol2-nat.c: | #if !defined(_LP64) && _FILE_OFFSET_BITS == 64 | #error "Cannot use procfs in the large file compilation environment" | #endif As it turns out, this is a fairly familiar problem, and one of the reasons behind ACX_LARGEFILE having been created. In that macro, we have some code which disables largefile support on solaris hosts: | sparc-*-solaris*|i[3-7]86-*-solaris*) | changequote([,])dnl | # On native 32bit sparc and ia32 solaris, large-file and procfs support | # are mutually exclusive; and without procfs support, the bfd/ elf module | # cannot provide certain routines such as elfcore_write_prpsinfo | # or elfcore_write_prstatus. So unless the user explicitly requested | # large-file support through the --enable-largefile switch, disable | # large-file support in favor of procfs support. | test "${target}" = "${host}" -a "x$plugins" = xno \ | && : ${enable_largefile="no"} | ;; But gnulib ignores this fact, and so tries to determine how to enable large-file support irrespective of whether we want it or not. This patch fixes the issue by passing --disable-largefile to gnulib's configure when large-file support in GDB is disabled. This is done by first enhancing ACX_CONFIGURE_DIR to allow us to pass extra arguments to be passed to the configure command, and then by modifying GDB's configure to pass --disable-largefile if large-file support is disabled. gdb/ChangeLog: * acx_configure_dir.m4 (ACX_CONFIGURE_DIR): Add support for new "EXTRA-ARGS" parameter. * configure.ac: If large-file support is disabled in GDB, pass --disable-largefile to ACX_CONFIGURE_DIR call for "gnulib". * configure: Regenerate. gdb/gdbserver/ChangeLog: * configure.ac: If large-file support is disabled in GDBserver, pass --disable-largefile to ACX_CONFIGURE_DIR call for "gnulib". * configure: Regenerate. Tested by rebuilding on sparc-solaris and x86_64-linux (with gdbserver). This fixes the build failure on sparc-solaris. I also verified in gnulib's config.log file that we pass --disable-largefile in the solaris case, while we do not in the GNU/Linux case.
Diffstat (limited to 'gdb/configure.ac')
-rw-r--r--gdb/configure.ac9
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 84232f2..c933e3f 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -51,11 +51,18 @@ esac
AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
AC_PROG_MAKE_SET
+gnulib_extra_configure_args=
+# If large-file support is disabled, make sure gnulib does the same.
+if test "$enable_largefile" = no; then
+gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile"
+fi
+
# Configure gnulib. We need to build gnulib under some other
# directory not "gnulib", to avoid the problem of both GDB and
# GDBserver wanting to build it in the same directory, when building
# in the source dir.
-ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"])
+ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"],
+ ["$gnulib_extra_configure_args"])
dnl List of object files and targets accumulated by configure.