diff options
author | Pedro Alves <palves@redhat.com> | 2013-07-03 13:25:46 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2013-07-03 13:25:46 +0000 |
commit | 17ef446eed00c1b7c88863fe461c5859d271f77c (patch) | |
tree | 6cf13142bf1b75637738f9396c6d1d972e6fed63 /gdb/libmcheck.m4 | |
parent | 5295321caf668a06255f545b8deb1fe97a9357d6 (diff) | |
download | gdb-17ef446eed00c1b7c88863fe461c5859d271f77c.zip gdb-17ef446eed00c1b7c88863fe461c5859d271f77c.tar.gz gdb-17ef446eed00c1b7c88863fe461c5859d271f77c.tar.bz2 |
On mainline/development, also link GDBserver with -lmcheck.
This factors --enable-libmcheck related bits from GDB's configure.ac
and makes GDBserver use them too. Specifically, the 'development'
global is moved to a separate script to it can be sourced by both GDB
and GDBserver, and the --enable-libmcheck/--disable-libmcheck bits
proper are moved to a new m4 file.
I started out by defining 'development' in the m4 file, but in the end
decided against it, as a separate script has the advantage that
changing it in release branches does not require regenerating
configure, unlike today.
I had also started out by making the new GDB_AC_LIBMCHECK itself
handle the yes/no default fallback depending on release/developement,
but since I had split out 'development' to a separate script, and, GDB
needs the python checks anyway (hence we'd need to do the python
checks in gdb's configure.ac, and pass in a 'default lmcheck yes/no'
parameter to GDB_AC_LIBMCHECK anyway), I ended up keeping
GDB_AC_LIBMCHECK isolated from the 'development' global. IOW, it's
the caller's business to handle it.
Tested on x86_64 Fedora 17. Built GDB and GDBserver with and without
--enable-libmcheck, and observed --enable-libmcheck overrides the
disablement of -lmcheck caused by python supporting threads, and that
GDBserver links with -lmcheck when expected. Also observed that
changing the 'development' global, and issuing "make" triggers a
relink, and '-lmcheck' is included or not from the link accordingly.
gdb/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
(aclocal_m4_deps): Add libmcheck.m4.
* acinclude.m4: Include libmcheck.m4.
* configure.ac: Source development.sh instead of setting
'development' here. --enable-libmcheck/--disable-libmcheck code
factored out to GDB_AC_LIBMCHECK. Run it.
* development.sh: New file.
* libmcheck.m4: New file.
* configure: Regenerate.
gdb/gdbserver/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
* acinclude.m4: Include libmcheck.m4.
* configure: Regenerate.
Diffstat (limited to 'gdb/libmcheck.m4')
-rw-r--r-- | gdb/libmcheck.m4 | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gdb/libmcheck.m4 b/gdb/libmcheck.m4 new file mode 100644 index 0000000..7493147 --- /dev/null +++ b/gdb/libmcheck.m4 @@ -0,0 +1,43 @@ +dnl Copyright (C) 2012-2013 Free Software Foundation, Inc. +dnl +dnl This file is part of GDB. +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see <http://www.gnu.org/licenses/>. + +dnl GDB_AC_LIBMCHECK([DEFAULT]) +dnl Provide an --enable-libmcheck/--disable-libmcheck set of options +dnl allowing a user to enable this option even when building releases, +dnl or to disable it when building a snapshot. +dnl DEFAULT (yes/no) is used as default if the user doesn't set +dnl the option explicitly. + +AC_DEFUN([GDB_AC_LIBMCHECK], +[ + AC_ARG_ENABLE(libmcheck, + AS_HELP_STRING([--enable-libmcheck], + [Try linking 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]) + + if test -z "${ENABLE_LIBMCHECK}"; then + ENABLE_LIBMCHECK=[$1] + fi + + if test "$ENABLE_LIBMCHECK" = "yes" ; then + AC_CHECK_LIB(mcheck, main) + fi +]) |