diff options
author | Dmitry Chagin <dchagin@FreeBSD.org> | 2015-05-24 16:07:11 +0000 |
---|---|---|
committer | Dmitry Chagin <dchagin@FreeBSD.org> | 2015-05-24 16:07:11 +0000 |
commit | b2f587918da62b013eb5fc4fc36cf747a6394a3f (patch) | |
tree | 35df2c514a1dae4de7326c9bdbac37a088358088 /sys/modules/linux64 | |
parent | 0edc82b564a36333a1ba6f4835de35bf0406d9d7 (diff) | |
download | src-b2f587918da62b013eb5fc4fc36cf747a6394a3f.tar.gz src-b2f587918da62b013eb5fc4fc36cf747a6394a3f.zip |
Add preliminary support for x86-64 Linux binaries.
Differential Revision: https://reviews.freebsd.org/D1076
Notes
Notes:
svn path=/head/; revision=283424
Diffstat (limited to 'sys/modules/linux64')
-rw-r--r-- | sys/modules/linux64/Makefile | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/sys/modules/linux64/Makefile b/sys/modules/linux64/Makefile new file mode 100644 index 000000000000..40ae87387446 --- /dev/null +++ b/sys/modules/linux64/Makefile @@ -0,0 +1,55 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_ARCH}/linux + +VDSO= linux_vdso + +KMOD= linux64 +SRCS= linux_fork.c linux_dummy.c linux_file.c \ + linux_futex.c linux_getcwd.c linux_ioctl.c linux_ipc.c \ + linux_machdep.c linux_misc.c linux_signal.c \ + linux_socket.c linux_stats.c linux_sysctl.c linux_sysent.c \ + linux_sysvec.c linux_time.c linux_vdso.c linux_timer.c \ + opt_inet6.h opt_compat.h opt_kdtrace.h opt_posix.h opt_usb.h \ + vnode_if.h device_if.h bus_if.h assym.s \ + linux_support.s +DPSRCS= linux_genassym.c + +# XXX: for assym.s +SRCS+= opt_kstack_pages.h opt_nfs.h opt_apic.h opt_hwpmc_hooks.h + +CLEANFILES= linux_assym.h linux_genassym.o linux_locore.o + +OBJS= ${VDSO}.so + +linux_assym.h: linux_genassym.o + sh ${SYSDIR}/kern/genassym.sh linux_genassym.o > ${.TARGET} + +linux_locore.o: linux_locore.s linux_assym.h + ${CC} -x assembler-with-cpp -DLOCORE -shared -mcmodel=small \ + -pipe -I. -I${SYSDIR} -Werror -Wall -fno-common -nostdinc \ + -Wl,-T${.CURDIR}/../../${MACHINE_CPUARCH}/linux/${VDSO}.lds.s \ + -Wl,-soname=${VDSO}.so.1,-fPIC,-warn-common -nostdlib \ + ${.IMPSRC} -o ${.TARGET} + +${VDSO}.so: linux_locore.o + ${OBJCOPY} --input binary --output elf64-x86-64-freebsd \ + -S -g --binary-architecture i386:x86-64 linux_locore.o ${.TARGET} + +linux_support.o: assym.s linux_assym.h + ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ + ${.IMPSRC} -o ${.TARGET} + +linux_genassym.o: + ${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC} + +.if !defined(KERNBUILDDIR) +.if defined(DEBUG) +CFLAGS+=-DDEBUG +.endif +.if defined(KTR) +CFLAGS+=-DKTR +.endif +.endif + +.include <bsd.kmod.mk> |