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
 };
 

Reply via email to