summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/boot/alpha/common/Makefile.common13
-rw-r--r--sys/boot/arc/loader/Makefile13
-rw-r--r--sys/boot/common/bootstrap.h47
-rw-r--r--sys/boot/common/isapnp.h2
-rw-r--r--sys/boot/efi/loader/Makefile13
-rw-r--r--sys/boot/ia64/efi/Makefile13
-rw-r--r--sys/boot/powerpc/loader/Makefile13
-rw-r--r--sys/boot/powerpc/ofw/Makefile13
8 files changed, 14 insertions, 113 deletions
diff --git a/sys/boot/alpha/common/Makefile.common b/sys/boot/alpha/common/Makefile.common
index 72f8be2..32a6e0d 100644
--- a/sys/boot/alpha/common/Makefile.common
+++ b/sys/boot/alpha/common/Makefile.common
@@ -49,9 +49,9 @@ vers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
${BASE}: ${BASE}.sym ${BASE}.help
objcopy -O binary ${BASE}.sym ${BASE}
-${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBFICL} ${LIBALPHA} ${CRT} vers.o setdef0.o setdef1.o
+${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBFICL} ${LIBALPHA} ${CRT} vers.o
${LD} -o ${BASE}.sym -M -e start -N -Ttext ${LOAD_ADDRESS} \
- ${CRT} setdef0.o ${OBJS} setdef1.o vers.o \
+ ${CRT} ${OBJS} vers.o \
-L${DESTDIR}${LIBDIR} ${LIBSTAND} ${LIBALPHA} ${LIBFICL} ${LIBSTAND} \
>${.OBJDIR}/${BASE}.list
@@ -87,10 +87,6 @@ beforeinstall:
start.o: ${.CURDIR}/../libalpha/start.S
${CC} -c ${CFLAGS} $<
-setdef0.o: setdefs.h
-
-setdef1.o: setdefs.h
-
machine:
ln -sf ${.CURDIR}/../../../alpha/include machine
@@ -98,9 +94,4 @@ CLEANFILES+= machine
.include <bsd.prog.mk>
-.ORDER: setdefs.h setdef0.c setdef1.c
-setdefs.h setdef0.c setdef1.c: ${OBJS}
- @echo Generating linker sets
- @gensetdefs ${OBJS}
-
beforedepend ${OBJS}: machine
diff --git a/sys/boot/arc/loader/Makefile b/sys/boot/arc/loader/Makefile
index 40aec37..351311b 100644
--- a/sys/boot/arc/loader/Makefile
+++ b/sys/boot/arc/loader/Makefile
@@ -42,9 +42,9 @@ vers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
${BASE}.exe: ${BASE}.sym ${BASE}.help
elf2exe ${BASE}.sym ${BASE}.exe
-${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o setdef0.o setdef1.o
+${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o
${LD} -o ${BASE}.sym -M -N -Ttext ${LOAD_ADDRESS} \
- ${CRT} setdef0.o ${OBJS} setdef1.o vers.o -L${DESTDIR}${LIBDIR} \
+ ${CRT} ${OBJS} vers.o -L${DESTDIR}${LIBDIR} \
${LIBSTAND} ${LIBARC} ${LIBSTAND} >${.OBJDIR}/${BASE}.list
${BASE}.help: help.common help.alpha
@@ -63,18 +63,9 @@ beforeinstall:
start.o: ${.CURDIR}/../lib/arch/${MACHINE_ARCH}/start.S
${CC} -c ${CFLAGS} $<
-setdef0.o: setdefs.h
-
-setdef1.o: setdefs.h
-
machine:
ln -sf ${.CURDIR}/../../../alpha/include machine
.include <bsd.prog.mk>
-.ORDER: setdefs.h setdef0.c setdef1.c
-setdefs.h setdef0.c setdef1.c: ${OBJS}
- @echo Generating linker sets
- @gensetdefs ${OBJS}
-
beforedepend ${OBJS}: machine
diff --git a/sys/boot/common/bootstrap.h b/sys/boot/common/bootstrap.h
index 81f65c8..11085eb 100644
--- a/sys/boot/common/bootstrap.h
+++ b/sys/boot/common/bootstrap.h
@@ -28,6 +28,7 @@
#include <sys/types.h>
#include <sys/queue.h>
+#include <sys/linker_set.h>
/*
* Generic device specifier; architecture-dependant
@@ -232,50 +233,6 @@ vm_offset_t aout_findsym(char *name, struct preloaded_file *fp);
int elf_loadfile(char *filename, vm_offset_t dest, struct preloaded_file **result);
-#ifndef NEW_LINKER_SET
-#include <sys/linker_set.h>
-
-/* XXX just for conversion's sake, until we move to the new linker set code */
-
-#define SET_FOREACH(pvar, set) \
- for ((char*) pvar = set.ls_items; \
- (char*) pvar < (char*) &set.ls_items[set.ls_length]; \
- pvar++)
-
-#else /* NEW_LINKER_SET */
-
-/*
- * Private macros, not to be used outside this header file.
- */
-#define __MAKE_SET(set, sym) \
- static void *__CONCAT(__setentry,__LINE__) \
- __attribute__((__section__("set_" #set),__unused__)) = &sym
-#define __SET_BEGIN(set) \
- ({ extern void *__CONCAT(__start_set_,set); \
- &__CONCAT(__start_set_,set); })
-#define __SET_END(set) \
- ({ extern void *__CONCAT(__stop_set_,set); \
- &__CONCAT(__stop_set_,set); })
-
-/*
- * Public macros.
- */
-
-/* Add an entry to a set. */
-#define DATA_SET(set, sym) __MAKE_SET(set, sym)
-
-/*
- * Iterate over all the elements of a set.
- *
- * Sets always contain addresses of things, and "pvar" points to words
- * containing those addresses. Thus is must be declared as "type **pvar",
- * and the address of each set item is obtained inside the loop by "*pvar".
- */
-#define SET_FOREACH(pvar, set) \
- for (pvar = (__typeof__(pvar))__SET_BEGIN(set); \
- pvar < (__typeof__(pvar))__SET_END(set); pvar++)
-#endif
-
/*
* Support for commands
*/
@@ -291,7 +248,7 @@ struct bootblk_command
static struct bootblk_command _cmd_ ## tag = { key, desc, func }; \
DATA_SET(Xcommand_set, _cmd_ ## tag)
-extern struct linker_set Xcommand_set;
+SET_DECLARE(Xcommand_set, struct bootblk_command);
/*
* The intention of the architecture switch is to provide a convenient
diff --git a/sys/boot/common/isapnp.h b/sys/boot/common/isapnp.h
index 053ec0a..60363ad 100644
--- a/sys/boot/common/isapnp.h
+++ b/sys/boot/common/isapnp.h
@@ -296,8 +296,6 @@ extern pnp_id pnp_devices[MAX_PNP_CARDS];
extern struct pnp_cinfo pnp_ldn_overrides[MAX_PNP_LDN];
extern int pnp_overrides_valid;
-extern struct linker_set pnpdevice_set;
-
/*
* these two functions are for use in drivers
*/
diff --git a/sys/boot/efi/loader/Makefile b/sys/boot/efi/loader/Makefile
index 4fb3f0e..998bf21 100644
--- a/sys/boot/efi/loader/Makefile
+++ b/sys/boot/efi/loader/Makefile
@@ -63,9 +63,9 @@ ${BASE}.efi: ${BASE}.sym
--target=efi-app-${MACHINE_ARCH} \
${BASE}.sym ${BASE}.efi
-${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o setdef0.o setdef1.o
+${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o
${LD} ${LDFLAGS} -o ${BASE}.sym -M \
- ${CRT} setdef0.o ${OBJS} setdef1.o vers.o \
+ ${CRT} {OBJS} vers.o \
${LIBFICL} ${LIBSTAND} ${LIBEFI} ${LIBSTAND} \
> ${.OBJDIR}/${BASE}.list
@@ -85,18 +85,9 @@ beforeinstall:
start.o: ${.CURDIR}/../libefi/arch/${MACHINE_ARCH}/start.S
${CC} -c ${CFLAGS} $<
-setdef0.o: setdefs.h
-
-setdef1.o: setdefs.h
-
machine:
ln -sf ${.CURDIR}/../../../${MACHINE_ARCH}/include machine
.include <bsd.prog.mk>
-.ORDER: setdefs.h setdef0.c setdef1.c
-setdefs.h setdef0.c setdef1.c: ${OBJS}
- @echo Generating linker sets
- @perl ${.CURDIR}/../../../kern/gensetdefs.pl ${OBJS}
-
beforedepend ${OBJS}: machine
diff --git a/sys/boot/ia64/efi/Makefile b/sys/boot/ia64/efi/Makefile
index 4fb3f0e..998bf21 100644
--- a/sys/boot/ia64/efi/Makefile
+++ b/sys/boot/ia64/efi/Makefile
@@ -63,9 +63,9 @@ ${BASE}.efi: ${BASE}.sym
--target=efi-app-${MACHINE_ARCH} \
${BASE}.sym ${BASE}.efi
-${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o setdef0.o setdef1.o
+${BASE}.sym: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o
${LD} ${LDFLAGS} -o ${BASE}.sym -M \
- ${CRT} setdef0.o ${OBJS} setdef1.o vers.o \
+ ${CRT} {OBJS} vers.o \
${LIBFICL} ${LIBSTAND} ${LIBEFI} ${LIBSTAND} \
> ${.OBJDIR}/${BASE}.list
@@ -85,18 +85,9 @@ beforeinstall:
start.o: ${.CURDIR}/../libefi/arch/${MACHINE_ARCH}/start.S
${CC} -c ${CFLAGS} $<
-setdef0.o: setdefs.h
-
-setdef1.o: setdefs.h
-
machine:
ln -sf ${.CURDIR}/../../../${MACHINE_ARCH}/include machine
.include <bsd.prog.mk>
-.ORDER: setdefs.h setdef0.c setdef1.c
-setdefs.h setdef0.c setdef1.c: ${OBJS}
- @echo Generating linker sets
- @perl ${.CURDIR}/../../../kern/gensetdefs.pl ${OBJS}
-
beforedepend ${OBJS}: machine
diff --git a/sys/boot/powerpc/loader/Makefile b/sys/boot/powerpc/loader/Makefile
index 4fb4192..591aa09 100644
--- a/sys/boot/powerpc/loader/Makefile
+++ b/sys/boot/powerpc/loader/Makefile
@@ -100,14 +100,10 @@ beforeinstall:
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
-${PROG}: ${OBJS} ${LIBOFW} ${LIBSTAND} ${LIBFICL} start.o vers.o setdef0.o setdef1.o
- ${LD} ${LDFLAGS} -o ${.TARGET} setdef0.o start.o ${OBJS} setdef1.o \
+${PROG}: ${OBJS} ${LIBOFW} ${LIBSTAND} ${LIBFICL} start.o vers.o
+ ${LD} ${LDFLAGS} -o ${.TARGET} start.o ${OBJS} \
vers.o ${LIBFICL} ${LIBOFW} ${LIBSTAND}
-setdef0.o: setdefs.h
-
-setdef1.o: setdefs.h
-
machine:
ln -sf ${.CURDIR}/../../../powerpc/include machine
@@ -118,8 +114,3 @@ beforedepend ${OBJS}: machine
CLEANFILES+= machine setdefs.h setdef0.c setdef1.c setdef0.o setdef1.o \
start.o
-
-.ORDER: setdefs.h setdef0.c setdef1.c
-setdefs.h setdef0.c setdef1.c: ${OBJS}
- @echo Generating linker sets
- @gensetdefs ${OBJS}
diff --git a/sys/boot/powerpc/ofw/Makefile b/sys/boot/powerpc/ofw/Makefile
index 4fb4192..591aa09 100644
--- a/sys/boot/powerpc/ofw/Makefile
+++ b/sys/boot/powerpc/ofw/Makefile
@@ -100,14 +100,10 @@ beforeinstall:
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
-${PROG}: ${OBJS} ${LIBOFW} ${LIBSTAND} ${LIBFICL} start.o vers.o setdef0.o setdef1.o
- ${LD} ${LDFLAGS} -o ${.TARGET} setdef0.o start.o ${OBJS} setdef1.o \
+${PROG}: ${OBJS} ${LIBOFW} ${LIBSTAND} ${LIBFICL} start.o vers.o
+ ${LD} ${LDFLAGS} -o ${.TARGET} start.o ${OBJS} \
vers.o ${LIBFICL} ${LIBOFW} ${LIBSTAND}
-setdef0.o: setdefs.h
-
-setdef1.o: setdefs.h
-
machine:
ln -sf ${.CURDIR}/../../../powerpc/include machine
@@ -118,8 +114,3 @@ beforedepend ${OBJS}: machine
CLEANFILES+= machine setdefs.h setdef0.c setdef1.c setdef0.o setdef1.o \
start.o
-
-.ORDER: setdefs.h setdef0.c setdef1.c
-setdefs.h setdef0.c setdef1.c: ${OBJS}
- @echo Generating linker sets
- @gensetdefs ${OBJS}
OpenPOWER on IntegriCloud