Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Mar 2010 18:34:19 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r205127 - projects/altix/sys/conf
Message-ID:  <201003131834.o2DIYJnU099510@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003131834.o2DIYJnU099510>