36 lines
1.4 KiB
Bash
Executable File
36 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Compile Linux libc wrapper for multiple architectures
|
|
# Note: Unlike macOS, Linux does not support creating a single multi-arch .so file via standard tools.
|
|
# This script creates separate .so files for each architecture.
|
|
|
|
# First, check if docker is available on PATH
|
|
if ! command -v docker &> /dev/null
|
|
then
|
|
echo "Docker is not installed. Please install Docker to continue."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Compiling x86..."
|
|
docker run --rm dockcross/linux-x86 > dockcross && chmod +x dockcross
|
|
./dockcross /bin/bash -c '$CC -shared -fPIC -m32 -o libc_wrapper_x86.so linux_libc_wrapper.c'
|
|
|
|
echo "Compiling x64..."
|
|
docker run --rm dockcross/linux-x64 > dockcross && chmod +x dockcross
|
|
./dockcross /bin/bash -c '$CC -shared -fPIC -m64 -o libc_wrapper_x86_64.so linux_libc_wrapper.c'
|
|
|
|
echo "Compiling ARM32..."
|
|
docker run --rm dockcross/linux-armv7 > dockcross && chmod +x dockcross
|
|
./dockcross /bin/bash -c '$CC -shared -fPIC -march=armv7-a -o libc_wrapper_arm32.so linux_libc_wrapper.c'
|
|
|
|
echo "Compiling ARM64..."
|
|
docker run --rm dockcross/linux-arm64 > dockcross && chmod +x dockcross
|
|
./dockcross /bin/bash -c '$CC -shared -fPIC -march=armv8-a -o libc_wrapper_arm64.so linux_libc_wrapper.c'
|
|
|
|
chmod 777 libc_wrapper_x86.so
|
|
chmod 777 libc_wrapper_x86_64.so
|
|
chmod 777 libc_wrapper_arm32.so
|
|
chmod 777 libc_wrapper_arm64.so
|
|
rm dockcross
|
|
echo "Compilation complete. Generated .so files for x86, x86_64, ARM32, and ARM64." |