svn commit: r307942 - in head/sys/boot: common efi/libefi ficl ficl32 i386/libi386 i386/loader

Warner Losh imp at FreeBSD.org
Tue Oct 25 17:31:59 UTC 2016


Author: imp
Date: Tue Oct 25 17:31:57 2016
New Revision: 307942
URL: https://svnweb.freebsd.org/changeset/base/307942

Log:
  Really make WITHOUT_FORTH (MK_FORTH==no) work. The recent inclusion of
  FICL definitions not in ficl/ficl32 files broke this generally. This
  makes that stuff conditional on BOOT_FORTH. Also, move definitions
  related to the architecture (FICL_CPUARCH and friends) into
  Makefile.ficl that all parts of the tree that include files with ficl
  need to include (but only if MK_FORTH == yes). In addition, had to fix
  library ordering issue with LIBSTAND to keep it last. Without boot
  forth, there's no references to memset to bring in memset.o from
  libstand.a to satisfy libgeliboot.a's use of it. Listing libstand last
  solves this issue (and it's the proper place for libstand to boot).

Modified:
  head/sys/boot/common/Makefile.inc
  head/sys/boot/common/pnp.c
  head/sys/boot/efi/libefi/Makefile
  head/sys/boot/ficl/Makefile
  head/sys/boot/ficl32/Makefile
  head/sys/boot/i386/libi386/biospci.c
  head/sys/boot/i386/loader/Makefile

Modified: head/sys/boot/common/Makefile.inc
==============================================================================
--- head/sys/boot/common/Makefile.inc	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/common/Makefile.inc	Tue Oct 25 17:31:57 2016	(r307942)
@@ -60,6 +60,7 @@ SRCS+=	pnp.c
 # Forth interpreter
 .if defined(BOOT_FORTH)
 SRCS+=	interp_forth.c
+.include "${SRCTOP}/sys/boot/Makefile.ficl"
 .endif
 
 .if defined(BOOT_PROMPT_123)

Modified: head/sys/boot/common/pnp.c
==============================================================================
--- head/sys/boot/common/pnp.c	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/common/pnp.c	Tue Oct 25 17:31:57 2016	(r307942)
@@ -17,7 +17,9 @@ __FBSDID("$FreeBSD$");
 #include <stand.h>
 #include <string.h>
 #include <bootstrap.h>
+#ifdef BOOT_FORTH
 #include "ficl.h"
+#endif
 
 static struct pnpinfo_stql pnp_devices;
 static int		pnp_devices_initted = 0;
@@ -186,6 +188,7 @@ pnp_eisaformat(u_int8_t *data)
     return(idbuf);
 }
 
