30 lines
756 B
Bash
Executable File
30 lines
756 B
Bash
Executable File
#!/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}" "$@"
|
|
|