#!/sbin/openrc-run # Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Enable automatic non-native program execution by the kernel. # Defaulting to OC should be safe because it comes down to: # - do we trust the interp itself to not be malicious? yes; we built it. # - do we trust the programs we're running? ish; same permission as native # binaries apply. so if user can do bad stuff natively, cross isn't worse. : ${QEMU_BINFMT_FLAGS:=OC} depend() { after procfs } start() { ebegin "Registering qemu-user binaries (flags: ${QEMU_BINFMT_FLAGS})" if [ ! -d /proc/sys/fs/binfmt_misc ] ; then modprobe -q binfmt_misc fi if [ ! -d /proc/sys/fs/binfmt_misc ] ; then eend 1 "You need support for 'misc binaries' in your kernel!" return fi if [ ! -f /proc/sys/fs/binfmt_misc/register ] ; then mount -t binfmt_misc -o nodev,noexec,nosuid \ binfmt_misc /proc/sys/fs/binfmt_misc >/dev/null 2>&1 eend $? || return fi # Probe the native cpu type so we don't try registering them. local cpu="$(uname -m)" case "${cpu}" in armv[4-9]*) cpu="arm" ;; i386|i486|i586|i686|i86pc|BePC|x86_64) cpu="i386" ;; m68k) cpu="m68k" ;; mips*) cpu="mips" ;; "Power Macintosh"|ppc|ppc64) cpu="ppc" ;; s390*) cpu="s390" ;; sh*) cpu="sh" ;; sparc*) cpu="sparc" ;; esac # Register the interpreter for each cpu except for the native one.