Module Name:    src
Committed By:   isaki
Date:           Sat Jan 18 06:44:23 UTC 2020

Modified Files:
        src/sys/arch/x68k/stand/boot_ufs: Makefile boot_ufs.ldscript
        src/sys/arch/x68k/stand/boot_ustar: Makefile boot_ustar.ldscript
        src/sys/arch/x68k/stand/xxboot: Makefile.xxboot xxboot.ldscript

Log Message:
Use ASSERT() in ldscript to check first_kbyte (etc) restrictions,
rather than complicated shell expressions in Makefile.


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/x68k/stand/boot_ufs/Makefile
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x68k/stand/boot_ufs/boot_ufs.ldscript
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/x68k/stand/boot_ustar/Makefile
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/arch/x68k/stand/boot_ustar/boot_ustar.ldscript
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/x68k/stand/xxboot/Makefile.xxboot
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/x68k/stand/xxboot/xxboot.ldscript

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/x68k/stand/boot_ufs/Makefile
diff -u src/sys/arch/x68k/stand/boot_ufs/Makefile:1.34 src/sys/arch/x68k/stand/boot_ufs/Makefile:1.35
--- src/sys/arch/x68k/stand/boot_ufs/Makefile:1.34	Sat Jan 18 06:34:29 2020
+++ src/sys/arch/x68k/stand/boot_ufs/Makefile	Sat Jan 18 06:44:23 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.34 2020/01/18 06:34:29 isaki Exp $
+#	$NetBSD: Makefile,v 1.35 2020/01/18 06:44:23 isaki Exp $
 
 NOMAN=		# defined
 
@@ -42,29 +42,15 @@ CPPFLAGS+= -DSCSI_ADHOC_BOOTPART
 CPPFLAGS+= -DUSE_FFS -DUSE_LFS -DUSE_UFS1 -DUSE_UFS2
 CPPFLAGS+= -I${COMMONDIR} -I${LIBIOCS} -I${S} -I. -D_STANDALONE
 AFLAGS=	   ${CFLAGS:M-[ID]*}
-LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/${BOOT}.ldscript -M
+LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/${BOOT}.ldscript
 LINKFLAGS+=  --defsym=TEXTADDR=$(TEXT)
 
 .include "${.CURDIR}/../Makefile.booters"
 .include "${S}/../common/lib/libc/Makefile.inc"
 
-CLEANFILES+=	$(PROG).x $(PROG).map
-
 
 $(PROG): $(OBJS)
 	${_MKTARGET_LINK}
-	:
-	: Note:	"relocation truncated to fit: R_68K_16" messages are expected.
-	:	Other errors are fatal.
-	:
-	$(LD) $(LINKFLAGS) -o $(PROG).x $(OBJS) $(LDADD) >$(PROG).map
-	@grep first_kbyte $(PROG).map
-	@if [ `${TOOL_AWK}						   \
-	    '/first_kbyte/ {print "eval(eval("$$1")-eval('$(TEXT)'))"}'	   \
-	    $(PROG).map | ${TOOL_M4} -` -gt 1024 ];			   \
-	then echo '$(BOOT): first_kbyte exceeds the first killobyte';	   \
-	    exit 1;							   \
-	fi
-	mv -f $(PROG).x $(PROG)
+	$(LD) $(LINKFLAGS) -o $(PROG) $(OBJS) $(LDADD)
 
 .include <bsd.prog.mk>

Index: src/sys/arch/x68k/stand/boot_ufs/boot_ufs.ldscript
diff -u src/sys/arch/x68k/stand/boot_ufs/boot_ufs.ldscript:1.4 src/sys/arch/x68k/stand/boot_ufs/boot_ufs.ldscript:1.5
--- src/sys/arch/x68k/stand/boot_ufs/boot_ufs.ldscript:1.4	Sat Jan 18 06:03:03 2020
+++ src/sys/arch/x68k/stand/boot_ufs/boot_ufs.ldscript	Sat Jan 18 06:44:23 2020
@@ -46,3 +46,5 @@ SECTIONS
   }
   /DISCARD/ : { *(.ident) *(.stab) *(.stabstr) }
 }
