|
From: <got...@us...> - 2009-09-17 11:54:54
|
Revision: 333
http://scstudio.svn.sourceforge.net/scstudio/?rev=333&view=rev
Author: gotthardp
Date: 2009-09-17 11:54:35 +0000 (Thu, 17 Sep 2009)
Log Message:
-----------
CMake enhancements to fix the recent gcc and valgrind error/warnings.
Modified Paths:
--------------
trunk/CMakeLists.txt
trunk/FindANTLR.cmake
trunk/FindPCAP.cmake
trunk/doc/CMakeLists.txt
trunk/src/check/race/race_checker.cpp
Added Paths:
-----------
trunk/valgrind-python.supp
Modified: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt 2009-09-15 14:13:20 UTC (rev 332)
+++ trunk/CMakeLists.txt 2009-09-17 11:54:35 UTC (rev 333)
@@ -7,7 +7,11 @@
PROJECT(scstudio C CXX)
#SET(CMAKE_VERBOSE_MAKEFILE ON)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+SET(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes")
+SET(MEMORYCHECK_SUPPRESSIONS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/valgrind-python.supp"
+ CACHE FILEPATH "File that contains suppressions for the memory checker")
INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake)
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/share/scripts)
@@ -21,7 +25,7 @@
# Enforce strict ANSI C/C++ compliancy checking
IF(CMAKE_COMPILER_IS_GNUCXX)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -ansi -Wall -Woverloaded-virtual -Wno-unused-function")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -ansi -Wall -Wno-long-long")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
FIND_PACKAGE(Boost REQUIRED)
Modified: trunk/FindANTLR.cmake
===================================================================
--- trunk/FindANTLR.cmake 2009-09-15 14:13:20 UTC (rev 332)
+++ trunk/FindANTLR.cmake 2009-09-17 11:54:35 UTC (rev 333)
@@ -7,25 +7,20 @@
NAMES antlr-3.1.1.jar
PATHS
${ANTLR_ROOT}/lib
- DOC "The ANTLR Class File")
+ DOC "The ANTLR class file")
FIND_LIBRARY(ANTLR_LIBRARY
NAMES antlr3c
PATHS
${ANTLR_ROOT}/runtime/C
- DOC "The ANTLR Library")
+ DOC "The ANTLR library")
FIND_PATH(ANTLR_INCLUDE_DIR
NAMES antlr3.h
PATHS
${ANTLR_ROOT}/runtime/C/include
- DOC "The ANTLR Include Files")
+ DOC "The ANTLR include files")
-IF (ANTLR_CLASSPATH AND ANTLR_LIBRARY AND ANTLR_INCLUDE_DIR)
- SET(ANTLR_FOUND TRUE)
-ELSE (ANTLR_CLASSPATH AND ANTLR_LIBRARY AND ANTLR_INCLUDE_DIR)
- SET(ANTLR_FOUND FALSE)
- IF (ANTLR_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "ANTLR not found! Set ANTLR_ROOT to the antlr-3.1.1 directory.")
- ENDIF (ANTLR_FIND_REQUIRED)
-ENDIF (ANTLR_CLASSPATH AND ANTLR_LIBRARY AND ANTLR_INCLUDE_DIR)
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(ANTLR DEFAULT_MSG
+ ANTLR_CLASSPATH ANTLR_LIBRARY ANTLR_INCLUDE_DIR)
Modified: trunk/FindPCAP.cmake
===================================================================
--- trunk/FindPCAP.cmake 2009-09-15 14:13:20 UTC (rev 332)
+++ trunk/FindPCAP.cmake 2009-09-17 11:54:35 UTC (rev 333)
@@ -7,19 +7,14 @@
NAMES wpcap
PATHS
${PCAP_ROOT}/Lib
- DOC "The PCAP Library")
+ DOC "The PCAP library")
FIND_PATH(PCAP_INCLUDE_DIR
NAMES pcap.h
PATHS
${PCAP_ROOT}/Include
- DOC "The PCAP Include Files")
+ DOC "The PCAP include files")
-IF (PCAP_LIBRARY AND PCAP_INCLUDE_DIR)
- SET(PCAP_FOUND TRUE)
-ELSE (PCAP_LIBRARY AND PCAP_INCLUDE_DIR)
- SET(PCAP_FOUND FALSE)
- IF (PCAP_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "PCAP not found! Set PCAP_ROOT to the PCAP-3.1.1 directory.")
- ENDIF (PCAP_FIND_REQUIRED)
-ENDIF (PCAP_LIBRARY AND PCAP_INCLUDE_DIR)
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCAP DEFAULT_MSG
+ PCAP_LIBRARY PCAP_INCLUDE_DIR)
Modified: trunk/doc/CMakeLists.txt
===================================================================
--- trunk/doc/CMakeLists.txt 2009-09-15 14:13:20 UTC (rev 332)
+++ trunk/doc/CMakeLists.txt 2009-09-17 11:54:35 UTC (rev 333)
@@ -7,14 +7,14 @@
# latex needs to be executed twice in order to generate references correctly
ADD_CUSTOM_COMMAND(
OUTPUT ${FILE}.aux
- COMMAND ${PDFLATEX_COMPILER} ${FILE}.tex
+ COMMAND ${PDFLATEX_COMPILER} --interaction batchmode ${FILE}.tex
DEPENDS ${FILE}.tex
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating ${FILE}.pdf (first pass)"
)
ADD_CUSTOM_COMMAND(
OUTPUT ${FILE}.pdf
- COMMAND ${PDFLATEX_COMPILER} ${FILE}.tex
+ COMMAND ${PDFLATEX_COMPILER} --interaction batchmode ${FILE}.tex
DEPENDS ${FILE}.tex ${FILE}.aux
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating ${FILE}.pdf (second pass)"
Modified: trunk/src/check/race/race_checker.cpp
===================================================================
--- trunk/src/check/race/race_checker.cpp 2009-09-15 14:13:20 UTC (rev 332)
+++ trunk/src/check/race/race_checker.cpp 2009-09-17 11:54:35 UTC (rev 333)
@@ -72,7 +72,6 @@
{
if(e1!=e2)
{
- Event* e = *e2;
BoolVector& e2_causal = m_caus_initiator->get_causal_closure(*e2);
size_t e1_index = m_vis_initiator->get_topology_index(*e1);
//e2<<e1 => e1 isn't minimal
Added: trunk/valgrind-python.supp
===================================================================
--- trunk/valgrind-python.supp (rev 0)
+++ trunk/valgrind-python.supp 2009-09-17 11:54:35 UTC (rev 333)
@@ -0,0 +1,349 @@
+#
+# This is a valgrind suppression file that should be used when using valgrind.
+#
+# Here's an example of running valgrind:
+#
+# cd python/dist/src
+# valgrind --tool=memcheck --suppressions=Misc/valgrind-python.supp \
+# ./python -E -tt ./Lib/test/regrtest.py -u bsddb,network
+#
+# You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER
+# to use the preferred suppressions with Py_ADDRESS_IN_RANGE.
+#
+# If you do not want to recompile Python, you can uncomment
+# suppressions for PyObject_Free and PyObject_Realloc.
+#
+# See Misc/README.valgrind for more information.
+
+# all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Addr4
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Value4
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64)
+ Memcheck:Value8
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+{
+ ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+ Memcheck:Cond
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+#
+# Leaks (including possible leaks)
+# Hmmm, I wonder if this masks some real leaks. I think it does.
+# Will need to fix that.
+#
+
+{
+ Handle PyMalloc confusing valgrind (possibly leaked)
+ Memcheck:Leak
+ fun:realloc
+ fun:_PyObject_GC_Resize
+ fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
+}
+
+{
+ Handle PyMalloc confusing valgrind (possibly leaked)
+ Memcheck:Leak
+ fun:malloc
+ fun:_PyObject_GC_New
+ fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
+}
+
+{
+ Handle PyMalloc confusing valgrind (possibly leaked)
+ Memcheck:Leak
+ fun:malloc
+ fun:_PyObject_GC_NewVar
+ fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
+}
+
+#
+# Non-python specific leaks
+#
+
+{
+ Handle pthread issue (possibly leaked)
+ Memcheck:Leak
+ fun:calloc
+ fun:allocate_dtv
+ fun:_dl_allocate_tls_storage
+ fun:_dl_allocate_tls
+}
+
+{
+ Handle pthread issue (possibly leaked)
+ Memcheck:Leak
+ fun:memalign
+ fun:_dl_allocate_tls_storage
+ fun:_dl_allocate_tls
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Addr4
+ fun:PyObject_Free
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Value4
+ fun:PyObject_Free
+}
+
+{
+ ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+ Memcheck:Cond
+ fun:PyObject_Free
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Addr4
+ fun:PyObject_Realloc
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Value4
+ fun:PyObject_Realloc
+}
+
+{
+ ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+ Memcheck:Cond
+ fun:PyObject_Realloc
+}
+
+###
+### All the suppressions below are for errors that occur within libraries
+### that Python uses. The problems to not appear to be related to Python's
+### use of the libraries.
+###
+
+{
+ Generic gentoo ld problems
+ Memcheck:Cond
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+}
+
+{
+ DBM problems, see test_dbm
+ Memcheck:Param
+ write(buf)
+ fun:write
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ fun:dbm_close
+}
+
+{
+ DBM problems, see test_dbm
+ Memcheck:Value8
+ fun:memmove
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ fun:dbm_store
+ fun:dbm_ass_sub
+}
+
+{
+ DBM problems, see test_dbm
+ Memcheck:Cond
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ fun:dbm_store
+ fun:dbm_ass_sub
+}
+
+{
+ DBM problems, see test_dbm
+ Memcheck:Cond
+ fun:memmove
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ obj:/usr/lib/libdb1.so.2
+ fun:dbm_store
+ fun:dbm_ass_sub
+}
+
+{
+ GDBM problems, see test_gdbm
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:gdbm_open
+
+}
+
+{
+ ZLIB problems, see test_gzip
+ Memcheck:Cond
+ obj:/lib/libz.so.1.2.3
+ obj:/lib/libz.so.1.2.3
+ fun:deflate
+}
+
+{
+ Avoid problems w/readline doing a putenv and leaking on exit
+ Memcheck:Leak
+ fun:malloc
+ fun:xmalloc
+ fun:sh_set_lines_and_columns
+ fun:_rl_get_screen_size
+ fun:_rl_init_terminal_io
+ obj:/lib/libreadline.so.4.3
+ fun:rl_initialize
+}
+
+###
+### These occur from somewhere within the SSL, when running
+### test_socket_sll. They are too general to leave on by default.
+###
+###{
+### somewhere in SSL stuff
+### Memcheck:Cond
+### fun:memset
+###}
+###{
+### somewhere in SSL stuff
+### Memcheck:Value4
+### fun:memset
+###}
+###
+###{
+### somewhere in SSL stuff
+### Memcheck:Cond
+### fun:MD5_Update
+###}
+###
+###{
+### somewhere in SSL stuff
+### Memcheck:Value4
+### fun:MD5_Update
+###}
+
+#
+# All of these problems come from using test_socket_ssl
+#
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_bin2bn
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_num_bits_word
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:BN_num_bits_word
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_mod_exp_mont_word
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_mod_exp_mont
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Param
+ write(buf)
+ fun:write
+ obj:/usr/lib/libcrypto.so.0.9.7
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:RSA_verify
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:RSA_verify
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:DES_set_key_unchecked
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:DES_encrypt2
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ obj:/usr/lib/libssl.so.0.9.7
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ obj:/usr/lib/libssl.so.0.9.7
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BUF_MEM_grow_clean
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:memcpy
+ fun:ssl3_read_bytes
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:SHA1_Update
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:SHA1_Update
+}
+
+
Property changes on: trunk/valgrind-python.supp
___________________________________________________________________
Added: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|