Skip to content

Commit d52c9ca

Browse files
committed
allow to enable sanitizer for any OPT type
- there is no real reason to allow this for dbg only - just having it disabled for opt builds by default is important, but it is disabled always now by default anyway - fix default in docu
1 parent 5df1929 commit d52c9ca

File tree

5 files changed

+56
-56
lines changed

5 files changed

+56
-56
lines changed

INSTALL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ In your SCIP main directory, enter `make [options]` with the following options:
340340
| `OSTYPE` | `[linux, darwin, cygwin, irix, windows, mingw]` | the operating system: try to autedetect |
341341
| `PAPILO=false` | `[false, true]` | to disable or disable the MILP presolver based on the presolving library PaPILO |
342342
| `READLINE=true` | `[true, false]` | to enable or disable readline library for interactive shell |
343-
| `SANITIZE=true` | `[true, false, thread, address, memory]` | sanitizers to enable: SANITIZE not set to false enables undefined-behavior sanitizer, SANITIZE=thread enables thread sanitizer, SANITIZE=address enables address sanitizer, SANITIZE=memory enables memory sanitizer (clang only); only used if OPT=dbg |
343+
| `SANITIZE=false` | `[true, false, thread, address, memory]` | sanitizers to enable: SANITIZE not set to false enables undefined-behavior sanitizer, SANITIZE=thread enables also thread sanitizer, SANITIZE=address enables also address sanitizer, SANITIZE=memory enables also memory sanitizer (clang only); Linux clang/gcc only |
344344
| `SHARED=false` | `[false, true]` | to suppress or create shared libraries (only Gnu compiler) |
345345
| `SYM=none` | `[none, nauty, snauty, bliss, sbliss, dejavu]` | to choose method for computing symmetries in mixed nonlinear integer programs |
346346
| `TPI=none` | `[none, omp, tny]` | to disable the task processing interface or use it with the openmp or tinycthreads interface for concurrent solves |

make/make.linux.clang

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,32 @@ ifeq ($(SHARED),true)
2424
FLAGS += -fPIC
2525
endif
2626
LINK_shared = -shared
27+
28+
# Enable sanitizers (http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation).
29+
30+
# enable ThreadSanitizer (http://clang.llvm.org/docs/ThreadSanitizer.html)
31+
ifeq ($(SANITIZE),thread)
32+
SANITIZERFLAGS = -g -fsanitize=thread
33+
endif
34+
35+
# enable AddressSanitizer (http://clang.llvm.org/docs/AddressSanitizer.html)
36+
ifeq ($(SANITIZE),address)
37+
SANITIZERFLAGS = -g -fsanitize=address
38+
endif
39+
40+
# enable MemorySanitizer (http://clang.llvm.org/docs/MemorySanitizer.html)
41+
ifeq ($(SANITIZE),memory)
42+
SANITIZERFLAGS = -g -fsanitize=memory
43+
endif
44+
45+
# UndefinedBehaviorSanitizer if SANITIZE is true, thread, address, or memory
46+
ifneq ($(filter $(SANITIZE),true thread address memory),)
47+
SANITIZERFLAGS += -g -fsanitize=undefined -fsanitize=float-cast-overflow -fsanitize=float-divide-by-zero
48+
endif
49+
50+
CFLAGS += $(SANITIZERFLAGS)
51+
CXXFLAGS += $(SANITIZERFLAGS)
52+
LDFLAGS += $(SANITIZERFLAGS)
53+
ifeq ($(SHARED),true)
54+
LIBBUILDFLAGS += $(SANITIZERFLAGS)
55+
endif

