summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Mokhov <andrey.mokhov@gmail.com>2019-03-06 13:42:27 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-03-08 05:56:32 -0500
commit5d7441432e4c00a463f645248b354707d7d8335e (patch)
tree331528de9815b47ca782b13e468e9a11afddd910
parent48927a9a1e6b455bdf9dc4d47695795f10fc1988 (diff)
downloadhaskell-5d7441432e4c00a463f645248b354707d7d8335e.tar.gz
Hadrian: Drop remaining symlink traversal code from build scripts
This partly resolves #16325 (https://ghc.haskell.org/trac/ghc/ticket/16325). As previously discussed in https://github.com/snowleopard/hadrian/issues/667, we do not need the symlink traversal code in build scripts. However, it appears we forgot to delete this code from our Stack-based build scripts, which led to placing all build artefacts in an unexpected location when using Hadrian in combination with symlink trees. This commit fixes this.
-rwxr-xr-xhadrian/build.stack.nix.sh32
-rwxr-xr-xhadrian/build.stack.sh38
2 files changed, 6 insertions, 64 deletions
diff --git a/hadrian/build.stack.nix.sh b/hadrian/build.stack.nix.sh
index 59ac061805..b30c114143 100755
--- a/hadrian/build.stack.nix.sh
+++ b/hadrian/build.stack.nix.sh
@@ -1,33 +1,3 @@
#!/usr/bin/env bash
-set -euo pipefail
-
-# readlink on os x, doesn't support -f, to prevent the
-# need of installing coreutils (e.g. through brew, just
-# for readlink, we use the follownig substitute.
-#
-# source: http://stackoverflow.com/a/1116890
-function rl {
- TARGET_FILE="$1"
-
- cd "$(dirname "$TARGET_FILE")"
- TARGET_FILE="$(basename "$TARGET_FILE")"
-
- # Iterate down a (possible) chain of symlinks
- while [ -L "$TARGET_FILE" ]
- do
- TARGET_FILE="$(readlink "$TARGET_FILE")"
- cd "$(dirname "$TARGET_FILE")"
- TARGET_FILE="$(basename "$TARGET_FILE")"
- done
-
- # Compute the canonicalized name by finding the physical path
- # for the directory we're in and appending the target file.
- PHYS_DIR="$(pwd -P)"
- RESULT="$PHYS_DIR/$TARGET_FILE"
- echo "$RESULT"
-}
-
-absoluteRoot="$(dirname "$(rl "$0")")"
-
-HADRIAN_NIX=YES ${absoluteRoot}/build.stack.sh
+HADRIAN_NIX=YES hadrian/build.stack.sh
diff --git a/hadrian/build.stack.sh b/hadrian/build.stack.sh
index 2e6c444077..1f598431e8 100755
--- a/hadrian/build.stack.sh
+++ b/hadrian/build.stack.sh
@@ -1,38 +1,10 @@
#!/usr/bin/env bash
-set -euo pipefail
-
-# readlink on os x, doesn't support -f, to prevent the
-# need of installing coreutils (e.g. through brew, just
-# for readlink, we use the follownig substitute.
-#
-# source: http://stackoverflow.com/a/1116890
-function rl {
- TARGET_FILE="$1"
-
- cd "$(dirname "$TARGET_FILE")"
- TARGET_FILE="$(basename "$TARGET_FILE")"
-
- # Iterate down a (possible) chain of symlinks
- while [ -L "$TARGET_FILE" ]
- do
- TARGET_FILE="$(readlink "$TARGET_FILE")"
- cd "$(dirname "$TARGET_FILE")"
- TARGET_FILE="$(basename "$TARGET_FILE")"
- done
-
- # Compute the canonicalized name by finding the physical path
- # for the directory we're in and appending the target file.
- PHYS_DIR="$(pwd -P)"
- RESULT="$PHYS_DIR/$TARGET_FILE"
- echo "$RESULT"
-}
-
-absoluteRoot="$(dirname "$(rl "$0")")"
-cd "$absoluteRoot"
-
+# Make sure Hadrian is up-to-date
+cd hadrian
stack build --no-library-profiling ${HADRIAN_NIX:+--nix}
-stack exec hadrian -- \
- --directory "$absoluteRoot/.." \
+# Run Hadrian in the top-level GHC directory
+stack exec hadrian -- \
+ --directory ".." \
"$@"