From a0d442c0d8bb6cb7b8f809a4cee243c5cdca8c1e Mon Sep 17 00:00:00 2001 From: "Jonathan T. Looney" Date: Tue, 6 Mar 2018 14:18:45 +0000 Subject: [PATCH] Nudge lld to break the kernel read-only and read-write sections into separate 2M pages. The binutils default for max-page-size and common-page-size used to produce this result. By setting these values, we can nudge lld to also separate these sections into separate 2M pages. Reviewed by: jhb, kib Discussed with: emaste Sponsored by: Netflix Differential Revision: D14282 --- sys/conf/kern.pre.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 18f65e17047..0ddb35b1bb5 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -120,6 +120,10 @@ CFLAGS+= ${CONF_CFLAGS} LDFLAGS+= -Wl,--build-id=sha1 .endif +.if ${MACHINE_CPUARCH} == "amd64" +LDFLAGS+= -Wl,-z max-page-size=2097152 -Wl,-z common-page-size=4096 +.endif + NORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} NORMAL_S= ${CC:N${CCACHE_BIN}} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC} PROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC}