Module Name: src Committed By: christos Date: Wed Nov 12 02:19:28 UTC 2014
Modified Files: src/share/mk: bsd.kmodule.mk Log Message: Enable dynamic link script generation to handle __{start,stop}_link_set_* via a variable; perhaps delete the variable and always do it? To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 src/share/mk/bsd.kmodule.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/mk/bsd.kmodule.mk diff -u src/share/mk/bsd.kmodule.mk:1.46 src/share/mk/bsd.kmodule.mk:1.47 --- src/share/mk/bsd.kmodule.mk:1.46 Thu Nov 6 07:05:44 2014 +++ src/share/mk/bsd.kmodule.mk Tue Nov 11 21:19:28 2014 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.kmodule.mk,v 1.46 2014/11/06 12:05:44 uebayasi Exp $ +# $NetBSD: bsd.kmodule.mk,v 1.47 2014/11/12 02:19:28 christos Exp $ # We are not building this with PIE MKPIE=no @@ -11,6 +11,7 @@ MKPIE=no realinstall: kmodinstall KERN= $S/kern +MKLDSCRIPT?= no CFLAGS+= -ffreestanding ${COPTS} CPPFLAGS+= -nostdinc -I. -I${.CURDIR} -isystem $S -isystem $S/arch @@ -72,9 +73,14 @@ DPSRCS+= ${_YKMSRCS} CLEANFILES+= ${_YKMSRCS} .if exists($S/../sys/modules/xldscripts/kmodule) -KMODSCRIPT= $S/../sys/modules/xldscripts/kmodule +KMODSCRIPTSRC= $S/../sys/modules/xldscripts/kmodule .else -KMODSCRIPT= ${DESTDIR}/usr/libdata/ldscripts/kmodule +KMODSCRIPTSRC= ${DESTDIR}/usr/libdata/ldscripts/kmodule +.endif +.if ${MKLDSCRIPT} == "yes" +KMODSCRIPT= kldscript +.else +KMODSCRIPT= ${KMODSCRIPTSRC} .endif PROG?= ${KMOD}.kmod @@ -102,6 +108,9 @@ ${XOBJS}: ${DPSRCS} ${PROG}: ${XOBJS} ${XSRCS} ${DPSRCS} ${DPADD} ${_MKTARGET_LINK} +.if ${MKLDSCRIPT} == "yes" + $S/conf/mkldscript.sh ${KMODSCRIPTSRC} ${XOBJS} > ${KMODSCRIPT} +.endif ${CC} ${LDFLAGS} -nostdlib -MD -combine -r -Wl,-T,${KMODSCRIPT},-d \ -Wl,-Map=${.TARGET}.map \ -o ${.TARGET} ${CFLAGS} ${CPPFLAGS} ${XOBJS} \ @@ -151,6 +160,11 @@ ${PROG}: ${KMOD}_tmp.o ${KMOD}_tramp.o .else ${PROG}: ${OBJS} ${DPADD} ${_MKTARGET_LINK} +.if ${MKLDSCRIPT} == "yes" + @rm -f ${KMODSCRIPT} + @OBJDUMP=${OBJDUMP} $S/conf/mkldscript.sh ${KMODSCRIPTSRC} ${OBJS} \ + > ${KMODSCRIPT} +.endif ${CC} ${LDFLAGS} -nostdlib -r -Wl,-T,${KMODSCRIPT},-d \ -Wl,-Map=${.TARGET}.map \ -o ${.TARGET} ${OBJS} @@ -200,6 +214,9 @@ kmodinstall:: ${_PROG} ##### Clean rules CLEANFILES+= a.out [Ee]rrs mklog core *.core ${PROG} ${OBJS} ${LOBJS} CLEANFILES+= ${PROG}.map +.if ${MKLDSCRIPT} == "yes" +CLEANFILES+= kldscript +.endif ##### Custom rules lint: ${LOBJS}