summaryrefslogtreecommitdiffstats
path: root/sys/conf/Makefile.ia64
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-06-13 10:58:39 +0000
committerpeter <peter@FreeBSD.org>2001-06-13 10:58:39 +0000
commitf10fa038c14063eaf2da32ed734e644e5f569694 (patch)
tree88aef8097c80f09c2f725d61b6da4d433a595a61 /sys/conf/Makefile.ia64
parent2514663dd721b9ac234d35a4dac65dfc457ff6bc (diff)
downloadFreeBSD-src-f10fa038c14063eaf2da32ed734e644e5f569694.zip
FreeBSD-src-f10fa038c14063eaf2da32ed734e644e5f569694.tar.gz
With this commit, I hereby pronounce gensetdefs past its use-by date.
Replace the a.out emulation of 'struct linker_set' with something a little more flexible. <sys/linker_set.h> now provides macros for accessing elements and completely hides the implementation. The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it). The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *. For ELF, we use the magic ld symbols (__start_<setname> and __stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the trick about how to force ld to provide them for kld's. For a.out, we use the old linker_set struct. NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas. The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use. linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day. Reviewed by: eivind
Diffstat (limited to 'sys/conf/Makefile.ia64')
-rw-r--r--sys/conf/Makefile.ia6419
1 files changed, 2 insertions, 17 deletions
diff --git a/sys/conf/Makefile.ia64 b/sys/conf/Makefile.ia64
index 174c727..e52be5d 100644
--- a/sys/conf/Makefile.ia64
+++ b/sys/conf/Makefile.ia64
@@ -101,15 +101,11 @@ NORMAL_M= perl5 $S/kern/makeobjops.pl -c $<; \
${CC} -c ${CFLAGS} ${PROF} ${.PREFIX}.c
GEN_CFILES= $S/$M/$M/genassym.c
-# setdef0.c and setdef1.c are intentionally
-# omitted from SYSTEM_CFILES. They include setdefs.h, a header which
-# is generated from all of ${OBJS}. We don't want to have to compile
-# everything just to do a make depend.
SYSTEM_CFILES= param.c vnode_if.c hints.c config.c
SYSTEM_SFILES= $S/$M/$M/locore.s
SYSTEM_DEP= Makefile ${SYSTEM_OBJS}
-SYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} param.o hints.o config.o \
- setdef1.o # hack.So ski can't cope with dynamic relocs
+SYSTEM_OBJS= locore.o vnode_if.o ${OBJS} param.o hints.o config.o \
+ # hack.So ski can't cope with dynamic relocs
SYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \
-e locorestart \
-export-dynamic -dynamic-linker /red/herring \
@@ -188,17 +184,6 @@ hack.So: Makefile
${CC} ${FMT} -shared -nostdlib hack.c -o hack.So
rm -f hack.c
-.ORDER: setdefs.h setdef0.c setdef1.c
-
-setdef0.o: setdef0.c setdefs.h
- ${NORMAL_C}
-
-setdef1.o: setdef1.c setdefs.h
- ${NORMAL_C}
-
-setdef0.c setdef1.c setdefs.h: Makefile ${OBJS}
- @OBJDUMP=${OBJDUMP} perl5 $S/kern/gensetdefs.pl ${OBJS}
-
# this rule stops ./assym.s in .depend from causing problems
./assym.s: assym.s
OpenPOWER on IntegriCloud