+
+ASSERT(first_kbyte - TEXTADDR <= 1024, "Error: first_kbyte exceeds 1KB");

Index: src/sys/arch/x68k/stand/boot_ustar/Makefile
diff -u src/sys/arch/x68k/stand/boot_ustar/Makefile:1.28 src/sys/arch/x68k/stand/boot_ustar/Makefile:1.29
--- src/sys/arch/x68k/stand/boot_ustar/Makefile:1.28	Sat Jan 18 06:34:30 2020
+++ src/sys/arch/x68k/stand/boot_ustar/Makefile	Sat Jan 18 06:44:23 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.28 2020/01/18 06:34:30 isaki Exp $
+#	$NetBSD: Makefile,v 1.29 2020/01/18 06:44:23 isaki Exp $
 
 NOMAN=		# defined
 
@@ -37,30 +37,15 @@ CPPFLAGS+= -I${COMMONDIR} -I${LIBIOCS} -
 CFLAGS+=   -m68000
 AFLAGS=	   ${CFLAGS:M-[ID]*}
 AFLAGS+=   -Wa,-march=m68000 -Wa,-mcpu=m68000
-LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/${BOOT}.ldscript -M
+LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/${BOOT}.ldscript
 LINKFLAGS+=  --defsym=TEXTADDR=$(TEXT)
 
 .include "${.CURDIR}/../Makefile.booters"
 .include "${S}/../common/lib/libc/Makefile.inc"
 
-CLEANFILES+=	${PROG}.x $(PROG).map
-
 
 ${PROG}: $(OBJS)
 	${_MKTARGET_LINK}
-	$(LD) $(LINKFLAGS) -o ${PROG} $(OBJS) $(LDADD) > $(PROG).map
-	@grep first_kbyte $(PROG).map
-	@if [ `${TOOL_AWK}						   \
-	    '/first_kbyte/ {print "eval(eval("$$1")-eval('$(TEXT)'))"}'	   \
-	    $(PROG).map | ${TOOL_M4} -` -gt 1024 ];			   \
-	then echo '$(BOOT): first_kbyte exceeds the first killobyte';	   \
-	    rm $(PROG) ; exit 1; 					   \
-	fi
-	@if [ `${TOOL_AWK}						   \
-	    '/_edata/ {print "eval(eval("$$1")-eval('$(TEXT)'))"}'	   \
-	    $(PROG).map | ${TOOL_M4} -` -gt 8192 ];			   \
-	then echo '$(BOOT): text+data is too large';			   \
-	    rm $(PROG) ; exit 1; 					   \
-	fi
+	$(LD) $(LINKFLAGS) -o ${PROG} $(OBJS) $(LDADD)
 
 .include <bsd.prog.mk>

Index: src/sys/arch/x68k/stand/boot_ustar/boot_ustar.ldscript
diff -u src/sys/arch/x68k/stand/boot_ustar/boot_ustar.ldscript:1.4 src/sys/arch/x68k/stand/boot_ustar/boot_ustar.ldscript:1.5
--- src/sys/arch/x68k/stand/boot_ustar/boot_ustar.ldscript:1.4	Sat Jan 18 06:03:03 2020
+++ src/sys/arch/x68k/stand/boot_ustar/boot_ustar.ldscript	Sat Jan 18 06:44:23 2020
@@ -45,3 +45,6 @@ SECTIONS
   }
   /DISCARD/ : { *(.ident) *(.stab) *(.stabstr) }
 }
+
+ASSERT(first_kbyte - TEXTADDR <= 1024, "Error: first_kbyte exceeds 1KB");
+ASSERT(_edata - TEXTADDR <= 8192, "Error: text+data is too large to bootarea");

