Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.sbin/installboot Replace black voodo linker magic (somet...



details:   https://anonhg.NetBSD.org/src/rev/af2963963d5e
branches:  trunk
changeset: 964764:af2963963d5e
user:      martin <martin%NetBSD.org@localhost>
date:      Thu Aug 15 14:06:40 2019 +0000

description:
Replace black voodo linker magic (sometimes failing) with some
makefile + macro magic to trim the list of available machines on size
restricted install media.

diffstat:

 usr.sbin/installboot/Makefile   |   3 ++-
 usr.sbin/installboot/machines.c |  38 ++++++++------------------------------
 2 files changed, 10 insertions(+), 31 deletions(-)

diffs (82 lines):

diff -r bd67086f0fd1 -r af2963963d5e usr.sbin/installboot/Makefile
--- a/usr.sbin/installboot/Makefile     Thu Aug 15 13:33:15 2019 +0000
+++ b/usr.sbin/installboot/Makefile     Thu Aug 15 14:06:40 2019 +0000
@@ -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 @@
 .if empty(ARCH_FILES)
 ARCH_FILES= ${MACHINE}.c
 .endif
+COPTS.machines.c+=     -DSINGLE_ARCH="${MACHINE}"
 .endif
 
 SRCS+=${ARCH_FILES}
diff -r bd67086f0fd1 -r af2963963d5e usr.sbin/installboot/machines.c
--- a/usr.sbin/installboot/machines.c   Thu Aug 15 13:33:15 2019 +0000
+++ b/usr.sbin/installboot/machines.c   Thu Aug 15 14:06:40 2019 +0000
@@ -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 @@
     &ib_mach_sun3,
     &ib_mach_vax,
     &ib_mach_x68k,
+#endif
     NULL
 };
 



Home | Main Index | Thread Index | Old Index