From d9e898bdbc0828739425b25a6f23da198248f251 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Tue, 2 Jun 2009 17:33:04 +0000 Subject: /devel/gcc-4.4: - add a wrapper to correctly set LD_LIBRARY_PATH to find our companion libraries. -------- diffstat follows -------- /devel/gcc-4.4/scripts/build/internals.sh | 19 19 0 0 +++++++++++++++++++ /devel/gcc-4.4/scripts/wrapper.in | 15 15 0 0 +++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/scripts/build/internals.sh b/scripts/build/internals.sh index acaf864..51272e6 100644 --- a/scripts/build/internals.sh +++ b/scripts/build/internals.sh @@ -4,6 +4,8 @@ # un-wanted files, to add tuple aliases, and to add the final # crosstool-NG-provided files. do_finish() { + local _t + CT_DoStep INFO "Cleaning-up the toolchain's directory" CT_DoLog EXTRA "Removing access to the build system tools" @@ -39,6 +41,23 @@ do_finish() { done CT_Popd + # If using the companion libraries, we need a wrapper + # that will set LD_LIBRARY_PATH approriately + if [ "${CT_GMP_MPFR}" = "y" \ + -o "${CT_PPL_CLOOG_MPC}" = "y" ]; then + CT_DoLog EXTRA "Installing toolchain wrappers" + CT_Pushd "${CT_PREFIX_DIR}/bin" + sed -r -e 's|@@CT_bash@@|'"${bash}"'|g;' \ + "${CT_LIB_DIR}/scripts/wrapper.in" \ + >".${CT_TARGET}-wrapper" + CT_DoExecLog ALL chmod 755 ".${CT_TARGET}-wrapper" + for t in "${CT_TARGET}-"*; do + CT_DoExecLog ALL mv "${t}" ".${t}" + CT_DoExecLog ALL ln ".${CT_TARGET}-wrapper" "${t}" + done + CT_Popd + fi + # Remove the generated documentation files if [ "${CT_REMOVE_DOCS}" = "y" ]; then CT_DoLog EXTRA "Removing installed documentation" diff --git a/scripts/wrapper.in b/scripts/wrapper.in new file mode 100644 index 0000000..70cb5d3 --- /dev/null +++ b/scripts/wrapper.in @@ -0,0 +1,15 @@ +#!@@CT_bash@@ +# There are bashisms on the last line + +dirname="$(dirname "${0}")" +basename="$(basename "${0}")" + +ld_lib_path="$(dirname "${dirname}")/lib" + +case ":${LD_LIBRARY_PATH}:" in + *":${ld_lib_path}:"*) ;; + *) LD_LIBRARY_PATH="${ld_lib_path}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}";; +esac + +export LD_LIBRARY_PATH +exec -a "${basename}" "${dirname}/.${basename}" "$@" -- cgit v0.10.2-6-g49f6