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 12:26:16 -0700
| Newsgroups | gmane.os.freebsd.devel.arm |
|---|---|
| Message-ID | <[email protected]> |
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. > main can be subject to a newer kernel and a somewhat older world not > being matched over a specific range of commits. (Development got > something wrong in the relationship that had to be fixed.) It is not > common. The goal is for newer main kernels to allow running older main > worlds going some notable distance back. > > But the source tree does not even have to exist on the system for system > operation that does not involve source-fetching/merging or builds/installs. > > It should normally be okay to make kernel-toolchain; make buildkernel; > make installkernel and reboot and to not update the world when the > kernel update is of interest but the world is not. Although, a kernel > update could have something new that a new world would put to use in how > it works. So sometimes you might want both just for that. > > Overall: yes, you could avoid buildworld and the later installworld in > various cases. Thanks for writing, bob prohaska