Nathanael Nerode <[EMAIL PROTECTED]> writes: > +# Solaris 8's mkdir -p isn't thread-safe! If you mkdir -p a/b and > +# mkdir -p a/c at the same time, both will detect that a is missing, > +# one will create a, then the other will try to create a and die with > +# a "File exists" error. So we have to disable this code on Solaris 8. > +# > +#case $dirmode in > +# '') > +# if mkdir -p -- . 2>/dev/null; then > +# echo "mkdir -p -- $*" > +# exec mkdir -p -- "$@" > +# fi > +# ;; > +# *) > +# if mkdir -m "$dirmode" -p -- . 2>/dev/null; then > +# echo "mkdir -m $dirmode -p -- $*" > +# exec mkdir -m "$dirmode" -p -- "$@" > +# fi > +# ;; > +#esac
Does anybody see a way to disable this only when needed? An idea would be to skip this code if 1. " -$MAKEFLAGS" matches `" "-[BdeikrRsSw]*j' or `" "---?jobs' and 2. `mkdir -p --help' doesn't work. That way we would always GNU's mkdir -p, and we would ignore other mkdir -p implementations only in parallel builds. Unfortunately, the problem is not only in mkinstalldirs, it is also in AM_PROG_MKDIR_P, and we cannot check $MAKEFLAGS there. I presume we will end up setting `mkdir_p = mkdir -p' only if mkdir supports --help. I find this quite frustrating. If you consider a system such as Solaris 8, whose make does not support parallel builds, there is no reason not to use `mkdir -p'. The problem only exist when users mix tools, doesn't it? It's a bit of a shame, we have to disable `mkdir -p' everywhere because of such setups. Other ideas? -- Alexandre Duret-Lutz