mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
maint: Valgrind on OS X.
* configure.ac (VALGRIND_PREBISON): New. * tests/Makefile.am (maintainer-check-valgrind): Use it. * etc/darwin11.4.0.supp: New. * configure.ac, etc/Makefile.am: Use it. * configure.ac: Disable Valgrind on Mac OS X. * README-hacking: Explain why.
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
-*- outline -*-
|
|
||||||
|
|
||||||
This file attempts to describe the rules to use when hacking Bison.
|
This file attempts to describe the rules to use when hacking Bison.
|
||||||
Don't put this file into the distribution.
|
Don't put this file into the distribution.
|
||||||
|
|
||||||
@@ -60,8 +58,8 @@ tools we depend upon, including:
|
|||||||
- Rsync <http://samba.anu.edu.au/rsync/>
|
- Rsync <http://samba.anu.edu.au/rsync/>
|
||||||
- Tar <http://www.gnu.org/software/tar/>
|
- Tar <http://www.gnu.org/software/tar/>
|
||||||
|
|
||||||
Valgrind <http://valgrind.org/> is also highly recommended, if
|
Valgrind <http://valgrind.org/> is also highly recommended, if it supports
|
||||||
Valgrind supports your architecture.
|
your architecture.
|
||||||
|
|
||||||
Bison is written using Bison grammars, so there are bootstrapping
|
Bison is written using Bison grammars, so there are bootstrapping
|
||||||
issues. The bootstrap script attempts to discover when the C code
|
issues. The bootstrap script attempts to discover when the C code
|
||||||
@@ -124,7 +122,7 @@ import requests for updated submodules. A simple "git diff" will
|
|||||||
reveal if the current version of the submodule (i.e., the actual
|
reveal if the current version of the submodule (i.e., the actual
|
||||||
contents of the gnulib directory) and the current request from the
|
contents of the gnulib directory) and the current request from the
|
||||||
subscriber (i.e., the reference of the version of gnulib that the
|
subscriber (i.e., the reference of the version of gnulib that the
|
||||||
Bison reporitory requests) differ. To upgrade the submodules (i.e.,
|
Bison repository requests) differ. To upgrade the submodules (i.e.,
|
||||||
to check out the version that is actually requested by the subscriber,
|
to check out the version that is actually requested by the subscriber,
|
||||||
run "git submodule update".
|
run "git submodule update".
|
||||||
|
|
||||||
@@ -155,7 +153,7 @@ formal release, see the ChangeLog in the latest gnulib snapshot at:
|
|||||||
|
|
||||||
http://erislabs.net/ianb/projects/gnulib/
|
http://erislabs.net/ianb/projects/gnulib/
|
||||||
|
|
||||||
The autoconf files we use are currently:
|
The Autoconf files we use are currently:
|
||||||
|
|
||||||
m4/m4.m4
|
m4/m4.m4
|
||||||
lib/m4sugar/m4sugar.m4
|
lib/m4sugar/m4sugar.m4
|
||||||
@@ -170,6 +168,23 @@ decide whether to update.
|
|||||||
** make check
|
** make check
|
||||||
Use liberally.
|
Use liberally.
|
||||||
|
|
||||||
|
** make maintainer-check-valgrind
|
||||||
|
This target uses valgrind both to check bison, and the generated parsers.
|
||||||
|
|
||||||
|
This is not mature on Mac OS X. First, Valgrind does support the way bison
|
||||||
|
calls m4, so Valgrind cannot be used to check bison on Mac OS X.
|
||||||
|
|
||||||
|
Second, there are many errors that come from the platform itself, not from
|
||||||
|
bison. build-aux/darwin11.4.0.valgrind addresses some of them.
|
||||||
|
|
||||||
|
Third, valgrind issues warnings such as:
|
||||||
|
|
||||||
|
--99312:0:syswrap- WARNING: Ignoring sigreturn( ..., UC_RESET_ALT_STACK );
|
||||||
|
|
||||||
|
which cause the test to fail uselessly. It is hard to ignore these errors
|
||||||
|
with a major overhaul of the way instrumentation is performed in the test
|
||||||
|
suite. So currently, do not try to run valgrind on Mac OS X.
|
||||||
|
|
||||||
** Release checks
|
** Release checks
|
||||||
Try to run the test suite with more severe conditions before a
|
Try to run the test suite with more severe conditions before a
|
||||||
release:
|
release:
|
||||||
@@ -377,7 +392,6 @@ spaces):
|
|||||||
|
|
||||||
Push these changes.
|
Push these changes.
|
||||||
|
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc.
|
Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc.
|
||||||
@@ -396,3 +410,14 @@ GNU General Public License for more details.
|
|||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
LocalWords: Automake Autoconf Gettext Gzip Rsync Valgrind gnulib submodules
|
||||||
|
LocalWords: submodule init cd distcheck checkin ChangeLog valgrind sigreturn
|
||||||
|
LocalWords: UC gcc DGNULIB POSIXCHECK xml XSLT glr lalr README po runtime rc
|
||||||
|
LocalWords: gnupload gnupg gpg keyserver BDF ncftp filename clearsign cvs dir
|
||||||
|
LocalWords: symlinks vti html lt POSIX Cc'ed
|
||||||
|
|
||||||
|
Local Variables:
|
||||||
|
mode: outline
|
||||||
|
fill-column: 76
|
||||||
|
End:
|
||||||
|
|||||||
@@ -1,2 +1,20 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
|
||||||
EXTRA_DIST = prev-version.txt cross-options.pl update-b4-copyright
|
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
cross-options.pl \
|
||||||
|
darwin11.4.0.valgrind \
|
||||||
|
prev-version.txt \
|
||||||
|
update-b4-copyright
|
||||||
|
|||||||
64
build-aux/darwin11.4.0.valgrind
Normal file
64
build-aux/darwin11.4.0.valgrind
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Valgrind suppression file for Bison.
|
||||||
|
|
||||||
|
{
|
||||||
|
Mac OS X initialization
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:?alloc*
|
||||||
|
...
|
||||||
|
fun:*ImageLoader*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Mac OS X initialization
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:?alloc*
|
||||||
|
...
|
||||||
|
fun:*dyld*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Mac OS X initialization
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:?alloc*
|
||||||
|
...
|
||||||
|
fun:__CFInitialize
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Mac OS X I/O buffer
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:malloc
|
||||||
|
fun:__smakebuf
|
||||||
|
fun:__swsetup
|
||||||
|
fun:__sfvwrite
|
||||||
|
fun:fwrite
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Mac OS X I/O buffer
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:malloc
|
||||||
|
fun:__smakebuf
|
||||||
|
fun:__swsetup
|
||||||
|
fun:__swbuf
|
||||||
|
fun:putchar
|
||||||
|
}
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# End:
|
||||||
10
configure.ac
10
configure.ac
@@ -163,6 +163,16 @@ AC_CONFIG_TESTDIR(tests)
|
|||||||
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
|
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
|
||||||
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
|
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
|
||||||
AC_CHECK_PROGS([VALGRIND], [valgrind])
|
AC_CHECK_PROGS([VALGRIND], [valgrind])
|
||||||
|
case $VALGRIND:$host_os in
|
||||||
|
'':*) ;;
|
||||||
|
*:darwin*)
|
||||||
|
# See README-hacking.
|
||||||
|
# VALGRIND+=' --suppressions=$(abs_top_srcdir)/build-aux/darwin11.4.0.valgrind'
|
||||||
|
VALGRIND=;;
|
||||||
|
*:*)
|
||||||
|
AC_SUBST([VALGRIND_PREBISON], [$VALGRIND -q]);;
|
||||||
|
esac
|
||||||
|
|
||||||
AM_MISSING_PROG([AUTOM4TE], [autom4te])
|
AM_MISSING_PROG([AUTOM4TE], [autom4te])
|
||||||
# Needed by tests/atlocal.in.
|
# Needed by tests/atlocal.in.
|
||||||
AC_SUBST([GCC])
|
AC_SUBST([GCC])
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ maintainer-check-posix: $(TESTSUITE)
|
|||||||
maintainer-check-valgrind: $(TESTSUITE)
|
maintainer-check-valgrind: $(TESTSUITE)
|
||||||
test -z '$(VALGRIND)' || \
|
test -z '$(VALGRIND)' || \
|
||||||
$(TESTSUITE) $(TESTSUITEFLAGS) \
|
$(TESTSUITE) $(TESTSUITEFLAGS) \
|
||||||
PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q' \
|
PREBISON='$(VALGRIND_PREBISON)' PREPARSER='$(VALGRIND) -q' \
|
||||||
VALGRIND_OPTS='--leak-check=full --show-reachable=yes'
|
VALGRIND_OPTS='--leak-check=full --show-reachable=yes'
|
||||||
|
|
||||||
.PHONY: maintainer-check
|
.PHONY: maintainer-check
|
||||||
|
|||||||
Reference in New Issue
Block a user