pkg icon indicating copy to clipboard operation
pkg copied to clipboard

pkg solver is looking at too many packages

Open markjdb opened this issue 3 months ago • 12 comments

I tried upgrading some pkgbase systems from 15.0-PRERELEASE to 16.0-CURRENT. First the kernels:

# pkg -o ABI=FreeBSD:16:amd64 upgrade -r FreeBSD-base -g FreeBSD-kernel-*
...
Installed packages to be UPGRADED:
        FreeBSD-kernel-generic: 15.snap20250801045022 -> 16.snap20250918050214 [FreeBSD-base]
        FreeBSD-kernel-generic-dbg: 15.snap20250801045022 -> 16.snap20250918050214 [FreeBSD-base]
        FreeBSD-kernel-generic-nodebug: 15.snap20250801045022 -> 16.snap20250918050214 [FreeBSD-base]
        FreeBSD-kernel-generic-nodebug-dbg: 15.snap20250801045022 -> 16.snap20250918050214 [FreeBSD-base]
        FreeBSD-kernel-man: 15.snap20250801045022 -> 16.snap20250918050214 [FreeBSD-base]
...
# shutdown -r now

So far so good. Now I want to update clibs before updating everything else:

# pkg -o ABI=FreeBSD:16:amd64 upgrade -r FreeBSD-base -g FreeBSD-clibs-*
...
The following 858 package(s) will be affected (of 0 checked):                                                                                                  
                                                                                                                                                               
New packages to be INSTALLED:                                                                                                                                  
        FreeBSD-openssl-lib32: 16.snap20250918050214 [FreeBSD-base]                                                                                            
        FreeBSD-ufs-lib: 16.snap20250918050214 [FreeBSD-base]                                                                                                  
        FreeBSD-zfs-lib: 16.snap20250918050214 [FreeBSD-base]                                                                                                  
                                                                                                                                                               
Installed packages to be UPGRADED:                                                                                                                             
        FreeBSD-blocklist: 15.snap20250819050141 -> 16.snap20250918050214 [FreeBSD-base]                                                                                                                                                                                                                                      
        FreeBSD-blocklist-dev: 15.snap20250819050141 -> 16.snap20250918050214 [FreeBSD-base]                                                                                                                                                                                                                                  
        FreeBSD-blocklist-dev-lib32: 15.snap20250819050141 -> 16.snap20250918050214 [FreeBSD-base]
...
Installed packages to be REMOVED:
        ImageMagick7-nox11: 7.1.1.45_1                                                                                                                         
        Imath: 3.1.12                                                                                                                                                                                                                                                                                                         
        OpenSP: 1.5.2_4                                                                                                                                                                                                                                                                                                       
        aarch64-binutils: 2.44,1                                                                                                                                                                                                                                                                                              
        aarch64-gcc13: 13.2.0_2                                                                                                                                                                                                                                                                                               
        aarch64-none-elf-binutils: 2.44,1                                                                                                                                                                                                                                                                                     
        aarch64-none-elf-gcc: 11.3.0_3                                                                                                                         
        abseil: 20250127.0

Eh, well, this is silly:

  1. I only want to upgrade clibs, which contains versioned shlibs that offer backward binary compat, so there's no need to upgrade other pkgbase packages.
  2. I specified the packages and repo I want to upgrade. I'm not bumping any shared libraries, just changing the ABI. Why won't pkg just leave unrelated packages alone?

I think the problem is that multiple packages can provide the "same" shlib. For instance, FreeBSD-clibs and gcc13 both provide libgcc_s.so.1. So when I ask pkg to upgrade FreeBSD-clibs-*, pkg_jobs_universe_process_shlibs() -> pkg_jobs_universe_handle_provide() pulls in all of the installed packages which provide libgcc_s.so.1, since it's required in order to upgrade FreeBSD-clibs-dev, which matches my glob. Then the jobs code notes that gcc13 needs to be upgraded since it depends on libc.so.7 and libc.so.7's ABI is changing, and and...

