Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/scripts/packaging/appimage/inject-libc-apprun.sh
4251 views
1
#!/usr/bin/env bash
2
3
REQUIRED_GLIBC_VERSION="__REQ_GLIBC_VERSION__"
4
5
this_dir="$(readlink -f "$(dirname "$0")")"
6
7
APPBIN="${this_dir}/usr/bin/__APPNAME__"
8
RUNTIME_DIR="${this_dir}/libc-runtime"
9
LOADER_BIN="${this_dir}/usr/bin/ld-linux"
10
11
GLIBC_VERSION=$(ldd --version | head -1 | sed -e 's/.* \([0-9.]\)/\1/')
12
13
echo "Detected glibc version ${GLIBC_VERSION}."
14
15
if [[ -z "${GLIBC_VERSION}" || ! "${GLIBC_VERSION}" < "${REQUIRED_GLIBC_VERSION}" ]]; then
16
echo "Using system libc/libstdc++."
17
exec "${APPBIN}" "$@"
18
fi
19
20
21
echo "Using bundled libc/libstdc++ from ${RUNTIME_DIR}."
22
if [ -z "$LD_LIBRARY_PATH" ]; then
23
export LD_LIBRARY_PATH="${RUNTIME_DIR}"
24
else
25
export LD_LIBRARY_PATH="${RUNTIME_DIR}:${LD_LIBRARY_PATH}"
26
fi
27
28
exec "${LOADER_BIN}" "${APPBIN}" "$@"
29
30
31