From 3ed77774bd07a85ffedb085d7cfe11809e1d2f0f Mon Sep 17 00:00:00 2001 From: Andrey Mokhov Date: Wed, 6 Mar 2019 13:42:27 +0000 Subject: 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. --- hadrian/build.stack.nix.sh | 32 +------------------------------- hadrian/build.stack.sh | 38 +++++--------------------------------- 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 ".." \ "$@" -- cgit v1.2.1