diff --git a/other/docker/slimcc/creduce.sh b/other/docker/slimcc/creduce.sh new file mode 100755 index 0000000000..853b2a69b0 --- /dev/null +++ b/other/docker/slimcc/creduce.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +if ! gcc -I/work/c-toxcore/toxcore -fsyntax-only crash.c; then + exit 1 +fi +/work/slimcc/slimcc -I/work/c-toxcore/toxcore -c crash.c 2>&1 | grep "file_exists: Assertion" diff --git a/other/docker/slimcc/slimcc.Dockerfile b/other/docker/slimcc/slimcc.Dockerfile index 8cfcde002a..ed205acf06 100644 --- a/other/docker/slimcc/slimcc.Dockerfile +++ b/other/docker/slimcc/slimcc.Dockerfile @@ -15,12 +15,28 @@ RUN apt-get update && \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* +# Uncomment this to find bugs in slimcc using creduce. +#RUN apt-get update && \ +# DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \ +# creduce \ +# && apt-get clean \ +# && rm -rf /var/lib/apt/lists/* + WORKDIR /work/slimcc -RUN ["git", "clone", "--depth=1", "https://github.com/fuhsnn/slimcc", "/work/slimcc"] -RUN ["make", "CFLAGS=-O3"] +RUN ["git", "clone", "https://github.com/fuhsnn/slimcc", "/work/slimcc"] +# Comment this to checkout master (e.g. to find bugs using creduce). +RUN ["git", "checkout", "ac9ddf4d39642e6b4880b1a73e19c6f2769d857e"] +RUN ["make", "CFLAGS=-O3", "-j4"] WORKDIR /work/c-toxcore COPY --from=sources /src/ /work/c-toxcore + +# Uncomment this to find bugs in slimcc using creduce. +#COPY other/docker/slimcc/creduce.sh /work/c-toxcore/other/docker/slimcc/ +#RUN cp toxcore/ccompat.h crash.c \ +# && other/docker/slimcc/creduce.sh \ +# && creduce other/docker/slimcc/creduce.sh crash.c + COPY other/docker/slimcc/Makefile /work/c-toxcore/ RUN ["make"]