forked from Droid-VM/gh-hugepage-reserve
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker_exec.sh
More file actions
executable file
·40 lines (40 loc) · 1.18 KB
/
docker_exec.sh
File metadata and controls
executable file
·40 lines (40 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
set -e
CLANG_DIR=$(ls -d /opt/ddk/clang/clang-*)
KMI=$(ls /opt/ddk/kdir/)
KDIR="/opt/ddk/kdir/${KMI}"
TAG="$KMI"
export PATH="${CLANG_DIR}/bin:${PATH}"
FAIL=0
BUILD_DIR="/tmp/build"
mkdir -p "$BUILD_DIR"
MAKEFILE_CONTENT=""
for ENTRY in "$@"; do
SRC_FILE="${ENTRY%%:*}"
MOD_NAME="${ENTRY##*:}"
MAKEFILE_CONTENT="${MAKEFILE_CONTENT}obj-m += ${MOD_NAME}.o
"
cp "/src/${SRC_FILE}" "${BUILD_DIR}/${MOD_NAME}.c"
done
printf '%s' "$MAKEFILE_CONTENT" > "${BUILD_DIR}/Makefile"
if make -C "${KDIR}" -j "$(nproc)" M="${BUILD_DIR}" ARCH=arm64 LLVM=1 LLVM_IAS=1 modules; then
for ENTRY in "$@"; do
MOD_NAME="${ENTRY##*:}"
llvm-strip -d "${BUILD_DIR}/${MOD_NAME}.ko"
cp "${BUILD_DIR}/${MOD_NAME}.ko" "/out_${MOD_NAME}/${TAG}.ko"
echo "OK: ${MOD_NAME}@${TAG}"
done
else
FAIL=1
for ENTRY in "$@"; do
MOD_NAME="${ENTRY##*:}"
if [ -f "${BUILD_DIR}/${MOD_NAME}.ko" ]; then
llvm-strip -d "${BUILD_DIR}/${MOD_NAME}.ko"
cp "${BUILD_DIR}/${MOD_NAME}.ko" "/out_${MOD_NAME}/${TAG}.ko"
echo "OK: ${MOD_NAME}@${TAG}"
else
echo "FAIL: ${MOD_NAME}@${TAG}"
fi
done
fi
exit $FAIL