When libtool support was added to configure, the new temporary files were left out of the list of files cleaned up on exit; this results in a lot of stale .lo files being left around in /tmp. Worse, libtool creates a /tmp/.libs directory which we can't easily clean up.
Put all our temporary files in a single temporary directory created via mktemp -d, so we can easily clean it up. This has the bonus result that we no longer use $RANDOM (which silently expands to the empty string if your shell is not bash, and so is pretty useless). Note that because we now use mktemp's tempdir-finding logic rather than handrolling it, we no longer honour TEMPDIR (only TMPDIR). Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> --- I don't know why we were looking at TEMPDIR; that code was in there from the initial commit by Fabrice back in 2003... configure | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/configure b/configure index 870c939..84c600f 100755 --- a/configure +++ b/configure @@ -2,26 +2,25 @@ # # qemu configure script (c) 2003 Fabrice Bellard # -# set temporary file name -if test ! -z "$TMPDIR" ; then - TMPDIR1="${TMPDIR}" -elif test ! -z "$TEMPDIR" ; then - TMPDIR1="${TEMPDIR}" -else - TMPDIR1="/tmp" + +TMPDIR1=$(mktemp -t -d) +if [ $? -ne 0 ]; then + echo "ERROR: failed to create temporary directory" + exit 1 fi -TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" -TMPB="qemu-conf-${RANDOM}-$$-${RANDOM}" +TMPB="qemu-conf" +TMPC="${TMPDIR1}/${TMPB}.c" TMPO="${TMPDIR1}/${TMPB}.o" TMPCXX="${TMPDIR1}/${TMPB}.cxx" TMPL="${TMPDIR1}/${TMPB}.lo" TMPA="${TMPDIR1}/lib${TMPB}.la" -TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe" +TMPE="${TMPDIR1}/${TMPB}.exe" # NB: do not call "exit" in the trap handler; this is buggy with some shells; # see <1285349658-3122-1-git-send-email-loic.min...@linaro.org> -trap "rm -f $TMPC $TMPO $TMPCXX $TMPE" EXIT INT QUIT TERM +trap "rm -rf ${TMPDIR1}" EXIT INT QUIT TERM + rm -f config.log # Print a helpful header at the top of config.log -- 1.9.2