diff options
author | Joel Brobecker <brobecker@adacore.com> | 2014-12-03 06:31:54 -0500 |
---|---|---|
committer | Joel Brobecker <brobecker@adacore.com> | 2014-12-13 09:45:57 -0500 |
commit | 648d586d843834820c3a1a4eb4ed767aff6283cd (patch) | |
tree | 9055f6003ec7c4099cb52467edfdd4c2f300c298 /gdb/configure | |
parent | 5537b577695dd5cd72395590d7ebd7aa92ee856a (diff) | |
download | gdb-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')
-rwxr-xr-x | gdb/configure | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/configure b/gdb/configure index 5f52e91..8985230 100755 --- a/gdb/configure +++ b/gdb/configure @@ -4835,6 +4835,12 @@ $as_echo "no" >&6; } fi +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 @@ -4842,6 +4848,7 @@ fi in_src="gnulib" in_build="build-gnulib" + in_extra_args="$gnulib_extra_configure_args" # Remove --cache-file, --srcdir, and --disable-option-checking arguments # so they do not pile up. @@ -4926,6 +4933,11 @@ fi ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; esac + if test -n "$in_extra_args"; then + # Add the extra args at the end. + ac_sub_configure_args="$ac_sub_configure_args $in_extra_args" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. |