58 lines
1.1 KiB
Plaintext
58 lines
1.1 KiB
Plaintext
|
#!/bin/sh
|
||
|
#
|
||
|
# OVERVIEW
|
||
|
#
|
||
|
# System Sanity Check
|
||
|
#
|
||
|
# DESCRIPTION
|
||
|
#
|
||
|
# This script is launched at the start of Makefile to detect if
|
||
|
# binfmt_misc was tuned to launch 'MZ' shell scripts under WINE
|
||
|
|
||
|
if [ x`uname -s` != xLinux ]; then
|
||
|
cat <<'EOF' >&2
|
||
|
|
||
|
ERROR
|
||
|
|
||
|
Want Linux Build Environment
|
||
|
|
||
|
DETAILS
|
||
|
|
||
|
Cosmopolitan builds binaries that run on all major platforms.
|
||
|
You need to compile them on Linux, using any distro you like.
|
||
|
Consider setting up Alpine, Debian, or Ubuntu in a VMWare VM.
|
||
|
|
||
|
EOF
|
||
|
kill $1
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
build/sanitycheck2
|
||
|
if [ $? -ne 123 ]; then
|
||
|
cat <<'EOF' >&2
|
||
|
|
||
|
ERROR
|
||
|
|
||
|
Thompson Shell Backwards Compatibility Issue Detected
|
||
|
|
||
|
DETAILS
|
||
|
|
||
|
Actually Portable Executable assumes stock Linux configuration.
|
||
|
Normal behavior is non-ELF files with x bit are run by /bin/sh.
|
||
|
Linux lets people globally define arbitrary magic interpreters.
|
||
|
Your computer couldve been tuned to run MZ scripts inside WINE.
|
||
|
So if you use binfmt_misc you need to explicitly register this.
|
||
|
|
||
|
WORKAROUND
|
||
|
|
||
|
sudo sh -c "echo ':APE:M::MZqFpD::/bin/sh:' >/proc/sys/fs/binfmt_misc/register"
|
||
|
|
||
|
SEE ALSO
|
||
|
|
||
|
https://justine.storage.googleapis.com/ape.html
|
||
|
|
||
|
EOF
|
||
|
kill $1
|
||
|
exit 1
|
||
|
fi
|