freebsd-nq/sys/modules/linux/Makefile
Marcel Moolenaar c6dfea0ebd Add sysctl variables for the Linuxulator. These reside under `compat.linux' as
discussed on current.

The following variables are defined (for now):

    osname (defaults to "Linux")
        Allow users to change the name of the OS as returned by uname(2),
        specially added for all those Linux Netscape users and statistics
        maniacs :-) We now have what we all wanted!

    osrelease (defaults to "2.2.5")
        Allow users to change the version of the OS as returned by uname(2).
        Since -current supports glibc2.1 now, change the default to 2.2.5
        (was 2.0.36).

    oss_version (defaults to 198144 [0x030600])
        This one will be used by the OSS_GETVERSION ioctl (PR 12917) which I
        can commit now that we have the MIB. The default version number is the
        lowest version possible with the current 'encoding'.

A note about imprisoned processes (see jail(2)):
  These variables are copy-on-write (as suggested by phk). This means that
  imprisoned processes will use the system wide value unless it is written/set
  by the process. From that moment on, a copy local to the prison will be
  used.

A note about the implementation:
  I choose to add a single pointer to struct prison, because I didn't like the
  idea of changing struct prison every time I come up with a new variable. As
  a side effect, the extra storage is only needed when a variable is set from
  within the prison. This also minimizes kernel bloat when the Linuxulator is
  not used; both compiled in or as a module.

Reviewed by: bde (first version only) and phk
1999-08-27 19:47:41 +00:00

43 lines
1.2 KiB
Makefile

# $Id: Makefile,v 1.25 1999/01/26 21:29:01 julian Exp $
.PATH: ${.CURDIR}/../../i386/linux
KMOD= linux
SRCS= linux_file.c linux_ioctl.c linux_misc.c linux_signal.c \
linux_ipc.c linux_socket.c linux_stats.c linux_mib.c \
linux_dummy.c linux_sysent.c linux_sysvec.c linux_util.c \
imgact_linux.c opt_compat.h opt_linux.h opt_vmpage.h vnode_if.h
OBJS= linux_locore.o
MAN8= linux.8
CFLAGS+= -DCOMPAT_LINUX -DVM_STACK #-DDEBUG
EXPORT_SYMS=_linux_mod
CLEANFILES+= vnode_if.h vnode_if.c linux_genassym.o linux_genassym \
linux_assym.h opt_compat.h opt_linux.h opt_vmpage.h
build-tools: linux_genassym
linux_assym.h: linux_genassym
./linux_genassym > linux_assym.h
linux_locore.o: linux_locore.s linux_assym.h
${CC} -c -x assembler-with-cpp -DLOCORE -DKERNEL ${CFLAGS} \
${.IMPSRC} -o ${.TARGET}
linux_genassym.o: linux_genassym.c linux.h @ machine
${CC} -c ${CFLAGS} -UKERNEL ${.IMPSRC}
linux_genassym: linux_genassym.o
${CC} -static ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
opt_compat.h:
echo "#define COMPAT_43 1" > opt_compat.h
opt_linux.h opt_vmpage.h:
touch ${.TARGET}
afterinstall:
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
${.CURDIR}/linux.sh ${DESTDIR}/usr/bin/linux
.include <bsd.kmod.mk>