Skip to content
Snippets Groups Projects
Commit 5d744143 authored by Andrey Mokhov's avatar Andrey Mokhov Committed by Marge Bot
Browse files

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.
parent 48927a9a
No related branches found
No related tags found
No related merge requests found
#!/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
#!/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 ".." \
"$@"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment