diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-10-22 13:07:27 +0200 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-11-05 18:13:17 +0100 |
commit | fb2214df0930ed07686ecda84309c1722ce95299 (patch) | |
tree | a309b0997d900b5568c50f7a06fe12df52c1fe0e /scripts | |
parent | 2b18f326648a1fd59d720e464363a7a5596ffe0b (diff) | |
download | OSELAS.Toolchain-fb2214df0930ed07686ecda84309c1722ce95299.tar.gz OSELAS.Toolchain-fb2214df0930ed07686ecda84309c1722ce95299.tar.xz |
[cross-gcc] fix dynamic linking problem with libstdc++OSELAS.Toolchain-1.99.3.5
We must have the 'libstdc++.so' in both '$SYSROOT/usr/lib' and the
compiler's '$TARGET/lib' directory.
If missing in '$TARGET/lib' linking a C++ application with 'g++'
results in linking the 'libstdc++' statically.
If missing in '$SYSROOT/usr/lib' the 'ld' of newer binutils won't find
the libstdc++ under certain circumstances, e.g.: Linking a C application
with 'gcc' against a shared library implemented in C++.
With this patch we move the shared libs to '$SYSROOT/usr/lib' and create
links in '$TARGET/lib'. So that everybody shoud be happy.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/ptxd_abs2rel.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/ptxd_abs2rel.sh b/scripts/ptxd_abs2rel.sh new file mode 100755 index 0000000..d122806 --- /dev/null +++ b/scripts/ptxd_abs2rel.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# +# Copyright (C) 2009 by Marc Kleine-Budde <mkl@pengutronix.de> +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +ptxd_abs2rel() { + local from from_parts to to_parts max orig_IFS + + [ ${#} -eq 2 ] || { echo "supply exactly two paths" >&2; exit 1; } + + from="${1}" + to="${2}" + + orig_IFS="${IFS}" + IFS="/" + from_parts=(${from#/}) + to_parts=(${to#/}) + + if [ ${#from_parts[@]} -gt ${#to_parts[@]} ]; then + max=${#from_parts[@]} + else + max=${#to_parts[@]} + fi + + for ((i = 0; i < ${max}; i++)); do + from="${from_parts[i]}" + to="${to_parts[i]}" + + if [ "${from}" = "${to}" ]; then + unset from_parts[$i] + unset to_parts[$i] + elif [ -n "${from}" ]; then + from_parts[$i]=".." + fi + done + + echo "${from_parts[*]}${from_parts[*]:+/}${to_parts[*]}" + IFS="${orig_IFS}" +} + +ptxd_abs2rel "${@}" |