Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the ability to specify an alternative compiler (clang instead of gcc) on the default Makefile. Use this in releasetest.tcl to implement an -fsanitize=undefined test. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c55c05fe22b9ddb61de55d473a411a11 |
User & Date: | drh 2015-01-01 19:53:10.337 |
Context
2015-01-01
| ||
23:02 | Add logic to releasetest.tcl that detects -fsanitize=undefined errors. Fix a few false-positivies that come up when running the sanitize=undefined test. (check-in: 2835e79a0a user: drh tags: trunk) | |
19:53 | Add the ability to specify an alternative compiler (clang instead of gcc) on the default Makefile. Use this in releasetest.tcl to implement an -fsanitize=undefined test. (check-in: c55c05fe22 user: drh tags: trunk) | |
19:11 | Enhance the "lemon" executable so that it ignores -f, -W, -O, and -I command-line options. This permits most of the same options that are passed to the compiler to also be harmlessly passed to lemon, and thus simplifies makefiles. (check-in: da408d128b user: drh tags: trunk) | |
Changes
Changes to Makefile.in.
︙ | ︙ | |||
18 19 20 21 22 23 24 | TOP = @srcdir@ # C Compiler and options for use in building executables that # will run on the platform that is doing the build. # BCC = @BUILD_CC@ @BUILD_CFLAGS@ | | | > > > > | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | TOP = @srcdir@ # C Compiler and options for use in building executables that # will run on the platform that is doing the build. # BCC = @BUILD_CC@ @BUILD_CFLAGS@ # TCC is the C Compile and options for use in building executables that # will run on the target platform. (BCC and TCC are usually the # same unless your are cross-compiling.) Separate CC and CFLAGS macros # are provide so that these aspects of the build process can be changed # on the "make" command-line. Ex: "make CC=clang CFLAGS=-fsanitize=undefined" # CC = @CC@ CFLAGS = @CPPFLAGS@ @CFLAGS@ TCC = $(CC) $(CFLAGS) -I. -I${TOP}/src -I${TOP}/ext/rtree # Define this for the autoconf-based build, so that the code knows it can # include the generated config.h # TCC += -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite # Define -DNDEBUG to compile without debugging (i.e., for production usage) |
︙ | ︙ |
Changes to test/releasetest.tcl.
︙ | ︙ | |||
30 31 32 33 34 35 36 | array set ::Configs { "Default" { -O2 } "Ftrapv" { -O2 -ftrapv | | > > > > > | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | array set ::Configs { "Default" { -O2 } "Ftrapv" { -O2 -ftrapv -DSQLITE_MAX_ATTACHED=125 -DSQLITE_TCL_DEFAULT_FULLMUTEX=1 } "Clang-Sanitize" { CC=clang -fsanitize=undefined -DSQLITE_MAX_ATTACHED=125 -DSQLITE_TCL_DEFAULT_FULLMUTEX=1 } "Unlock-Notify" { -O2 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_THREADSAFE -DSQLITE_TCL_DEFAULT_FULLMUTEX=1 |
︙ | ︙ | |||
115 116 117 118 119 120 121 122 123 124 125 126 127 128 | -DSQLITE_THREADSAFE=2 } "Locking-Style" { -O2 -DSQLITE_ENABLE_LOCKING_STYLE=1 } "OS-X" { -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_THREADSAFE=2 -DSQLITE_OS_UNIX=1 -DSQLITE_ENABLE_LOCKING_STYLE=1 -DUSE_PREAD=1 -DSQLITE_ENABLE_RTREE=1 | > | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | -DSQLITE_THREADSAFE=2 } "Locking-Style" { -O2 -DSQLITE_ENABLE_LOCKING_STYLE=1 } "OS-X" { -O1 # Avoid a compiler bug in gcc 4.2.1 build 5658 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_THREADSAFE=2 -DSQLITE_OS_UNIX=1 -DSQLITE_ENABLE_LOCKING_STYLE=1 -DUSE_PREAD=1 -DSQLITE_ENABLE_RTREE=1 |
︙ | ︙ | |||
162 163 164 165 166 167 168 169 170 171 172 173 174 175 | "Debug-One" "mptest test" "Secure-Delete" test "Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test" "Update-Delete-Limit" test "Extra-Robustness" test "Device-Two" test "Ftrapv" test "No-lookaside" test "Devkit" test "Default" "threadtest fulltest" "Device-One" fulltest } Linux-i686 { "Devkit" test | > | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | "Debug-One" "mptest test" "Secure-Delete" test "Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test" "Update-Delete-Limit" test "Extra-Robustness" test "Device-Two" test "Ftrapv" test "Clang-Sanitize" test "No-lookaside" test "Devkit" test "Default" "threadtest fulltest" "Device-One" fulltest } Linux-i686 { "Devkit" test |
︙ | ︙ | |||
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | # Tcl variable $opts is used to build up the value used to set the # OPTS Makefile variable. Variable $cflags holds the value for # CFLAGS. The makefile will pass OPTS to both gcc and lemon, but # CFLAGS is only passed to gcc. # set cflags "-g" set opts "" foreach arg $config { if {[string match -D* $arg]} { lappend opts $arg } else { lappend cflags $arg } } set cflags [join $cflags " "] set opts [join $opts " "] | > > > | 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | # Tcl variable $opts is used to build up the value used to set the # OPTS Makefile variable. Variable $cflags holds the value for # CFLAGS. The makefile will pass OPTS to both gcc and lemon, but # CFLAGS is only passed to gcc. # set cflags "-g" set opts "" regsub -all {#[^\n]*\n} $config \n config foreach arg $config { if {[string match -D* $arg]} { lappend opts $arg } elseif {[string match CC=* $arg]} { lappend testtarget $arg } else { lappend cflags $arg } } set cflags [join $cflags " "] set opts [join $opts " "] |
︙ | ︙ |