summaryrefslogtreecommitdiffstats
path: root/LICENSE
diff options
context:
space:
mode:
authorTakayuki Matsuoka <t-mat@users.noreply.github.com>2021-05-27 09:03:47 (GMT)
committerTakayuki Matsuoka <t-mat@users.noreply.github.com>2021-05-27 12:02:34 (GMT)
commit0d2570b7c53a7392da4c81fcf6ffa77d4d608119 (patch)
tree8cad89ed9fe180bd51d30155447a1a64baf8eb38 /LICENSE
parent7a966c1511816b53ac93aa2f2a2ff97e036a4a60 (diff)
downloadlz4-0d2570b7c53a7392da4c81fcf6ffa77d4d608119.zip
lz4-0d2570b7c53a7392da4c81fcf6ffa77d4d608119.tar.gz
lz4-0d2570b7c53a7392da4c81fcf6ffa77d4d608119.tar.bz2
Add CC propagation to 'make usan'
The following command doesn't work as intended ``` cd git clone https://github.com/lz4/lz4.git cd lz4 make usan MOREFLAGS='-Wcomma -Werror' ``` ``` Cleaning completed cc: error: unrecognized command line option ‘-Wcomma’; did you mean ‘-Wcomment’? make[3]: *** [<builtin>: ../lib/lz4.o] Error 1 make[2]: *** [Makefile:65: lz4] Error 2 make[1]: *** [Makefile:133: test] Error 2 make: *** [Makefile:158: usan] Error 2 ``` Because the following part of the `Makefile` doesn't propagate `CC`, `CFLAGS` and `LDFLAGS` to child `$(MAKE)` properly. ``` .PHONY: usan usan: CC = clang usan: CFLAGS = -O3 -g -fsanitize=undefined -fno-sanitize-recover=undefined -fsanitize-recover=pointer-overflow usan: LDFLAGS = $(CFLAGS) usan: clean $(MAKE) test FUZZER_TIME="-T30s" NB_LOOPS=-i1 ``` We need explicit propagation for child process ``` - $(MAKE) test FUZZER_TIME="-T30s" NB_LOOPS=-i1 + CC=$(CC) CFLAGS=$(CFLAGS) LDFLAGS=$(LDFLAGS) $(MAKE) test FUZZER_TIME="-T30s" NB_LOOPS=-i1 ``` After that, `make usan` works and it shows expected runtime error. ``` $ make usan MOREFLAGS='-Wcomma -Werror' Cleaning completed ../lib/lz4frame.c:907:25: runtime error: applying non-zero offset 65536 to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../lib/lz4frame.c:907:25 in ../lib/lz4frame.c:907:58: runtime error: applying zero offset to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../lib/lz4frame.c:907:58 in ... ``` Please note that `make usan` is working at travis-ci. Because `.travis.yml` has the following [explicit `compiler:` setting](https://github.com/lz4/lz4/blob/7a966c1511816b53ac93aa2f2a2ff97e036a4a60/.travis.yml#L66). ``` - name: (Trusty) USan test dist: trusty compiler: clang script: - make usan MOREFLAGS=-Wcomma -Werror ```
Diffstat (limited to 'LICENSE')
0 files changed, 0 insertions, 0 deletions