Fix mkdirhier.sh on OS X 10.9 (#8139)
authorDarin Morrison <darinmorrison+git@gmail.com>
Thu, 26 Sep 2013 06:08:28 +0000 (00:08 -0600)
committerAustin Seipp <austin@well-typed.com>
Sat, 12 Oct 2013 04:08:00 +0000 (23:08 -0500)
Mac OS X 10.9 mkdir is apparently stricter than the Mac OS X 10.8
mkdir about which paths are considered valid arguments. For example,
in a typical build on Mac OS X 10.9, the first of the following
invocations of mkdirhier.sh will succeed but the second will fail:

"inplace/bin/mkdirhier"   utils/ghc-cabal/dist/build/tmp//.  # WORKS
"inplace/bin/mkdirhier"   bootstrapping/.                    # FAILS

Simply prefixing the path arguments with "./" causes both to succeed:

"inplace/bin/mkdirhier" ./utils/ghc-cabal/dist/build/tmp//.  # WORKS
"inplace/bin/mkdirhier" ./bootstrapping/.                    # WORKS

Testing indicates failure on paths satisfying all of these criteria:

- path is suffixed with "/."
- path is only 1 level deep (e.g., "foo/."; _not_ "foo/bar/.")
- path is _not_ prefixed with "./"

This workaround prefixes "./" to the path argument passed to mkdir.

Signed-off-by: Austin Seipp <austin@well-typed.com>
utils/mkdirhier/mkdirhier.sh

index 4c5d5f7..80762f4 100644 (file)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-mkdir -p ${1+"$@"}
+mkdir -p ${1+"./$@"}