Module Name: src
Committed By: martin
Date: Thu Aug 15 14:06:40 UTC 2019
Modified Files:
src/usr.sbin/installboot: Makefile machines.c
Log Message:
Replace black voodo linker magic (sometimes failing) with some
makefile + macro magic to trim the list of available machines on size
restricted install media.
To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/usr.sbin/installboot/Makefile
cvs rdiff -u -r1.40 -r1.41 src/usr.sbin/installboot/machines.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/installboot/Makefile
diff -u src/usr.sbin/installboot/Makefile:1.52 src/usr.sbin/installboot/Makefile:1.53
--- src/usr.sbin/installboot/Makefile:1.52 Tue May 7 05:02:42 2019
+++ src/usr.sbin/installboot/Makefile Thu Aug 15 14:06:40 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.52 2019/05/07 05:02:42 thorpej Exp $
+# $NetBSD: Makefile,v 1.53 2019/08/15 14:06:40 martin Exp $
#
.include <bsd.own.mk>
@@ -27,6 +27,7 @@ ARCH_FILES?= ${ARCH_XLAT:M${MACHINE}-*:S
.if empty(ARCH_FILES)
ARCH_FILES= ${MACHINE}.c
.endif
+COPTS.machines.c+= -DSINGLE_ARCH="${MACHINE}"
.endif
SRCS+=${ARCH_FILES}
Index: src/usr.sbin/installboot/machines.c
diff -u src/usr.sbin/installboot/machines.c:1.40 src/usr.sbin/installboot/machines.c:1.41
--- src/usr.sbin/installboot/machines.c:1.40 Tue May 7 05:02:42 2019
+++ src/usr.sbin/installboot/machines.c Thu Aug 15 14:06:40 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: machines.c,v 1.40 2019/05/07 05:02:42 thorpej Exp $ */
+/* $NetBSD: machines.c,v 1.41 2019/08/15 14:06:40 martin Exp $ */
/*-
* Copyright (c) 2002-2005 The NetBSD Foundation, Inc.
@@ -35,41 +35,18 @@
#include <sys/cdefs.h>
#if !defined(__lint)
-__RCSID("$NetBSD: machines.c,v 1.40 2019/05/07 05:02:42 thorpej Exp $");
+__RCSID("$NetBSD: machines.c,v 1.41 2019/08/15 14:06:40 martin Exp $");
#endif /* !__lint */
#include <sys/types.h>
#include "installboot.h"
-/*
- * Define these here so they end up as zero-filled bss if installboot
- * isn't built with all the architectures defined.
- * A lot simpler that conditionally including the definitions themselves.
- */
-struct ib_mach
- ib_mach_alpha,
- ib_mach_amd64,
- ib_mach_amiga,
- ib_mach_emips,
- ib_mach_evbarm,
- ib_mach_ews4800mips,
- ib_mach_hp300,
- ib_mach_hppa,
- ib_mach_i386,
- ib_mach_landisk,
- ib_mach_macppc,
- ib_mach_news68k,
- ib_mach_newsmips,
- ib_mach_next68k,
- ib_mach_pmax,
- ib_mach_sparc,
- ib_mach_sparc64,
- ib_mach_sun2,
- ib_mach_sun3,
- ib_mach_vax,
- ib_mach_x68k;
-
struct ib_mach * const machines[] = {
+#ifdef SINGLE_ARCH
+#define IB_PREFIX(X) ib_mach_##X
+#define MY_ARCH(X) IB_PREFIX(X)
+ &MY_ARCH(SINGLE_ARCH),
+#else
&ib_mach_alpha,
&ib_mach_amd64,
&ib_mach_amiga,
@@ -91,6 +68,7 @@ struct ib_mach * const machines[] = {
&ib_mach_sun3,
&ib_mach_vax,
&ib_mach_x68k,
+#endif
NULL
};