scripts/wrapper.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 29 00:15:32 2010 +0200 (2010-03-29)
changeset 1864 758d5137fe87
parent 1402 146c62142e1b
child 1960 8307ceabe5c0
permissions -rw-r--r--
scripts/populate: optimise search loop

Curently, populate will iterate over all ELF (shared objects|executables)
to look for missing NEEDED DSOs, adding to the list at every iterations
of the search loop.

Instead of looking again at previously handled ELF files, recursively
resolve every ELf files.

Also, in case there are a whole lot of files (more than the shell can
accept as arguments list, or creating a command line longer than the
shell can cope with), use a temporary file with the list of files
to search for missing dependencies.
yann@1402
     1
#!/bin/sh
yann@1401
     2
bartvdrmeulen@1434
     3
canonicalizedname=$(readlink -nm "${0}")
bartvdrmeulen@1434
     4
dirname="$(dirname "${canonicalizedname}")"
bartvdrmeulen@1434
     5
basename="$(basename "${canonicalizedname}")"
yann@1401
     6
yann@1401
     7
ld_lib_path="$(dirname "${dirname}")/lib"
yann@1401
     8
yann@1401
     9
case ":${LD_LIBRARY_PATH}:" in
yann@1401
    10
    *":${ld_lib_path}:"*)   ;;
yann@1401
    11
    *)  LD_LIBRARY_PATH="${ld_lib_path}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}";;
yann@1401
    12
esac
yann@1401
    13
yann@1401
    14
export LD_LIBRARY_PATH
yann@1402
    15
exec "${dirname}/.${basename}" "$@"