5002a60f9b
o Introduce private types for use in linux syscalls for two reasons: 1. establish type independence for ease in porting and, 2. provide a visual queue as to which syscalls have proper prototypes to further cleanup the i386/alpha split. Linuxulator types are prefixed by 'l_'. void and char have not been "virtualized". o Provide dummy functions for all syscalls and remove dummy functions or implementations of truely obsolete syscalls. o Sanitize the shm*, sem* and msg* syscalls. o Make a first attempt to implement the linux_sysctl syscall. At this time it only returns one MIB (KERN_VERSION), but most importantly, it tells us when we need to add additional sysctls :-) o Bump the kenel version up to 2.4.2 (this is not the same as the KERN_VERSION MIB, BTW). o Implement new syscalls, of which most are specific to i386. Our syscall table is now up to date with Linux 2.4.2. Some highlights: - Implement the 32-bit uid_t and gid_t bases syscalls. - Implement a couple of 64-bit file size/offset bases syscalls. o Fix or improve numerous syscalls and prototypes. o Reduce style(9) violations while I'm here. Especially indentation inconsistencies within the same file are addressed. Re-indenting did not obfuscate actual changes to the extend that it could not be combined. NOTE: I spend some time testing these changes and found that if there were regressions, they were not caused by these changes AFAICT. It was observed that installing a RH 7.1 runtime environment did make matters worse. Hangs and/or reboots have been observed with and without these changes, so when it failed to make life better in cases it doesn't look like it made it worse.
37 lines
985 B
Makefile
37 lines
985 B
Makefile
# $FreeBSD$
|
|
|
|
MAINTAINER= marcel@FreeBSD.org
|
|
|
|
.PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_ARCH}/linux
|
|
|
|
KMOD= linux
|
|
SRCS= linux_dummy.c linux_file.c linux_getcwd.c linux_ioctl.c linux_ipc.c \
|
|
linux_machdep.c linux_mib.c linux_misc.c linux_signal.c linux_socket.c \
|
|
linux_stats.c linux_sysctl.c linux_sysent.c linux_sysvec.c \
|
|
linux_util.c opt_compat.h opt_linux.h opt_vmpage.h vnode_if.h
|
|
OBJS= linux_locore.o
|
|
|
|
.if ${MACHINE_ARCH} == "i386"
|
|
SRCS+= linux_uid16.c imgact_linux.c
|
|
.endif
|
|
|
|
CLEANFILES= linux_assym.h linux_genassym.o
|
|
|
|
linux_assym.h: linux_genassym.o
|
|
.if exists(@)
|
|
linux_assym.h: @/kern/genassym.sh
|
|
.endif
|
|
sh @/kern/genassym.sh linux_genassym.o > ${.TARGET}
|
|
|
|
linux_locore.o: linux_locore.s linux_assym.h
|
|
${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
|
|
${.IMPSRC} -o ${.TARGET}
|
|
|
|
linux_genassym.o: linux_genassym.c linux.h @ machine
|
|
${CC} -c ${CFLAGS} ${.IMPSRC}
|
|
|
|
opt_compat.h:
|
|
echo "#define COMPAT_43 1" > opt_compat.h
|
|
|
|
.include <bsd.kmod.mk>
|