What can we do? My first solution is to relax ABI checking in the solver. If a FreeBSD:16:amd64 package provides libfoo.so.3, why not let a FreeBSD:15:amd64 package depend on it?

The more general solution would be to avoid blindly adding packages to the universe when they don't need to be there. For instance, if I'm upgrading FreeBSD-clibs-*, then all dependencies are already satisfied, there's no reason to bring in all packages which provide a given shlib. But then what's the right condition for adding a shlib provider to the universe?

markjdb avatar Sep 18 '25 22:09 markjdb

@kevans91 or @ifreund might be interested in this.

markjdb avatar Sep 18 '25 22:09 markjdb

I think this is because provides/requires were reverted?

arrowd avatar Sep 19 '25 05:09 arrowd

I agree we can probably relax it and only check FreeBSD:*:amd64. About blindly adding packages to the universe, if you mean by that, yes a gate keeping which says all my dependency are satisfied and I am not breaking anyone else dependency would be fine to me, this "blind" addition of packages is there to make sure we don't break anyone else dependency iirc.

bapt avatar Sep 19 '25 07:09 bapt

I think this is because provides/requires were reverted?

What exactly is "this"? Could you please say more?

I agree we can probably relax it and only check FreeBSD:*:amd64. About blindly adding packages to the universe, if you mean by that, yes a gate keeping which says all my dependency are satisfied and I am not breaking anyone else dependency would be fine to me, this "blind" addition of packages is there to make sure we don't break anyone else dependency iirc.

I think we still have to check that the shlib provider is not older than the consumer. i.e., if the shlib provider has ABI FreeBSD:15:amd64, then we cannot install a FreeBSD:16:amd64 package which requires that shlib. The consumer may depend on new symbols not present in older copies of the shlib.

Regarding blindly adding packages to the universe, I mean the loop in pkg_jobs_universe_handle_provide(). We add all locally installed providers of libgcc_s.so.1 to the universe, even though a provider already exists within the universe.

It seems to me that we should avoid adding extra packages to the universe in this case, where a package is already present in the universe->provides table. Maybe that would break something though.

markjdb avatar Sep 19 '25 21:09 markjdb

What exactly is "this"? Could you please say more?

Nevermind, ignore my comment. I somehow decided that the reason for those packages' removal was that they are using direct dependencies on FreeBSD-* packages rather via provides/requires. But this is obviously a brainfart of me.

arrowd avatar Sep 25 '25 17:09 arrowd

Possibly related: On an EC2 "small" AMI (aka pkgbase install of FreeBSD-set-base but not FreeBSD-set-lib32), installing ebsnvme-id results in random other packages being installed:

New packages to be INSTALLED:
        binutils: 2.44,1 [FreeBSD-ports]
        ebsnvme-id: 1.0.3_1 [FreeBSD-ports]
        gcc12-devel: 12.4.1.s20250702 [FreeBSD-ports]
        gmp: 6.3.0 [FreeBSD-ports]
        indexinfo: 0.3.1_1 [FreeBSD-ports]
        liblz4: 1.10.0,1 [FreeBSD-ports]
        mpc: 1.3.1_1 [FreeBSD-ports]
        mpfr: 4.2.2,1 [FreeBSD-ports]
        zstd: 1.5.7 [FreeBSD-ports]

This problem goes away if the package FreeBSD-clibs-lib32 is installed.

cperciva avatar Oct 06 '25 21:10 cperciva

I note that FreeBSD-clibs-lib32 contains:

/libexec/ld-elf32.so.1
/usr/lib32/libc++.so.1
/usr/lib32/libc.so.7
/usr/lib32/libcxxrt.so.1
/usr/lib32/libdl.so.1
/usr/lib32/libgcc_s.so.1
/usr/lib32/libm.so.5
/usr/lib32/librt.so.1
/usr/lib32/libssp.so.0
/usr/lib32/libsys.so.7
/usr/lib32/libthr.so.3
/usr/lib32/libxnet.so
/usr/libexec/ld-elf32.so.1

