scripts: bundle-libraries.sh: support mixing 32bit and 64bit binaries

SVN-Revision: 35349
This commit is contained in:
Jo-Philipp Wich 2013-01-28 15:54:27 +00:00
parent 839f3ab0e7
commit 509f39a10a

View file

@ -1,9 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Script to install host system binaries along with required libraries. # Script to install host system binaries along with required libraries.
# Refer to the --help output for more information.
# #
# Copyright (C) 2012 Jo-Philipp Wich <jow@openwrt.org> # Copyright (C) 2012-2013 Jo-Philipp Wich <jow@openwrt.org>
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -90,17 +89,19 @@ for BIN in "$@"; do
if [ -n "$LDSO" ]; then if [ -n "$LDSO" ]; then
_cp "$BIN" "$DIR/bundled/${BIN##*/}" _cp "$BIN" "$DIR/bundled/${BIN##*/}"
[ -x "$DIR/bundled/run.sh" ] || { RUN="${LDSO#ld-}"; RUN="run-${RUN%%.so*}.sh"
cat <<-EOF > "$DIR/bundled/run.sh"
[ -x "$DIR/bundled/$RUN" ] || {
cat <<-EOF > "$DIR/bundled/$RUN"
#!/usr/bin/env bash #!/usr/bin/env bash
dir="\$(dirname "\$0")" dir="\$(dirname "\$0")"
bin="\$(basename "\$0")" bin="\$(basename "\$0")"
exec -a "\$0" "\$dir/bundled/lib/$LDSO" --library-path "\$dir/bundled/lib" "\$dir/bundled/\$bin" "\$@" exec -a "\$0" "\$dir/bundled/lib/$LDSO" --library-path "\$dir/bundled/lib" "\$dir/bundled/\$bin" "\$@"
EOF EOF
chmod ${VERBOSE:+-v} 0755 "$DIR/bundled/run.sh" chmod ${VERBOSE:+-v} 0755 "$DIR/bundled/$RUN"
} }
_ln "./bundled/run.sh" "$DIR/${BIN##*/}" _ln "./bundled/$RUN" "$DIR/${BIN##*/}"
# is a static executable or non-elf binary # is a static executable or non-elf binary
else else