diff --git a/pkgs/development/compilers/qbe/001-dont-hardcode-tmp.patch b/pkgs/development/compilers/qbe/001-dont-hardcode-tmp.patch new file mode 100644 index 000000000000..556dc5aab2a6 --- /dev/null +++ b/pkgs/development/compilers/qbe/001-dont-hardcode-tmp.patch @@ -0,0 +1,43 @@ +diff --git a/minic/mcc b/minic/mcc +index 492947e..5258aac 100755 +--- a/minic/mcc ++++ b/minic/mcc +@@ -31,9 +31,9 @@ then + fi + + +-$DIR/minic < $file > /tmp/minic.ssa && +-$QBE < /tmp/minic.ssa > /tmp/minic.s && +-cc /tmp/minic.s $flags ++$DIR/minic < $file > ${TMPDIR:-/tmp}/minic.ssa && ++$QBE < ${TMPDIR:-/tmp}/minic.ssa > ${TMPDIR:-/tmp}/minic.s && ++cc ${TMPDIR:-/tmp}/minic.s $flags + + if test $? -ne 0 + then +diff --git a/tools/cra.sh b/tools/cra.sh +index 5988267..57a4b34 100755 +--- a/tools/cra.sh ++++ b/tools/cra.sh +@@ -2,7 +2,7 @@ + + DIR=`cd $(dirname "$0"); pwd` + QBE=$DIR/../qbe +-BUGF=/tmp/bug.id ++BUGF=${TMPDIR:-/tmp}/bug.id + FIND=$1 + FIND=${FIND:-afl-find} + +diff --git a/tools/test.sh b/tools/test.sh +index 23c6663..fb36222 100755 +--- a/tools/test.sh ++++ b/tools/test.sh +@@ -4,7 +4,7 @@ dir=`dirname "$0"` + bin=$dir/../qbe + binref=$dir/../qbe.ref + +-tmp=/tmp/qbe.zzzz ++tmp=${TMPDIR:-/tmp}/qbe.zzzz + + drv=$tmp.c + asm=$tmp.s diff --git a/pkgs/development/compilers/qbe/default.nix b/pkgs/development/compilers/qbe/default.nix index d9694c9b4bce..aeb739bb84d0 100644 --- a/pkgs/development/compilers/qbe/default.nix +++ b/pkgs/development/compilers/qbe/default.nix @@ -16,6 +16,14 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; + enableParallelBuilding = true; + + patches = [ + # Use "${TMPDIR:-/tmp}" instead of the latter directly + # see + ./001-dont-hardcode-tmp.patch + ]; + passthru = { tests.can-run-hello-world = callPackage ./test-can-run-hello-world.nix { }; };