Re: src upgrade locally vs nfs from RELENG_12 to RELENG_13
Date: Mon, 12 Feb 2024 21:52:15 UTC
On Mon, 12 Feb 2024 16:04:29 -0500 mike tancsa <mike@sentex.net> wrote: > Hi All, > > Starting to plan to upgrade a few remaining RELENG_12 servers to 13. > Was hoping I could just do an nfs mount of /usr/src and /usr/obj of a > 13 build server, but it does not seem to work when going from > RELENG_12 to RELENG_13. > > root@proxytest:/usr/src # make installkernel > -------------------------------------------------------------- > >>> Install check kernel > -------------------------------------------------------------- > -------------------------------------------------------------- > >>> Installing kernel GENERIC on Mon Feb 12 20:58:06 UTC 2024 > -------------------------------------------------------------- > cd /usr/obj/usr/src/amd64.amd64/sys/GENERIC; MACHINE_ARCH=amd64 > MACHINE=amd64 CPUTYPE= CC="cc -target x86_64-unknown-freebsd13.3 > --sysroot=/usr/obj/usr/src/amd64.amd64/tmp > -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CXX="c++ -target > x86_64-unknown-freebsd13.3 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp > -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CPP="cpp -target > x86_64-unknown-freebsd13.3 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp > -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" AS="as" AR="ar" > ELFCTL="elfctl" LD="ld" LLVM_LINK="" NM=nm OBJCOPY="objcopy" > RANLIB=ranlib STRINGS= SIZE="size" STRIPBIN="strip" > PATH=/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin > make KERNEL=kernel install > ld-elf.so.1: /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/make: > Undefined symbol "regcomp@FBSD_1.6" > *** Error code 1 > > Stop. > make[1]: stopped in /usr/src > *** Error code 1 > > root@proxytest:/usr/src # > > > But if I clone the releng13 source locally and then do a make > buildworld/buildkernel, doing a make installkernel works. Is there a > way to get it to work over nfs ? What do I need to build on the > buildserver so I dont have to build locally each time on the > RELENG_12 boxes I want to upgrade ? > > ---Mike > > The most likely problem: - Toolchain ABI compatibility How to fix the problem: - Create a 12-RELEASE jail with a clean /etc/make.conf and /usr/src and build inside that. - Share the resulting /usr/obj with the host needing to be upgraded. The problem in more detail: The toolchain stages of building FreeBSD link to the libraries on the build host. Since your build host is from FreeBSD 13-* the toolchain programs are linked to a slightly newer ABI than the FreeBSD 12-* targets support.