Re: git: 65f28f63a73d - main - tools/build: Create toolchain symlinks for non-absolute compiler/linker
Date: Fri, 28 Jul 2023 18:48:26 UTC
On 28 Jul 2023, at 19:40, Renato Botelho <garga@FreeBSD.org> wrote: > > On 27/07/23 01:12, Jessica Clarke wrote: >> The branch main has been updated by jrtc27: >> URL: https://cgit.FreeBSD.org/src/commit/?id=65f28f63a73d3371d9d724a2018be6d1ada0d3e0 >> commit 65f28f63a73d3371d9d724a2018be6d1ada0d3e0 >> Author: Jessica Clarke <jrtc27@FreeBSD.org> >> AuthorDate: 2023-07-27 04:10:47 +0000 >> Commit: Jessica Clarke <jrtc27@FreeBSD.org> >> CommitDate: 2023-07-27 04:10:47 +0000 >> tools/build: Create toolchain symlinks for non-absolute compiler/linker >> If any of the toolchain variables are not absolute then we need to >> create a symlink in WORLDTMP/legacy/bin in order to make them available >> during a BUILD_WITH_STRICT_TMPPATH build. >> Reviewed by: brooks, jhb >> Differential Revision: https://reviews.freebsd.org/D41188 > > I'm having problems with etcupdate and I suspect this can be the commit that caused the trouble. After installworld/installkernel on a chroot Boot Environment directory, etcupdate fails with following error message: > > Failed to build new tree. > > I've checked etcupdate log and saw this: > > cd /usr/src/tools/build; make DIRPRFX=tools/build/ DESTDIR=/var/db/etcupdate/etcupdate-8C3uJ1L/usr/obj/usr/src/amd64.amd64/tmp/legacy host-symlinks > Linking host tools into /var/db/etcupdate/etcupdate-8C3uJ1L/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin > cp: /usr/bin/basename: Cross-device link That’ll be 246364454fc1 ("etcupdate: Use new buildetc and installetc targets when available”) which exposed; this commit is just for cc/c++/cpp/ld, and creates actual symlinks. On FreeBSD we copy rather than symlink tools so that we don’t have issues during installworld. But we’re not actually trying to create any hardlinks, just copy. What you’re discovering is that you’re on one of the FreeBSD versions where ZFS’s clone_range is broken (exposes EXDEV when it’s supposed to be handled by the kernel with a fallback implementation) and cp is using clone_range. Update your kernel first and all should be good. Jess