Index: src/sys/arch/x68k/stand/xxboot/Makefile.xxboot
diff -u src/sys/arch/x68k/stand/xxboot/Makefile.xxboot:1.9 src/sys/arch/x68k/stand/xxboot/Makefile.xxboot:1.10
--- src/sys/arch/x68k/stand/xxboot/Makefile.xxboot:1.9	Sat Jan 18 06:34:30 2020
+++ src/sys/arch/x68k/stand/xxboot/Makefile.xxboot	Sat Jan 18 06:44:23 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.xxboot,v 1.9 2020/01/18 06:34:30 isaki Exp $
+#	$NetBSD: Makefile.xxboot,v 1.10 2020/01/18 06:44:23 isaki Exp $
 
 NOMAN=		# defined
 
@@ -39,7 +39,7 @@ CPPFLAGS+= -DBOOT_STAGE1 $(BOOTCPPFLAGS)
 CPPFLAGS+= -nostdinc -I${.OBJDIR} -I${S}
 CPPFLAGS+= -I$M/stand/libiocs -I$M/stand/libsa -I$M/stand/common
 AFLAGS=	   ${CFLAGS:M-[ID]*}
-LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/../xxboot.ldscript -M
+LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/../xxboot.ldscript
 LINKFLAGS+=  --defsym=TEXTADDR=$(TEXT)
 LINKFLAGS+=  --defsym=TEXTDATASIZE=$(TEXTDATASIZE)
 LIBIOCS!= cd $M/stand/libiocs && ${PRINTOBJDIR}
@@ -59,27 +59,10 @@ SRCS+=	exec_image.S
 
 .include "${.CURDIR}/../../Makefile.booters"
 
-CLEANFILES+=	${PROG}.x $(PROG).map ${PROG}
-
 
 ${PROG}: $(OBJS)
 	${_MKTARGET_LINK}
-	$(LD) $(LINKFLAGS) -o ${PROG} $(OBJS) $(LDLIBS) > $(PROG).map
-	@grep first_kbyte $(PROG).map
-	@if [ `${TOOL_AWK}						   \
-	    '/first_kbyte/ {print "eval(eval("$$1")-eval('$(TEXT)'))"}'	   \
-	    $(PROG).map | ${TOOL_M4} -` -gt 1024 ];			   \
-	then echo '$(BOOT): first_kbyte exceeds the first killobyte';	   \
-	    rm $(PROG) ; exit 1; 					   \
-	fi
-	@if [ `${TOOL_AWK}						   \
-	    '/_edata/ {print "eval(eval("$$1")-eval('$(TEXT)'))"}'	   \
-	    $(PROG).map | ${TOOL_M4} -`					   \
-	    -gt								   \
-	    `echo 'eval($(TEXTDATASIZE))' | ${TOOL_M4} -` ];		   \
-	then echo '$(BOOT): text+data is too large';			   \
-	    rm $(PROG) ; exit 1; 					   \
-	fi
+	$(LD) $(LINKFLAGS) -o ${PROG} $(OBJS) $(LDLIBS)
 	${TOUCHPROG}
 
 .include <bsd.prog.mk>

Index: src/sys/arch/x68k/stand/xxboot/xxboot.ldscript
diff -u src/sys/arch/x68k/stand/xxboot/xxboot.ldscript:1.3 src/sys/arch/x68k/stand/xxboot/xxboot.ldscript:1.4
--- src/sys/arch/x68k/stand/xxboot/xxboot.ldscript:1.3	Sat Jan 18 06:03:03 2020
+++ src/sys/arch/x68k/stand/xxboot/xxboot.ldscript	Sat Jan 18 06:44:23 2020
@@ -46,3 +46,5 @@ SECTIONS
   }
   /DISCARD/ : { *(.ident) *(.stab) *(.stabstr) }
 }
+
+ASSERT(first_kbyte - TEXTADDR <= 1024, "Error: first_kbyte exceeds 1KB");

Reply via email to