[I've dropped portmgr, having already sent the one message.] On Dec 23, 2025, at 14:28, Mark Millard <[email protected]> wrote:
> Dimitry Andric <dim_at_FreeBSD.org> wrote on > Date: Tue, 23 Dec 2025 21:08:31 UTC : > >> On 23 Dec 2025, at 22:04, Dimitry Andric <[email protected]> wrote: >>> >>> The branch main has been updated by dim: >>> >>> URL: >>> https://cgit.FreeBSD.org/src/commit/?id=8d5a11cd0137d3ad70f6b06e063ea91a776d510a >>> >>> commit 8d5a11cd0137d3ad70f6b06e063ea91a776d510a >>> Author: Dimitry Andric <[email protected]> >>> AuthorDate: 2025-06-18 10:06:25 +0000 >>> Commit: Dimitry Andric <[email protected]> >>> CommitDate: 2025-12-23 21:01:40 +0000 >>> >>> src.conf: Add WITH_LLVM_LINK_STATIC_LIBRARIES build knob >>> >>> In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into >>> private shared libraries. This allowed clang, lld, lldb, and other llvm >>> tools to be linked against these shared libraries, which makes them >>> smaller and avoids duplication. >>> >>> However, this also comes at the cost of some performance, since the >>> dynamic libraries are quite large, and contain lots of long symbols >>> (mangled C++ identifiers). >>> >>> Add a WITH_LLVM_LINK_STATIC_LIBRARIES build knob that can be used to go >>> back to the previous behavior: libllvm, libclang and liblldb are built >>> as internal static libraries, i.e. only available during buildworld, and >>> fully linked into the various executables such as clang, lld, etc. >>> >>> PR: 287447 >>> Reviewed by: emaste >>> MFC after: 1 week >>> Differential Revision: https://reviews.freebsd.org/D50956 >> >> NOTE: toggling this option requires a full clean build, at least until >> https://reviews.freebsd.org/D52011 lands. > > A significant question question here (after the MFC activity: > for more than main) that is especially significant for the > ampere* port-package builder machines (slower and few of them > vs. the number of types of builds) but also for other of the > more time-taking builder machines: > > Will the poudriere port-package build jails be built based > on using WITH_LLVM_LINK_STATIC_LIBRARIES ? > > (The boot kernel and boot world are not the issue.) > > The performance difference between 14.3-RELEASE and 14.3-STABLE > jails is large on aarch64 in my testing. (No such comparison > is available for ampere* builds: no 14.3-STABLE build history > logs exist to compare against.) > > 14.3-RELEASE predates the shared library change. 14.3-STABLE > currently is using the shared libraries (before being shrunk > some). > > 00:09:18 14.3-RELEASE -> 00:12:19 14.3-STABLE, ratio about 1.32, for > cmake-core-3.31.9 on the Windows Dev Kit 2023 (using all 8 cores) I realized that the modern poudriere-devel in use actually has the real time showing at the end of the build log. Thus checking both the elapsed-time ratio and the user-cpu-time ratio is available for comparison/contrast: # tail -3 /usr/local/poudriere/data/logs/bulk/*14-aarch64-default/latest-per-pkg/cmake-core*.log ==> /usr/local/poudriere/data/logs/bulk/official14-aarch64-default/latest-per-pkg/cmake-core-3.31.9.log <== build time: 00:12:50 times end [shell] (user/sys/real): 0m0.000s 0m0.040s 12m50.000s times end [child] (user/sys/real): 76m41.023s 3m49.860s 12m50.000s ==> /usr/local/poudriere/data/logs/bulk/release14-aarch64-default/latest-per-pkg/cmake-core-3.31.9.log <== build time: 00:09:19 times end [shell] (user/sys/real): 0m0.029s 0m0.018s 9m19.000s times end [child] (user/sys/real): 57m9.237s 3m2.719s 9m19.000s For 76m41.023s/57m9.237s approx.= 1.34 So: not much different than the elapsed time ratio. > (Those, of course, ares not matching contexts to how official > builds are done. But the above avoided any jemalloc 5.3.0 > involvement in causing the time ratio observed. Comparison > and contrasts with 15.0-RELEASE do not avoid such. I could > build other examples.) > > The best match that I have for ampere* numbers that is using > 150arm64 builds and 143arm64 builds: > > 38:25:51 14.3-RELEASE -> 53:33:46 15.0-RELEASE, ratio about 1.39, for > qt6-webengine-6.9.3 on the ampere*'s > 15:24:24 14.3-RELEASE -> 21:26:14 15.0-RELEASE, ratio about 1.39, for > llvm21-21.1.2 on the ampere*'s > > 15.0-RELEASE has the toolchain programs using the shared > libraries. > > These sorts of figures can be explored from the official logs > that exist --but 15.0 has more differences than just use of > the shared libraries by the toolchain programs. > > I'd consider time ratios of 1.3+ significant. === Mark Millard marklmi at yahoo.com