make/make.linux.clang.dbg

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,3 @@ FLAGS += -DSCIP_ROUNDING_FE
22
OFLAGS += -O0 -g
33
CFLAGS += $(GCCWARN)
44
CXXFLAGS += $(GXXWARN)
5-
6-
# Enable sanitizers (http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation).
7-
8-
# enable ThreadSanitizer (http://clang.llvm.org/docs/ThreadSanitizer.html)
9-
ifeq ($(SANITIZE),thread)
10-
SANITIZERFLAGS = -fsanitize=thread
11-
endif
12-
13-
# enable AddressSanitizer (http://clang.llvm.org/docs/AddressSanitizer.html)
14-
ifeq ($(SANITIZE),address)
15-
SANITIZERFLAGS = -fsanitize=address
16-
endif
17-
18-
# enable MemorySanitizer (http://clang.llvm.org/docs/MemorySanitizer.html)
19-
ifeq ($(SANITIZE),memory)
20-
SANITIZERFLAGS = -fsanitize=memory
21-
endif
22-
23-
# UndefinedBehaviorSanitizer if SANITIZE is true, thread, address, or memory
24-
ifneq ($(filter $(SANITIZE),true thread address memory),)
25-
SANITIZERFLAGS += -fsanitize=undefined -fsanitize=float-cast-overflow -fsanitize=float-divide-by-zero
26-
endif
27-
28-
CFLAGS += $(SANITIZERFLAGS)
29-
CXXFLAGS += $(SANITIZERFLAGS)
30-
LDFLAGS += $(SANITIZERFLAGS)
31-
ifeq ($(SHARED),true)
32-
LIBBUILDFLAGS += $(SANITIZERFLAGS)
33-
endif

make/make.linux.gnu

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,29 @@ ifeq ($(SHARED),true)
1616
FLAGS += -fPIC
1717
endif
1818
LINK_shared = -shared
19+
20+
# ThreadSanitizer (https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual)
21+
ifeq ($(SANITIZE),thread)
22+
SANITIZERFLAGS = -g -fsanitize=thread
23+
endif
24+
25+
# AddressSanitizer (https://github.com/google/sanitizers/wiki/AddressSanitizer)
26+
ifeq ($(SANITIZE),address)
27+
SANITIZERFLAGS = -g -fsanitize=address
28+
endif
29+
30+
ifeq ($(SANITIZE),memory)
31+
$(warning Memory Sanitizer not available with GCC)
32+
endif
33+
34+
# UndefinedBehaviorSanitizer if SANITIZE is true, thread, address, or memory
35+
ifneq ($(filter $(SANITIZE),true thread address memory),)
36+
SANITIZERFLAGS += -g -fsanitize=undefined -fsanitize=float-cast-overflow -fsanitize=float-divide-by-zero
37+
endif
38+
39+
CFLAGS += $(SANITIZERFLAGS)
40+
CXXFLAGS += $(SANITIZERFLAGS)
41+
LDFLAGS += $(SANITIZERFLAGS)
42+
ifeq ($(SHARED),true)
43+
LIBBUILDFLAGS += $(SANITIZERFLAGS)
44+
endif

make/make.linux.gnu.dbg

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,3 @@ FLAGS += -DSCIP_ROUNDING_FE
22
OFLAGS += -O0 -g
33
CFLAGS += $(GCCWARN) -funit-at-a-time
44
CXXFLAGS += $(GXXWARN) -funit-at-a-time
5-
6-
# ThreadSanitizer (https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual)
7-
ifeq ($(SANITIZE),thread)
8-
SANITIZERFLAGS = -fsanitize=thread
9-
endif
10-
11-
# AddressSanitizer (https://github.com/google/sanitizers/wiki/AddressSanitizer)
12-
ifeq ($(SANITIZE),address)
13-
SANITIZERFLAGS = -fsanitize=address
14-
endif
15-
16-
ifeq ($(SANITIZE),memory)
17-
$(warning Memory Sanitizer not available with GCC)
18-
endif
19-
20-
# UndefinedBehaviorSanitizer if SANITIZE is true, thread, address, or memory
21-
ifneq ($(filter $(SANITIZE),true thread address memory),)
22-
SANITIZERFLAGS += -fsanitize=undefined -fsanitize=float-cast-overflow -fsanitize=float-divide-by-zero
23-
endif
24-
25-
CFLAGS += $(SANITIZERFLAGS)
26-
CXXFLAGS += $(SANITIZERFLAGS)
27-
LDFLAGS += $(SANITIZERFLAGS)
28-
ifeq ($(SHARED),true)
29-
LIBBUILDFLAGS += $(SANITIZERFLAGS)
30-
endif

0 commit comments

Comments
 (0)