--- src/sys/conf/kmod.mk 2018-10-08 15:11:06.651541000 +0000 +++ src/sys/conf/kmod.mk 2018-10-10 15:03:08.046306000 +0000 @@ -242,7 +242,16 @@ ${KMOD}.kld: ${OBJS} .else ${FULLPROG}: ${OBJS} .endif +.if !defined(FIRMWS) && (${MACHINE_CPUARCH} == "i386") + ${LD} -m ${LD_EMULATION} ${_LDFLAGS} -r \ + -T ${SYSDIR}/conf/ldscript.set_pad \ + -d -o ${.TARGET}.set_pad_apply ${OBJS} + ${LD} -m ${LD_EMULATION} ${_LDFLAGS} -r \ + -T ${SYSDIR}/conf/ldscript.set_pad_apply \ + -d -o ${.TARGET} ${.TARGET}.set_pad_apply +.else ${LD} -m ${LD_EMULATION} ${_LDFLAGS} -r -d -o ${.TARGET} ${OBJS} +.endif .if ${MK_CTF} != "no" ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS} .endif @@ -303,6 +312,14 @@ ${_ILINKS}: ln -fns $$path ${.TARGET:T} CLEANFILES+= ${PROG} ${KMOD}.kld ${OBJS} + +.if !defined(FIRMWS) && (${MACHINE_CPUARCH} == "i386") +.if ${__KLD_SHARED} == yes +CLEANFILES+= ${KMOD}.kld.set_pad_apply +.else +CLEANFILES+= ${FULLPROG}.kld.set_pad_apply +.endif +.endif .if defined(DEBUG_FLAGS) CLEANFILES+= ${FULLPROG} ${PROG}.debug --- src/sys/conf/ldscript.set_pad 1970-01-01 00:00:00.000000000 +0000 +++ src/sys/conf/ldscript.set_pad 2018-10-10 14:01:27.236234000 +0000 @@ -0,0 +1,12 @@ +___set_pcpu_pad = ABSOLUTE ( SIZEOF(set_pcpu) ? 1 : 0 ) ; +SECTIONS +{ + set_pcpu : { *(set_pcpu) } +} + +___set_vnet_pad = ABSOLUTE ( SIZEOF(set_vnet) ? 1 : 0 ) ; +SECTIONS +{ + set_vnet : { *(set_vnet) } +} + --- src/sys/conf/ldscript.set_pad_apply 1970-01-01 00:00:00.000000000 +0000 +++ src/sys/conf/ldscript.set_pad_apply 2018-10-10 14:01:27.237771000 +0000 @@ -0,0 +1,18 @@ +SECTIONS +{ + set_pcpu : + { + *(set_pcpu) + . = . + ABSOLUTE (___set_pcpu_pad) ; + } +} + +SECTIONS +{ + set_vnet : + { + *(set_vnet) + . = . + ABSOLUTE (___set_vnet_pad) ; + } +} +