mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-30 23:40:24 +00:00
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.
This commit is contained in:
parent
5537b57769
commit
648d586d84
@ -4,7 +4,7 @@
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
|
||||
# ACX_CONFIGURE_DIR(SRC-DIR-NAME, BUILD-DIR-NAME)
|
||||
# ACX_CONFIGURE_DIR(SRC-DIR-NAME, BUILD-DIR-NAME, EXTRA-ARGS)
|
||||
# ---------------------------
|
||||
#
|
||||
# Configure a subdirectory. This is an alternative to
|
||||
@ -16,11 +16,14 @@
|
||||
# Inputs:
|
||||
# - SRC-DIR-NAME is the source directory, relative to $srcdir.
|
||||
# - BUILD-DIR-NAME is `top-build -> build'
|
||||
# - EXTRA-ARGS is an optional list of extra arguments to add
|
||||
# at the end of the configure command.
|
||||
|
||||
AC_DEFUN([ACX_CONFIGURE_DIR],
|
||||
[
|
||||
in_src=$1
|
||||
in_build=$2
|
||||
in_extra_args=$3
|
||||
|
||||
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
|
||||
# so they do not pile up.
|
||||
@ -105,6 +108,11 @@ AC_DEFUN([ACX_CONFIGURE_DIR],
|
||||
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
|
||||
|
||||
AC_MSG_NOTICE([running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir])
|
||||
# The eval makes quoting arguments work.
|
||||
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
|
||||
|
12
gdb/configure
vendored
12
gdb/configure
vendored
@ -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.
|
||||
|
@ -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.
|
||||
|
||||
|
18
gdb/gdbserver/configure
vendored
18
gdb/gdbserver/configure
vendored
@ -4514,6 +4514,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 can't use AC_CONFIG_SUBDIRS as that'd expect
|
||||
# to find the the source subdir to be configured directly under
|
||||
# gdbserver/. We need to build gnulib under some other directory not
|
||||
@ -4522,6 +4528,7 @@ fi
|
||||
|
||||
in_src="../gnulib"
|
||||
in_build="build-gnulib-gdbserver"
|
||||
in_extra_args="$gnulib_extra_configure_args"
|
||||
|
||||
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
|
||||
# so they do not pile up.
|
||||
@ -4606,6 +4613,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.
|
||||
@ -4619,6 +4631,7 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
|
||||
|
||||
in_src="../../libiberty"
|
||||
in_build="build-libiberty-gdbserver"
|
||||
in_extra_args=
|
||||
|
||||
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
|
||||
# so they do not pile up.
|
||||
@ -4703,6 +4716,11 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
|
||||
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.
|
||||
|
@ -69,12 +69,19 @@ 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 can't use AC_CONFIG_SUBDIRS as that'd expect
|
||||
# to find the the source subdir to be configured directly under
|
||||
# gdbserver/. 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-gdbserver"])
|
||||
ACX_CONFIGURE_DIR(["../gnulib"], ["build-gnulib-gdbserver"],
|
||||
["$gnulib_extra_configure_args"])
|
||||
|
||||
ACX_CONFIGURE_DIR(["../../libiberty"], ["build-libiberty-gdbserver"])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user