30 lines
756 B
Bash
30 lines
756 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
REQUIRED_GLIBC_VERSION="__REQ_GLIBC_VERSION__"
|
||
|
|
||
|
this_dir="$(readlink -f "$(dirname "$0")")"
|
||
|
|
||
|
APPBIN="${this_dir}/usr/bin/__APPNAME__"
|
||
|
RUNTIME_DIR="${this_dir}/libc-runtime"
|
||
|
LOADER_BIN="${this_dir}/usr/bin/ld-linux"
|
||
|
|
||
|
GLIBC_VERSION=$(ldd --version | head -1 | sed -e 's/.* \([0-9.]\)/\1/')
|
||
|
|
||
|
echo "Detected glibc version ${GLIBC_VERSION}."
|
||
|
|
||
|
if [[ -z "${GLIBC_VERSION}" || ! "${GLIBC_VERSION}" < "${REQUIRED_GLIBC_VERSION}" ]]; then
|
||
|
echo "Using system libc/libstdc++."
|
||
|
exec "${APPBIN}" "$@"
|
||
|
fi
|
||
|
|
||
|
|
||
|
echo "Using bundled libc/libstdc++ from ${RUNTIME_DIR}."
|
||
|
if [ -z "$LD_LIBRARY_PATH" ]; then
|
||
|
export LD_LIBRARY_PATH="${RUNTIME_DIR}"
|
||
|
else
|
||
|
export LD_LIBRARY_PATH="${RUNTIME_DIR}:${LD_LIBRARY_PATH}"
|
||
|
fi
|
||
|
|
||
|
exec "${LOADER_BIN}" "${APPBIN}" "$@"
|
||
|
|