From owner-svn-src-projects@FreeBSD.ORG Sat Mar 13 18:34:19 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B84A9106566B; Sat, 13 Mar 2010 18:34:19 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8D5EE8FC17; Sat, 13 Mar 2010 18:34:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o2DIYJ4K099512; Sat, 13 Mar 2010 18:34:19 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2DIYJnU099510; Sat, 13 Mar 2010 18:34:19 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201003131834.o2DIYJnU099510@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 13 Mar 2010 18:34:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r205127 - projects/altix/sys/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Mar 2010 18:34:19 -0000 Author: marcel Date: Sat Mar 13 18:34:19 2010 New Revision: 205127 URL: http://svn.freebsd.org/changeset/base/205127 Log: Go out on a limb and build the kernel proper as a relocatable as well. This has some bigger consequences, but again it's much more easy to work with relocatables in a NUMA environment. In particular, the effects of this change are: 1. We can't load kernels any more -- not a big deal for Altix, because we couldn't load kernels in the first place. We needed to load the kernel at a fixed physical address (= 64M) and on Altix there's no physical memory at that address. 2. The kernel object size increased by ~39%. The debug kernel object file increased by about ~99%. Lastly, the symbols object file saw about a 150% increase. Whether this is acceptable or not is left for later to decide -- after we can compare the memory footprint. 3. The loader can't check for ET_EXEC to determine if the object is the kernel proper or not. Consequently, we have no entry point. It feels acceptable to expect the entry point to be called "__start" or something along those lines. The kernel proper is the object file that contains that symbol. Modified: projects/altix/sys/conf/kern.pre.mk Modified: projects/altix/sys/conf/kern.pre.mk ============================================================================== --- projects/altix/sys/conf/kern.pre.mk Sat Mar 13 18:14:51 2010 (r205126) +++ projects/altix/sys/conf/kern.pre.mk Sat Mar 13 18:34:19 2010 (r205127) @@ -141,13 +141,18 @@ SYSTEM_CFILES= config.c env.c hints.c vn SYSTEM_DEP= Makefile ${SYSTEM_OBJS} SYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} SYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} -SYSTEM_OBJS+= hack.So .if defined(CTFMERGE) SYSTEM_CTFMERGE= ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SYSTEM_OBJS} vers.o LD+= -g .endif -SYSTEM_LD= @${LD} -Bdynamic -T ${LDSCRIPT} \ - -warn-common -export-dynamic -dynamic-linker /red/herring \ +.if ${MACHINE_ARCH} != ia64 +SYSTEM_OBJS+= hack.So +SYSTEM_LDFLAGS= -Bdynamic -T ${LDSCRIPT} -export-dynamic \ + -dynamic-linker /red/herring +.else +SYSTEM_LDFLAGS= -r +.endif +SYSTEM_LD= @${LD} ${SYSTEM_LDFLAGS} -warn-common \ -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ ${SIZE} ${.TARGET} ; chmod 755 ${.TARGET}