Re: ar: error: libclang.a: 'ParseDecl.o': section header table goes past EOF [So far: unable to reproduce, even based on llvm19 involvement]
bob prohaska <[email protected]> Wed, 13 May 2026 15:44:39 -0700
| Newsgroups | gmane.os.freebsd.devel.arm |
|---|---|
| Message-ID | <[email protected]> |
On Wed, May 13, 2026 at 01:17:48PM -0700, Mark Millard wrote: > On 5/13/26 12:26, bob prohaska wrote: > > On Wed, May 13, 2026 at 10:34:34AM -0700, Mark Millard wrote: > >> On 5/13/26 09:48, bob prohaska wrote: > >>> Hi Mark, > >>> > >>> On Sat, May 09, 2026 at 08:56:32PM -0700, Mark Millard wrote: > >>>> On 5/9/26 18:41, bob prohaska wrote: > >>> > >>> After make buildworld completed successfully a > >>> subsequent git pull found a significant number of > >>> updates, so make buildworld is running again to > >>> catch up. > >>> > >>> One lingering puzzle is whether it's prudent to > >>> run make installworld > >> > >> I presume buildworld is also being referenced here. > > > > The cyle is usually git pull on a running version, make buildworld, > > then re-run git pull to see if anything that looks important has been > > updated over the (possibly days-long) buildworld run. At this stage > > a re-run of buildworld is (relatively) quick. Once installworld has > > run, buildworld is quite time-consuming even if nothing has changed. > > An update to /usr/src can thus be quickly incorporated apart from clang. > > > >>> following a git pull that > >>> finds updates which appear inconsequential, for > >>> example man pages, tests or unused features like > >>> zfs or tests. Doing so saves quite some time on > >>> a Pi2. Does it introduce hazardous inconsistencies? > >> > >> An option is to use git fetch and then decide if to merge --ff-only vs. > >> not separately based on what the fetch reports, instead of always doing > >> both in sequence (via git pull). That way the "not" case leaves your > >> /usr/src/ checkout alone. But the merge is all or nothing if, say, only > >> the kernel has updates of interest as indicted by investigating the > >> fetch output. But doing that investigation might not be something you > >> would want to do based on what is output for a fetch: in involves > >> looking up the range of commits separately and reading about them. > >> > >> (Ignoring the above . . .) > >> > >> The below ignores when you are testing patches for problems that you > >> have run into and someone has you running either information > >> investigative runs or bug fix tests. In such contexts of having a > >> problem, you should get your /usr/src/ source code and live system to be > >> correctly matched, likely by switching to an older commit that matches > >> what you are running (that you would need to know the hash for): > >> detached HEAD. Later you would go back to HEAD on the branch before > >> doing other git activities that update. > >> > >> So far as I know, you do not use the source tree in any way other than > >> for building/installing. For example, you usually do not look at the > >> code to analyze it for issues that you see on the systems --as far as I > >> know. > >> > > > > The best I can do is look at the list of updated files presented by git pull. > > If something that might be relevant (the VM system or a troublesome driver) > > is listed, immediately re-building world and kernel is relatively quick. > > When the updates appear to be unrelated features or userland programs I > > don't use there's a strong temptation to run make install and reboot. ZFS > > would be a good example: I don't use it and suppose, perhaps wrongly, that > > changes to ZFS aren't going to affect a UFS installation. > > > > In contrast, any change to clang potentially affects everything and > > motivates another pass of buildworld. > > > > That's the limit of my analytical ability.... > > > > The question seems to be: Are changes to /usr/src not yet compiled into > > /usr/obj/ able to interfere with installworld or installkernel? Up to > > now I've thought not. Maybe I'm wrong. > > Ahh, the likes of something like the sequence: > > cd /usr/src/ > git pull > buildworld > git pull > If wanted, go back to buildworld > buildkernel if appropriate > installkernel if appropriate > reboot if kernel was installed > installworld if appropriate > reboot if world was installed > > I was definitely attempting to answer the wrong question. > > The last git pull could delete things or otherwise change the operation > of installkernel and installworld that would happen, Makefiles having > changes to match teh updated source tree. So avoiding that would be part > of your "if wanted, go back to buildworld" judgment. > > And, suppose the 2nd git pull did something like the llvm19->llvm21 > change. Would you actually want to try to avoid the big change until > later --with the mismatch in place? Instead looking at the changes > elsewhere, such as via: > > <https://lists.freebsd.org/archives/dev-commits-src-main/YEAR-MONTH/date.html> > or: > https://cgit.freebsd.org/src/log/ > > would seem better than updating your live /usr/src/ to no longer match > what you might install. > For my level of understanding it appears that compiling after pulling is the only reliable way to ensure consistency of the install binaries. Directory-level makefiles are a particularly sensitive spot since I can't predict which source files might be affected without reading and understanding the Makefile and all that depend on it. > Another option could be to note the commit from the earlier git pull, > and after the 2nd git pull that you do not want to use, cause a > detached HEAD pointing at the prior pull's commit. Before the next pull, > you would need to restore to be using the 2nd pull's HEAD, if I remember > right. > Trying to work commit-by-commit seems like a good way to get lost. The introduction of commit numbers is a great improvement over the hashes, from a human point of view, but I gather git can't use those numbers to select what to fetch and compile. In that respect svn was nicer.... I got started on this path by being minute-wise and became hour-foolish. Time to mend my ways 8-) Thanks very much! bob prohaska