summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-08-04 08:44:54 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-08-04 08:44:54 (GMT)
commit379ea09dbacbe4535cd40fede2eb93c588cfbb1e (patch)
treebe04c0b46257bd67e9b0e2d841fde177510e78a9
parent4eeadf87e2e338544d1311c702d850bfadfb6632 (diff)
Michael ABBOTT reported that populate is not relocatable.
Fix this by determining both the cross-readelf and the sys-root at runtime, not at build time. /trunk/configure | 1 1 0 0 + /trunk/scripts/crosstool.sh | 14 6 8 0 ++++++-------- /trunk/tools/populate.in | 6 4 2 0 ++++-- 3 files changed, 11 insertions(+), 10 deletions(-)
-rwxr-xr-xconfigure1
-rwxr-xr-xscripts/crosstool.sh14
-rw-r--r--tools/populate.in6
3 files changed, 11 insertions, 10 deletions
diff --git a/configure b/configure
index 363ee37..17275bf 100755
--- a/configure
+++ b/configure
@@ -23,6 +23,7 @@ patch
tar
gzip
bzip2
+readlink
'
PREFIX_DEFAULT=/usr/local
diff --git a/scripts/crosstool.sh b/scripts/crosstool.sh
index 2f6660a..aa2105f 100755
--- a/scripts/crosstool.sh
+++ b/scripts/crosstool.sh
@@ -427,9 +427,9 @@ if [ "${CT_ONLY_DOWNLOAD}" != "y" -a "${CT_ONLY_EXTRACT}" != "y" ]; then
# Install the /populator/
CT_DoLog EXTRA "Installing the populate helper"
- sed -r -e 's,@@CT_READELF@@,'"${CT_PREFIX_DIR}/bin/${CT_TARGET}-readelf"',g;' \
- -e 's,@@CT_SYSROOT_DIR@@,'"${CT_SYSROOT_DIR}"',g;' \
- "${CT_LIB_DIR}/tools/populate.in" >"${CT_PREFIX_DIR}/bin/${CT_TARGET}-populate"
+ sed -r -e 's|@@CT_TARGET@@|'"${CT_TARGET}"'|g;' \
+ "${CT_LIB_DIR}/tools/populate.in" \
+ >"${CT_PREFIX_DIR}/bin/${CT_TARGET}-populate"
chmod 755 "${CT_PREFIX_DIR}/bin/${CT_TARGET}-populate"
# Create the aliases to the target tools
@@ -438,15 +438,13 @@ if [ "${CT_ONLY_DOWNLOAD}" != "y" -a "${CT_ONLY_EXTRACT}" != "y" ]; then
for t in "${CT_TARGET}-"*; do
if [ -n "${CT_TARGET_ALIAS}" ]; then
_t=$(echo "$t" |sed -r -e 's/^'"${CT_TARGET}"'-/'"${CT_TARGET_ALIAS}"'-/;')
- CT_DoLog DEBUG "Linking '${_t}' -> '${t}'"
- ln -sv "${t}" "${_t}" 2>&1 |CT_DoLog ALL
+ ln -sv "${t}" "${_t}" 2>&1
fi
if [ -n "${CT_TARGET_ALIAS_SED_EXPR}" ]; then
_t=$(echo "$t" |sed -r -e "${CT_TARGET_ALIAS_SED_EXPR}")
- CT_DoLog DEBUG "Linking '${_t}' -> '${t}'"
- ln -sv "${t}" "${_t}" 2>&1 |CT_DoLog ALL
+ ln -sv "${t}" "${_t}" 2>&1
fi
- done
+ done |CT_DoLog ALL
CT_Popd
CT_EndStep
diff --git a/tools/populate.in b/tools/populate.in
index 7c27f39..00c0c75 100644
--- a/tools/populate.in
+++ b/tools/populate.in
@@ -4,8 +4,10 @@
# (C) 2007 Yann E. MORIN
# Licensed under the GPL v2
-CT_READELF="@@CT_READELF@@"
-CT_SYSROOT_DIR="@@CT_SYSROOT_DIR@@"
+# Detect where the toolchain is:
+BIN_DIR="$(cd "$(dirname "$(readlink -fn "$0")")"; pwd)"
+CT_READELF="${BIN_DIR}/@@CT_TARGET@@-readelf"
+CT_SYSROOT_DIR="${BIN_DIR}/../@@CT_TARGET@@/sys-root"
myname=$(basename "$0")