The GCC 6 (tested with GCC 6.3) preprocessor includes the current
working directory in the preprocessed output if run with -gz, which
means that there won’t be cache hits between directories, thus failing
the “Directory is not hashed if using -gz[=zlib]” tests. Fix this by
skipping the test if the preprocessor behaves that way.
Fixes #602.
# -------------------------------------------------------------------------
TEST "Directory is not hashed if using -gz"
- if $REAL_COMPILER -c test1.c -gz -o /dev/null 2>/dev/null; then
+ $REAL_COMPILER -E test1.c -gz >preprocessed.i 2>/dev/null
+ if [ -s preprocessed.i ] && ! fgrep -q $PWD preprocessed.i; then
mkdir dir1 dir2
cp test1.c dir1
cp test1.c dir2
# -------------------------------------------------------------------------
TEST "Directory is not hashed if using -gz=zlib"
- if $REAL_COMPILER -c test1.c -gz=zlib -o /dev/null 2>/dev/null; then
+ $REAL_COMPILER -E test1.c -gz=zlib >preprocessed.i 2>/dev/null
+ if [ -s preprocessed.i ] && ! fgrep -q $PWD preprocessed.i; then
mkdir dir1 dir2
cp test1.c dir1
cp test1.c dir2