Page MenuHomeFreeBSD

pkgbase: remove incorrect clang shlib requires
Needs ReviewPublic

Authored by ifreund_freebsdfoundation.org on Jan 20 2026, 11:24 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Mar 14, 1:33 AM
Unknown Object (File)
Feb 23 2026, 4:06 PM
Unknown Object (File)
Feb 19 2026, 11:07 AM
Unknown Object (File)
Feb 17 2026, 10:53 AM
Unknown Object (File)
Feb 14 2026, 2:36 PM
Unknown Object (File)
Feb 14 2026, 2:35 PM
Unknown Object (File)
Feb 8 2026, 6:29 AM
Unknown Object (File)
Jan 30 2026, 5:13 PM
Subscribers

Details

Reviewers
emaste
bapt
Group Reviewers
pkgbase
Summary

The FreeBSD-clang package contains a 32-bit shared object at
/usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so

This is expected, since clang uses this object when compiling for i386
targets with asan enabled.

What is not expected is that the FreeBSD-clang package currently depends
on 32-bit libc packages due to pkg's shared library analysis, making it
impossible to install pkgbase on x86_64 without any lib32 packages.

This commit leverages a new pkg feature implemented in [1], but could
be landed before a pkg version including that feature is released
without any ill effects. Unknown keys in package manifests are ignored.

[1]: https://github.com/freebsd/pkg/pull/2594

Sponsored by: The FreeBSD Foundation

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 70012
Build 66895: arc lint + arc unit

Event Timeline

Won’t that break the dependencies list if clang is itself 32-bit? This also introduces a new hard-coding of the set of compat libraries rather than using _ALL_libcompats.

Won’t that break the dependencies list if clang is itself 32-bit?

No, it shouldn't break when building src for a 32-bit target. The :32 is appended by pkg only when pkg config ABI is amd64, aarch64, or powerpc64 and it finds a shared library for the corresponding 32-bit architecture. On a fully 32-bit system there would be no :32.

This also introduces a new hard-coding of the set of compat libraries rather than using _ALL_libcompats.

Upstream pkg does not know about _All_libcompats and only supports detecting and handling 32-bit and linux compat libraries separately. Support for differentiating libraries for other libcompats would need to be implemented in upstream pkg.

The new pkg feature used by this patch was released in pkg 2.6.0 on March 3rd. I think this is ready to land.