+#ifdef BOOT_FORTH
 void
 ficlPnpdevices(FICL_VM *pVM)
 {
@@ -230,3 +233,4 @@ static void ficlCompilePnp(FICL_SYSTEM *
 }
 
 FICL_COMPILE_SET(ficlCompilePnp);
+#endif

Modified: head/sys/boot/efi/libefi/Makefile
==============================================================================
--- head/sys/boot/efi/libefi/Makefile	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/efi/libefi/Makefile	Tue Oct 25 17:31:57 2016	(r307942)
@@ -2,6 +2,10 @@
 
 .include <src.opts.mk>
 
+.if ${MK_FORTH} != "no"
+.include "${.CURDIR}/../../Makefile.ficl"
+.endif
+
 LIB=	efi
 INTERNALLIB=
 WARNS?=	2
@@ -16,8 +20,6 @@ SRCS+=	time_event.c
 .endif
 .if ${MK_FORTH} != "no"
 SRCS+=	env.c
-CFLAGS+= -I${.CURDIR}/../../ficl
-CFLAGS+= -I${.CURDIR}/../../ficl/${MACHINE_CPUARCH}
 .endif
 
 # We implement a slightly non-standard %S in that it always takes a

Modified: head/sys/boot/ficl/Makefile
==============================================================================
--- head/sys/boot/ficl/Makefile	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/ficl/Makefile	Tue Oct 25 17:31:57 2016	(r307942)
@@ -1,15 +1,8 @@
 # $FreeBSD$
 #
 
-FICLDIR?=	${.CURDIR}
+.include	"${.CURDIR}/../Makefile.ficl"
 
-.if defined(FICL32)
-.PATH: ${FICLDIR}/${MACHINE_CPUARCH:S/amd64/i386/}
-.elif ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el"
-.PATH: ${FICLDIR}/mips64
-.else
-.PATH: ${FICLDIR}/${MACHINE_CPUARCH}
-.endif
 BASE_SRCS=	dict.c ficl.c fileaccess.c float.c loader.c math64.c \
 		prefix.c search.c stack.c tools.c vm.c words.c
 
@@ -41,42 +34,6 @@ SOFTWORDS=	softcore.fr jhlocal.fr marker
 # Optional OO extension softwords
 #SOFTWORDS+=	oo.fr classes.fr
 
-.if ${MACHINE_CPUARCH} == "amd64"
-.if defined(FICL32)
-CFLAGS+=	-m32 -I.
-.else
-CFLAGS+=	-fPIC
-.endif
-.endif
-
-.if ${MACHINE_ARCH} == "powerpc64"
-CFLAGS+=	-m32 -mcpu=powerpc -I.
-.endif
-
-.if ${MACHINE_CPUARCH} == "amd64" && defined(FICL32)
-FICL_CPUARCH=	i386
-.elif ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el"
-FICL_CPUARCH=	mips64
-.else
-FICL_CPUARCH=	${MACHINE_CPUARCH}
-.endif
-
-CFLAGS+=	-I${FICLDIR} -I${FICLDIR}/${FICL_CPUARCH} \
-		-I${FICLDIR}/../common
-
 softcore.c: ${SOFTWORDS} softcore.awk
 	(cd ${FICLDIR}/softwords; cat ${SOFTWORDS} \
 	    | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET}
-
-.if ${MACHINE_CPUARCH} == "amd64" && defined(FICL32)
-.if !exists(machine)
-${SRCS:M*.c:R:S/$/.o/g}: machine
-
-beforedepend ${OBJS}: machine
-.endif
-
-machine: .NOMETA
-	ln -sf ${.CURDIR}/../../i386/include machine
-
-CLEANFILES+=	machine
-.endif

Modified: head/sys/boot/ficl32/Makefile
==============================================================================
--- head/sys/boot/ficl32/Makefile	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/ficl32/Makefile	Tue Oct 25 17:31:57 2016	(r307942)
@@ -1,8 +1,5 @@
 # $FreeBSD$
 
 FICL32=
-FICLDIR=	${.CURDIR}/../ficl
 
-.PATH:	${FICLDIR}
-
-.include "${FICLDIR}/Makefile"
+.include "${.CURDIR}/../ficl/Makefile"

Modified: head/sys/boot/i386/libi386/biospci.c
==============================================================================
--- head/sys/boot/i386/libi386/biospci.c	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/i386/libi386/biospci.c	Tue Oct 25 17:31:57 2016	(r307942)
@@ -38,7 +38,9 @@ __FBSDID("$FreeBSD$");
 #include <isapnp.h>
 #include <btxv86.h>
 #include "libi386.h"
+#ifdef BOOT_FORTH
 #include "ficl.h"
+#endif
 
 /*
  * Stupid PCI BIOS interface doesn't let you simply enumerate everything
@@ -429,6 +431,7 @@ biospci_count_device_type(uint32_t devid
 	return i;
 }
 
+#ifdef BOOT_FORTH
 /*
  * pcibios-device-count (devid -- count)
  *
@@ -582,3 +585,4 @@ static void ficlCompilePciBios(FICL_SYST
 }
 
 FICL_COMPILE_SET(ficlCompilePciBios);
+#endif

Modified: head/sys/boot/i386/loader/Makefile
==============================================================================
--- head/sys/boot/i386/loader/Makefile	Tue Oct 25 17:16:58 2016	(r307941)
+++ head/sys/boot/i386/loader/Makefile	Tue Oct 25 17:31:57 2016	(r307942)
@@ -123,8 +123,8 @@ FILES+=	loader.rc menu.rc
 # XXX crt0.o needs to be first for pxeboot(8) to work
 OBJS=	${BTXCRT}
 
-DPADD=	${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} ${LIBGELIBOOT}
-LDADD=	${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} ${LIBGELIBOOT}
+DPADD=	${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBGELIBOOT} ${LIBSTAND}
+LDADD=	${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBGELIBOOT} ${LIBSTAND}
 
 .include <bsd.prog.mk>
 


More information about the svn-src-head mailing list