Build CRC calc/static block decode tables when needed to fix netboot
authorkn <kn@openbsd.org>
Thu, 6 Oct 2022 23:32:17 +0000 (23:32 +0000)
committerkn <kn@openbsd.org>
Thu, 6 Oct 2022 23:32:17 +0000 (23:32 +0000)
The last libz update broke sparc64's ofwboot.net on at least T4-2 machines
running OpenBoot 4.38.16 as bootblocks grew too big for OBP to load:

# size ofwboot.net.*
60684   596     2472    63752   f908    ofwboot.net.71
71340   596     2472    74408   122a8   ofwboot.net.snap

{0} ok boot net
Boot device: /virtual-devices@100/channel-devices@200/network@0  File and args:
TFTP: Transfer timed out

As suggested by tb, adapt b7dd453d18bbd69c3a22e9c7e44e83163348942a to make
OBP load and execute ofwboot.net over TFTP again on at least T4-2 and T5220
where ofwboot off disk keeps loading and both bootblocks boot plain and
gzipped kernels before.

Overall size is now smaller that 7.1 release:
-current
71340   596     2472    74408   122a8   ofwboot.net/obj/ofwboot.net
119580  532     2512    122624  1df00   ofwboot/obj/ofwboot
71140   532     2472    74144   121a0   ofwbootfd/obj/ofwbootfd
-current with -DDYNAMIC_CRC_TABLE -DBUILDFIXED
59788   608     15040   75436   126ac   ofwboot.net/obj/ofwboot.net
108028  544     15080   123652  1e304   ofwboot/obj/ofwboot
59588   544     15040   75172   125a4   ofwbootfd/obj/ofwbootfd

happy kettenis
OK tb

sys/arch/sparc64/stand/libz/Makefile

index 60f59c4..cd16375 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: Makefile,v 1.8 2012/08/30 19:29:14 pascal Exp $
+#      $OpenBSD: Makefile,v 1.9 2022/10/06 23:32:17 kn Exp $
 
 S=${.CURDIR}/../../../..
 ZDST=${.OBJDIR}
@@ -7,3 +7,4 @@ ZDST=${.OBJDIR}
 
 .include "${S}/lib/libz/Makefile"
 CFLAGS+=${CEXTRAFLAGS} ${AFLAGS} -I${S} -fno-pie
+CPPFLAGS+=-DDYNAMIC_CRC_TABLE -DBUILDFIXED