Is it possible that pkg is getting confused between /usr/lib/libgcc_s.so.1 and /usr/lib32/libgcc_s.so.1?

cperciva avatar Oct 06 '25 21:10 cperciva

Debug log (5MB) from installing ebsnvme-id into the lib32-free system mentioned above:

debug.log

cperciva avatar Oct 06 '25 21:10 cperciva

Debug log (5MB) from installing ebsnvme-id into the lib32-free system mentioned above:

debug.log

Lots of references to various gcc*'s having libgcc_s.so.1:32 --and having other :32 references : (note: -Wl,-rpath= use is part of correctly referencing such libraries provided by the lang/gcc*) (note: use of any of the lang/gcc* libraries such as a libgcc_s.so.1 by any other context would be odd)

~/Downloads/debug.log:7077: DBG(4)[18670]> (universe) add new provide gcc13-13.3.0_3(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7100: DBG(4)[18670]> (universe) append provide gcc12-12.4.0_3(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7123: DBG(4)[18670]> (universe) append provide gcc12-devel-12.4.1.s20250702(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7146: DBG(4)[18670]> (universe) append provide gcc13-devel-13.4.1.s20250918(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7169: DBG(4)[18670]> (universe) append provide gcc14-14.2.0_4(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7192: DBG(4)[18670]> (universe) append provide gcc14-devel-14.3.1.s20250919,1(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7215: DBG(4)[18670]> (universe) append provide gcc15-15.2.0_1(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7238: DBG(4)[18670]> (universe) append provide gcc15-devel-15.2.1.s20250920(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:7261: DBG(4)[18670]> (universe) append provide gcc16-devel-16.0.0.s20250921(r) for require libgcc_s.so.1:32
~/Downloads/debug.log:9058: DBG(1)[18670]> (solver) for package: gnat13 cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:9061: DBG(1)[18670]> (solver) for package: gnat13 cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:9070: DBG(1)[18670]> (solver) for package: gnat13 cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:9077: DBG(1)[18670]> (solver) for package: gnat13 cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:9080: DBG(1)[18670]> (solver) for package: gnat13 cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:9083: DBG(1)[18670]> (solver) for package: gnat13 cannot find provide for requirement: libutil.so.10:32
~/Downloads/debug.log:9613: DBG(1)[18670]> (solver) for package: gcc15 cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:9616: DBG(1)[18670]> (solver) for package: gcc15 cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:9621: DBG(1)[18670]> (solver) for package: gcc15 cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:9628: DBG(1)[18670]> (solver) for package: gcc15 cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:9631: DBG(1)[18670]> (solver) for package: gcc15 cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:9760: DBG(1)[18670]> (solver) for package: gcc14-devel cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:9763: DBG(1)[18670]> (solver) for package: gcc14-devel cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:9768: DBG(1)[18670]> (solver) for package: gcc14-devel cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:9775: DBG(1)[18670]> (solver) for package: gcc14-devel cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:9778: DBG(1)[18670]> (solver) for package: gcc14-devel cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:9783: DBG(1)[18670]> (solver) for package: gcc14 cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:9786: DBG(1)[18670]> (solver) for package: gcc14 cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:9791: DBG(1)[18670]> (solver) for package: gcc14 cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:9798: DBG(1)[18670]> (solver) for package: gcc14 cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:9801: DBG(1)[18670]> (solver) for package: gcc14 cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:10085: DBG(1)[18670]> (solver) for package: gcc15-devel cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10088: DBG(1)[18670]> (solver) for package: gcc15-devel cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:10093: DBG(1)[18670]> (solver) for package: gcc15-devel cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:10100: DBG(1)[18670]> (solver) for package: gcc15-devel cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:10103: DBG(1)[18670]> (solver) for package: gcc15-devel cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:10447: DBG(1)[18670]> (solver) for package: FreeBSD-clang cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10465: DBG(4)[18670]> (solver) Add require rule: FreeBSD-clang-15.0.a5.20251006185920(l) wants libgcc_s.so.1:32
~/Downloads/debug.log:10466: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc13-13.3.0_3(r)
~/Downloads/debug.log:10467: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc12-12.4.0_3(r)
~/Downloads/debug.log:10468: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc12-devel-12.4.1.s20250702(r)
~/Downloads/debug.log:10469: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc13-devel-13.4.1.s20250918(r)
~/Downloads/debug.log:10470: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc14-14.2.0_4(r)
~/Downloads/debug.log:10471: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc14-devel-14.3.1.s20250919,1(r)
~/Downloads/debug.log:10472: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc15-15.2.0_1(r)
~/Downloads/debug.log:10473: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc15-devel-15.2.1.s20250920(r)
~/Downloads/debug.log:10474: DBG(4)[18670]> (solver) libgcc_s.so.1:32 provide is satisfied by gcc16-devel-16.0.0.s20250921(r)
~/Downloads/debug.log:10539: DBG(1)[18670]> (solver) for package: gcc13-devel cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10542: DBG(1)[18670]> (solver) for package: gcc13-devel cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:10547: DBG(1)[18670]> (solver) for package: gcc13-devel cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:10554: DBG(1)[18670]> (solver) for package: gcc13-devel cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:10557: DBG(1)[18670]> (solver) for package: gcc13-devel cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:10607: DBG(1)[18670]> (solver) for package: gcc12 cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10610: DBG(1)[18670]> (solver) for package: gcc12 cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:10615: DBG(1)[18670]> (solver) for package: gcc12 cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:10622: DBG(1)[18670]> (solver) for package: gcc12 cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:10625: DBG(1)[18670]> (solver) for package: gcc12 cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:10715: DBG(1)[18670]> (solver) for package: gnat12 cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10718: DBG(1)[18670]> (solver) for package: gnat12 cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:10727: DBG(1)[18670]> (solver) for package: gnat12 cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:10734: DBG(1)[18670]> (solver) for package: gnat12 cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:10737: DBG(1)[18670]> (solver) for package: gnat12 cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:10740: DBG(1)[18670]> (solver) for package: gnat12 cannot find provide for requirement: libutil.so.10:32
~/Downloads/debug.log:10894: DBG(1)[18670]> (solver) for package: gcc13 cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10897: DBG(1)[18670]> (solver) for package: gcc13 cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:10902: DBG(1)[18670]> (solver) for package: gcc13 cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:10909: DBG(1)[18670]> (solver) for package: gcc13 cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:10912: DBG(1)[18670]> (solver) for package: gcc13 cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:10974: DBG(1)[18670]> (solver) for package: gcc16-devel cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:10977: DBG(1)[18670]> (solver) for package: gcc16-devel cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:10982: DBG(1)[18670]> (solver) for package: gcc16-devel cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:10989: DBG(1)[18670]> (solver) for package: gcc16-devel cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:10992: DBG(1)[18670]> (solver) for package: gcc16-devel cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:11033: DBG(1)[18670]> (solver) for package: gcc12-devel cannot find provide for requirement: libc.so.7:32
~/Downloads/debug.log:11036: DBG(1)[18670]> (solver) for package: gcc12-devel cannot find provide for requirement: libdl.so.1:32
~/Downloads/debug.log:11041: DBG(1)[18670]> (solver) for package: gcc12-devel cannot find provide for requirement: libm.so.5:32
~/Downloads/debug.log:11048: DBG(1)[18670]> (solver) for package: gcc12-devel cannot find provide for requirement: librt.so.1:32
~/Downloads/debug.log:11051: DBG(1)[18670]> (solver) for package: gcc12-devel cannot find provide for requirement: libthr.so.3:32
~/Downloads/debug.log:20327: DBG(3)[18670]> (package) added shlib deps for gcc12-devel on libc.so.7:32
~/Downloads/debug.log:20329: DBG(3)[18670]> (package) added shlib deps for gcc12-devel on libdl.so.1:32
~/Downloads/debug.log:20332: DBG(3)[18670]> (package) added shlib deps for gcc12-devel on libm.so.5:32
~/Downloads/debug.log:20336: DBG(3)[18670]> (package) added shlib deps for gcc12-devel on librt.so.1:32
~/Downloads/debug.log:20338: DBG(3)[18670]> (package) added shlib deps for gcc12-devel on libthr.so.3:32
~/Downloads/debug.log:20343: DBG(3)[18670]> (package) added shlib provide libasan.so.8:32 for gcc12-devel
~/Downloads/debug.log:20345: DBG(3)[18670]> (package) added shlib provide libatomic.so.1:32 for gcc12-devel
~/Downloads/debug.log:20348: DBG(3)[18670]> (package) added shlib provide libgcc_s.so.1:32 for gcc12-devel
~/Downloads/debug.log:20351: DBG(3)[18670]> (package) added shlib provide libgfortran.so.5:32 for gcc12-devel
~/Downloads/debug.log:20353: DBG(3)[18670]> (package) added shlib provide libgomp.so.1:32 for gcc12-devel
~/Downloads/debug.log:20355: DBG(3)[18670]> (package) added shlib provide libitm.so.1:32 for gcc12-devel
~/Downloads/debug.log:20357: DBG(3)[18670]> (package) added shlib provide libquadmath.so.0:32 for gcc12-devel
~/Downloads/debug.log:20359: DBG(3)[18670]> (package) added shlib provide libstdc++.so.6:32 for gcc12-devel
~/Downloads/debug.log:20361: DBG(3)[18670]> (package) added shlib provide libubsan.so.1:32 for gcc12-devel

markmi avatar Oct 19 '25 15:10 markmi

Notably, aarch64 would also have such references if the ports enabled MULTILIB like is done for amd64. As fas as I can tell, the ports should have MULTILIB enabled for aarch64/armv7 use for the same reasons as for amd64/i386 has such.

FreeBSD's libraries do not work for everything and use of -Wl,-rpath= with the various gcc*'s can be required to make the gcc-produced code work.

Should base-package handling be considering port-package libraries provided at all or be considering what port-packages have as libraries they are dependent on?

This is an area were having just all "packages" instead of using a base vs. ports distinction does not seem to fit well.

markmi avatar Oct 19 '25 15:10 markmi

I see that pkg still mis-identifies lang/gcc* as dependent on base packages instead of the content that the lang/gcc* installs that should be used via -Wl,-rpath= based on paths tied to the lang/gcc* installation. For example, for lang/gcc15:

# pkg info -d gcc15
gcc15-15.2.0_1:
	indexinfo-0.3.1_1
	mpfr-4.2.2,1
	mpc-1.3.1_1
	gmp-6.3.0
	binutils-2.44,1
	FreeBSD-clibs-16.snap20251014203606 (libc.so.7)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libc.so.7:32)
	FreeBSD-clibs-16.snap20251014203606 (libdl.so.1)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libdl.so.1:32)
	gmp-6.3.0 (libgmp.so.10)
	FreeBSD-clibs-16.snap20251014203606 (libm.so.5)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libm.so.5:32)
	mpc-1.3.1_1 (libmpc.so.3)
	mpfr-4.2.2,1 (libmpfr.so.6)
	FreeBSD-clibs-16.snap20251014203606 (librt.so.1)
	FreeBSD-clibs-lib32-16.snap20251014184832 (librt.so.1:32)
	FreeBSD-clibs-16.snap20251014203606 (libthr.so.3)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libthr.so.3:32)
	FreeBSD-runtime-16.snap20251014184832 (libz.so.6)

I had exchanges with bapt for such things for pkg back in May. So it is not a newly discovered issue.

The above was on amd64 with lib32 and the gcc15 build has MULTILIB enabled.

markmi avatar Oct 19 '25 16:10 markmi

Going in the other direction, it also still lists the base packages as depending on gcc15 (for example):

# pkg info -r gcc15
gcc15-15.2.0_1:
	stream-5.10
	FreeBSD-atf-lib-16.snap20251003201239 (libgcc_s.so.1)
	FreeBSD-acct-16.snap20251003201239 (libgcc_s.so.1)
	FreeBSD-libexecinfo-16.snap20251003201239 (libgcc_s.so.1)
	FreeBSD-atf-16.snap20251003201239 (libgcc_s.so.1)
	FreeBSD-toolchain-16.snap20251003201239 (libgcc_s.so.1)
	FreeBSD-atf-dev-16.snap20251008042735 (libgcc_s.so.1)
	FreeBSD-libexecinfo-dev-16.snap20251008042735 (libgcc_s.so.1)
	FreeBSD-pmc-dev-16.snap20251008042735 (libgcc_s.so.1)
	FreeBSD-zfs-16.snap20251008140321 (libgcc_s.so.1)
	icu-76.1,1 (libgcc_s.so.1)
	jsoncpp-1.9.6_1 (libgcc_s.so.1)
	libunwind-20240221_2 (libgcc_s.so.1)
	mpdecimal-4.0.1 (libgcc_s.so.1)
	gettext-runtime-0.23.1 (libgcc_s.so.1)
	gmp-6.3.0 (libgcc_s.so.1)
	py311-cryptography-44.0.3_4,1 (libgcc_s.so.1)
	boost-libs-1.88.0_2 (libgcc_s.so.1)
	source-highlight-3.1.9_13 (libgcc_s.so.1)
	bonnie++-1.98_1 (libgcc_s.so.1)
	cmake-core-3.31.9 (libgcc_s.so.1)
	gdb-15.1_3 (libgcc_s.so.1)
	llvm21-21.1.2 (libgcc_s.so.1)
	nmap-7.94_3 (libgcc_s.so.1)
	rust-1.90.0_1 (libgcc_s.so.1)
	smartmontools-7.5_1 (libgcc_s.so.1)
	usbtop-1.0_7 (libgcc_s.so.1)
	ztop-0.3.0_6 (libgcc_s.so.1)
	aarch64-gcc14-14.1.0 (libgcc_s.so.1)
	armv7-gcc14-14.1.0 (libgcc_s.so.1)
	binutils-2.44,1 (libgcc_s.so.1)
	e2fsprogs-core-1.47.3 (libgcc_s.so.1)
	FreeBSD-kyua-16.snap20251011134445 (libgcc_s.so.1)
	FreeBSD-clang-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-clang-dev-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-clibs-dev-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-ctl-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-pmc-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-devd-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-tests-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-utilities-16.snap20251014221306 (libgcc_s.so.1)
	FreeBSD-utilities-dev-16.snap20251014184832 (libgcc_s.so.1)
	FreeBSD-libexecinfo-dev-lib32-16.snap20251008042735 (libgcc_s.so.1:32)
	FreeBSD-libexecinfo-lib32-16.snap20251008042735 (libgcc_s.so.1:32)
	FreeBSD-pmc-dev-lib32-16.snap20251008042735 (libgcc_s.so.1:32)
	FreeBSD-pmc-lib32-16.snap20251008042735 (libgcc_s.so.1:32)
	FreeBSD-clang-16.snap20251014184832 (libgcc_s.so.1:32)
	FreeBSD-clibs-dev-lib32-16.snap20251014184832 (libgcc_s.so.1:32)
	FreeBSD-utilities-dev-lib32-16.snap20251014184832 (libgcc_s.so.1:32)
	FreeBSD-utilities-lib32-16.snap20251014184832 (libgcc_s.so.1:32)
	stream-5.10 (libgomp.so.1)

Note that FreeBSD-clang-16.snap20251014184832 indicates both: libgcc_s.so.1 and, later, libgcc_s.so.1:32 .

markmi avatar Oct 19 '25 16:10 markmi