https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289614

            Bug ID: 289614
           Summary: buildworld: legacy binaries are used when MK_CLEAN=no
                    for cleanups
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: [email protected]
          Reporter: [email protected]

This is somewhat obscure but real use case.

When a shared library bump happens, the old shared library is added to
ObsoleteFiles.inc and will be removed in the next `make delete-old-libs` run. 
However, the "legacy" binaries at /usr/obj/usr/src/amd64.amd64/tmp/legacy are
not automatically refreshed, therefore when make is trying to clean up stale
files in build tree, if MK_CLEAN is no, then it would use these binaries (and
because the old shared library is already removed, e.g. `env` would fail
because libutil.so.9 is now gone.

To reproduce:

1. Create a FreeBSD 14.3 environment.
2. Checkout FreeBSD 15.0 source tree, make buildworld buildkernel; make
installkernel, reboot, make installworld, yes | make delete-old delete-old-libs

Now `make buildworld` would no longer work until
/usr/obj/usr/src/amd64.amd64/tmp/legacy is removed, or WITH_CLEAN=yes is
passed.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to