Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: sysbuild of netbsd-10 from netbsd-10 fails after upgrade of itself
hello. I think this is the same issue I wrote about last week trying to build 9.99.77 on
a 10.99.12 system.
-thanks
-Brian
On Oct 7, 2:43pm, "Greg A. Woods" wrote:
} Subject: sysbuild of netbsd-10 from netbsd-10 fails after upgrade of itsel
} --pgp-sign-Multipart_Tue_Oct__7_14:43:48_2025-1
} Content-Type: text/plain; charset=US-ASCII
} Content-Transfer-Encoding: quoted-printable
}
} [[ I'm not sure where to direct this, so I'm CCing current-users... ]]
}
} I've been running sysbuild daily on a stock NetBSD/i386-10.0 system
} since 2024/08/09. There have been very few failures since then and none
} without obvious related changes coming from CVS, and they've all
} resolved themselves with subsequent updates.
}
} Yesterday (2024/10/06) I finally did an upgrade of the system itself
} from yesterday's build, and this morning I find the following failure in
} the latest log:
}
} # link binstall/xinstall
} cc -O -I/home/sysbuild/i386/obj/home/sysbuild/src/tools/compat -I/home/sysb=
} uild/i386/obj/home/sysbuild/src/tools/compat/include -I/home/sysbuild/src/t=
} ools/compat -DHAVE_NBTOOL_CONFIG_H=3D1 -D_FILE_OFFSET_BITS=3D64 -I/home/sys=
} build/src/tools/binstall/../compat/sys -DTARGET_STRIP=3D\"/home/sysbuild/i3=
} 86/tools/bin/i486--netbsdelf-strip\" -I/home/sysbuild/src/usr.sbin/mtree =
} -o xinstall xinstall.lo getid.lo -L/home/sysbuild/i386/obj/home/sysbuild/sr=
} c/tools/compat -lnbcompat -lrt -lz
} ld: /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/libnbcompat.a(sh=
} a2.lo): in function `SHA256_Transform':
} sha2.c:(.text+0x11b): undefined reference to `be32dec'
} ld: /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/libnbcompat.a(sh=
} a2.lo): in function `SHA224_256_Final':
} sha2.c:(.text+0x4fe): undefined reference to `be32enc'
} ld: /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/libnbcompat.a(sh=
} a2.lo): in function `SHA512_Transform':
} sha2.c:(.text+0xaf9): undefined reference to `be64dec'
} ld: /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/libnbcompat.a(sh=
} a2.lo): in function `SHA512_Final':
} sha2.c:(.text+0x1665): undefined reference to `be64enc'
} ld: /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/libnbcompat.a(sh=
} a2.lo): in function `SHA384_Final':
} sha2.c:(.text+0x1824): undefined reference to `be64enc'
} *** Failed target: xinstall
} *** Failed commands:
} ${_MKTARGET_LINK}
} =3D> @echo '# ' " link " binstall/xinstall
} ${HOST_LINK.c} ${HOST_LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
} =3D> cc -O -I/home/sysbuild/i386/obj/home/sysbuild/src/tools/compat=
} -I/home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/include -I/home/s=
} ysbuild/src/tools/compat -DHAVE_NBTOOL_CONFIG_H=3D1 -D_FILE_OFFSET_BITS=3D6=
} 4 -I/home/sysbuild/src/tools/binstall/../compat/sys -DTARGET_STRIP=3D\"/hom=
} e/sysbuild/i386/tools/bin/i486--netbsdelf-strip\" -I/home/sysbuild/src/usr.=
} sbin/mtree -o xinstall xinstall.lo getid.lo -L/home/sysbuild/i386/obj/hom=
} e/sysbuild/src/tools/compat -lnbcompat -lrt -lz
} *** [xinstall] Error code 1
} nbmake[7]: stopped in /home/sysbuild/src/tools/binstall
} 1 error
}
}
}
} There were no related source changes in the daily "cvs update", but this
} is part of the tools build, so I assume it's something that changed
} during the upgrade.
}
} My libnbcompat.a is not stale -- it was rebuilt today. Indeed the
} object causing the failure was also rebuilt today:
}
} $ ll /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/sha2.lo
} 24 -rw-r--r-- 1 sysbuild sysbuild 10500 Oct 7 00:20 /home/sysbuild/i386=
} /obj/home/sysbuild/src/tools/compat/sha2.lo
}
}
} Those beNNXXc() functions should be inlined, I think -- they are defined
} in <sys/endian.h> via a set of macros for any compiler since gcc-2.95.
}
} However they do not get inlined:
}
} $ nm /home/sysbuild/i386/obj/home/sysbuild/src/tools/compat/sha2.lo
} 00000340 r K256
} 00000080 r K512
} 000002d5 t SHA224_256_Final
} 00000914 T SHA224_Final
} 00000834 T SHA224_Init
} 000008f8 T SHA224_Transform
} 000008d5 T SHA224_Update
} 0000081f T SHA256_Final
} 00000000 T SHA256_Init
} 000000a1 T SHA256_Transform
} 0000056e T SHA256_Update
} 000017ef T SHA384_Final
} 000016bd T SHA384_Init
} 000017d3 T SHA384_Transform
} 000017b0 T SHA384_Update
} 00001630 T SHA512_Final
} 00000929 T SHA512_Init
} 00000fec t SHA512_Last
} 00000a1c T SHA512_Transform
} 000012ad T SHA512_Update
} U be32dec
} U be32enc
} U be64dec
} U be64enc
} 00000320 r sha224_initial_hash_value
} 00000300 r sha256_initial_hash_value
} 00000040 r sha384_initial_hash_value
} 00000000 r sha512_initial_hash_value
}
}
} =46rom a little earlier in the build log I see that indeed the inline
} definitions were not used:
}
} # compile compat/sha2.lo
} cc -O -I. -I./include -I/home/sysbuild/src/tools/compat -I/home/sysbuild/=
} src/tools/compat/sys -DHAVE_NBTOOL_CONFIG_H=3D1 -D_FILE_OFFSET_BITS=3D64 -=
} I. -I./include -I/home/sysbuild/src/tools/compat -I/home/sysbuild/src/tools=
} /compat/sys -DHAVE_NBTOOL_CONFIG_H=3D1 -D_FILE_OFFSET_BITS=3D64 -D__DBINTER=
} FACE_PRIVATE -c -o sha2.lo.o /home/sysbuild/src/tools/compat/../../commo=
} n/lib/libc/hash/sha2/sha2.c
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c: In =
} function 'SHA256_Transform':
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c:388:=
} 13: warning: implicit declaration of function 'be32dec' [-Wimplicit-functio=
} n-declaration]
} 388 | W256[j] =3D be32dec(data);
} | ^~~~~~~
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c: In =
} function 'SHA224_256_Final':
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c:564:=
} 4: warning: implicit declaration of function 'be32enc' [-Wimplicit-function=
} -declaration]
} 564 | be32enc(digest + 4 * i, context->state[i]);
} | ^~~~~~~
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c: In =
} function 'SHA512_Transform':
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c:729:=
} 13: warning: implicit declaration of function 'be64dec' [-Wimplicit-functio=
} n-declaration]
} 729 | W512[j] =3D be64dec(data);
} | ^~~~~~~
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c: In =
} function 'SHA512_Final':
} /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha2/sha2.c:912:=
} 4: warning: implicit declaration of function 'be64enc' [-Wimplicit-function=
} -declaration]
} 912 | be64enc(digest + 8 * i, context->state[i]);
} | ^~~~~~~
}
}
} So this appears to be due to fallout from the following change:
}
}
} revision 1.31.4.2
} date: 2025-04-12 05:56:47 -0700; author: martin; state: Exp; lines: +16 =
} -16; commitid: yyI3PgWxFB7QjLQF;
} Pull up following revision(s) (requested by rin in ticket #1095):
}
} sys/sys/endian.h: revision 1.36
} sys/sys/endian.h: revision 1.37
}
} endian.h: Consistently use __CAST() where appropriate, NFC
}
} In preparation for PR lib/57478
} endian.h: Cast to suitable type when byte order conversion is NOP
}
} Otherwise, e.g., following examples do not work as expected on
} big-endian machines:
} - printf("%x\n", ntohl(0x01234567890abcdefULL);
} - uint64_t u64 =3D ntohl(0x01234567890abcdefULL);
} - etc.
}
} Fix PR lib/57478
}
} I've been tested this patch both on big-/little-endian and
} LP64/ILP32 environments over a year without troubles.
}
}
} But I don't understand why! It's looking more like a compiler bug!
}
} When I look at the post-CPP output of the compiler for sha2.c I find
} that it drops out of including <machine/bswap.h> and suddenly instead of
} continuing in <sys/endian.h> it is jumping into <i386/endian.h> and then
} on to <sys/types.h>!!!:
}
} # 12 "/usr/include/i386/bswap.h" 2 3 4
} # 110 "/usr/include/sys/endian.h" 2 3 4
} # 4 "/usr/include/i386/endian.h" 2 3 4
} # 99 "/usr/include/sys/types.h" 2 3 4
}
} There is obviously no include of <machine/endian.h> or <i386/endian.h>
} after line 100 of <sys/endian.h>! In fact there are no more #include
} lines in <sys/endian.h> after the include of <machine/bswap.h>. Where
} did the rest of <sys/endian.h> go?!?!??
}
}
} That's from:
}
} cc -E -I. -I./include -I/home/sysbuild/src/tools/compat -I/home/sysbuild/sr=
} c/tools/compat/sys -DHAVE_NBTOOL_CONFIG_H=3D1 -D_FILE_OFFSET_BITS=3D64 -I.=
} -I./include -I/home/sysbuild/src/tools/compat -I/home/sysbuild/src/tools/c=
} ompat/sys -DHAVE_NBTOOL_CONFIG_H=3D1 -D_FILE_OFFSET_BITS=3D64 -D__DBINTERFA=
} CE_PRIVATE /home/sysbuild/src/tools/compat/../../common/lib/libc/hash/sha=
} 2/sha2.c 2>&1 | less
}
} I'm at a loss.
}
} --=20
} Greg A. Woods <gwoods%acm.org@localhost>
}
} Kelowna, BC +1 250 762-7675 RoboHack <woods%robohack.ca@localhost>
} Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
}
} --pgp-sign-Multipart_Tue_Oct__7_14:43:48_2025-1
} Content-Type: application/pgp-signature
} Content-Transfer-Encoding: 7bit
} Content-Description: OpenPGP Digital Signature
}
} -----BEGIN PGP SIGNATURE-----
}
} iF0EABECAB0WIQRuK6dmwVAucmRxuh9mfXG3eL/0fwUCaOWJlwAKCRBmfXG3eL/0
} f61AAKDWtsTyXdT+jsSolgvmIVWeKH+HPgCgl0PJz61Yac6UlLWikLhzBx6A7Yg=
} =bdWQ
} -----END PGP SIGNATURE-----
}
} --pgp-sign-Multipart_Tue_Oct__7_14:43:48_2025-1--
>-- End of excerpt from "Greg A. Woods"
Home |
Main Index |
Thread Index |
Old Index