From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9153 invoked by alias); 11 Jun 2012 20:39:13 -0000 Received: (qmail 9141 invoked by uid 22791); 11 Jun 2012 20:39:12 -0000 X-SWARE-Spam-Status: No, hits=0.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_HOSTKARMA_NO,TW_BM,TW_BT,TW_DB,T_RP_MATCHES_RCVD,URIBL_BLACK X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 11 Jun 2012 20:38:59 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id CCADC1C713E; Mon, 11 Jun 2012 16:38:58 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id z2wbad6CzSdT; Mon, 11 Jun 2012 16:38:58 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 985521C6CB4; Mon, 11 Jun 2012 16:38:58 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 843FB145616; Mon, 11 Jun 2012 13:38:48 -0700 (PDT) From: Joel Brobecker To: gdb-patches@sourceware.org Cc: Joel Brobecker Subject: [RFA] Add support for --enable-lmcheck configure option. Date: Mon, 11 Jun 2012 20:39:00 -0000 Message-Id: <1339447127-314-1-git-send-email-brobecker@adacore.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-06/txt/msg00313.txt.bz2 Hello, This allows the user to enable this option at configure time if building a release, or to disable it if building a snapshot. It might be useful later on, when debugging memory problems on a release version of GDB. I don't think I'll personally use the --disable-libmcheck on a snapshot, but someone distributing a snaphot version might enjoy it too. The default is to preserve the current behavior. Also, I went the minimal route: If --enable-libmcheck is specified, but AC_CHECK_LIB(mcheck) fails, configure is not going to fail. I think it's OK, given the relative importance of this feature. I suppose I could add an extra check when --enable-libmcheck is set but libmcheck support could not be found, if people think it's important. gdb/ChangeLog: * configure.ac: Add --enable-lmcheck configure option. * configure: Regenerate. Tested on x86_64-linux, with and without --disable-lmcheck. OK? --- gdb/configure | 23 ++++++++++++++++++++++- gdb/configure.ac | 21 +++++++++++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/gdb/configure.ac b/gdb/configure.ac index e48ec05..5771825 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -645,8 +645,25 @@ AC_SUBST(READLINE_DEPS) AC_SUBST(READLINE_CFLAGS) AC_SUBST(READLINE_TEXI_INCFLAG) -dnl -lmcheck provides cheap enough memory mangling for debugging purposes. -if $development; then +# Provide a --enable-libmcheck/--disable-libmcheck set of options +# allowing a user to enable this option even when building releases, +# or to disable it when building a snapshot. +AC_ARG_ENABLE(libmcheck, + AS_HELP_STRING([--enable-libmcheck], + [Try building GDB with -lmcheck if available]), + [case "${enableval}" in + yes | y) ENABLE_LIBMCHECK="yes" ;; + no | n) ENABLE_LIBMCHECK="no" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmcheck) ;; + esac]) + +# Enable -lmcheck by default (it provides cheap-enough memory mangling), +# but turn it off for releases. +if test -z "${ENABLE_LIBMCHECK}" && $development; then + ENABLE_LIBMCHECK=yes +fi + +if test "$ENABLE_LIBMCHECK" = "yes" ; then AC_CHECK_LIB(mcheck, main) fi diff --git a/gdb/configure b/gdb/configure index 1d03188..1ea4ee9 100755 --- a/gdb/configure +++ b/gdb/configure @@ -795,6 +795,7 @@ with_zlib with_libiconv_prefix with_iconv_bin with_system_readline +enable_libmcheck with_jit_reader_dir with_expat with_gnu_ld @@ -1465,6 +1466,7 @@ Optional Features: --enable-tui enable full-screen terminal user interface (TUI) --enable-gdbtk enable gdbtk graphical user interface (GUI) --enable-profiling enable profiling of GDB + --enable-libmcheck Try building GDB with -lmcheck if available --disable-rpath do not hardcode runtime library paths --enable-werror treat compile warnings as errors --enable-build-warnings enable build-time compiler warnings if gcc is used @@ -7039,7 +7041,26 @@ fi -if $development; then +# Provide a --enable-libmcheck/--disable-libmcheck set of options +# allowing a user to enable this option even when building releases, +# or to disable it when building a snapshot. +# Check whether --enable-libmcheck was given. +if test "${enable_libmcheck+set}" = set; then : + enableval=$enable_libmcheck; case "${enableval}" in + yes | y) ENABLE_LIBMCHECK="yes" ;; + no | n) ENABLE_LIBMCHECK="no" ;; + *) as_fn_error "bad value ${enableval} for --enable-libmcheck" "$LINENO" 5 ;; + esac +fi + + +# Enable -lmcheck by default (it provides cheap-enough memory mangling), +# but turn it off for releases. +if test -z "${ENABLE_LIBMCHECK}" && $development; then + ENABLE_LIBMCHECK=yes +fi + +if test "$ENABLE_LIBMCHECK" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lmcheck" >&5 $as_echo_n "checking for main in -lmcheck... " >&6; } if test "${ac_cv_lib_mcheck_main+set}" = set; then : -- 1.7.1