Re: FreeBSD-clang provides both libclang_rt.asan-x86_64.so and the (should be?) lib32 item: libclang_rt.asan-i386.so:32 ? More . . .

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 20 Oct 2025 19:45:40 UTC

On Oct 20, 2025, at 12:00, Mark Millard <marklmi@yahoo.com> wrote:

> (Test context main 16, not a 15.0-BETA* .)
> 
> FreeBS-clang provides both 64-bit and a 32-bit library:
> 
> # pkg info -b FreeBSD-clang
> FreeBSD-clang-16.snap20251014184832:
> 	libclang_rt.asan-i386.so:32
> 	libclang_rt.asan-x86_64.so
> 	libprivateclang.so.19
> 	libprivatellvm.so.19
> 
> # file /usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so
> /usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so: ELF 32-bit LSB shared object, Intel i386, version 1 (FreeBSD), dynamically linked, for FreeBSD 16.0 (1600001), stripped
> 
> # ldd -a /usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so
> /usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so:
> 	libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0x209d1000)
> 	libc.so.7 => /usr/lib32/libc.so.7 (0x209f0000)
> /usr/lib32/libgcc_s.so.1:
> 	libc.so.7 => /usr/lib32/libc.so.7 (0x209f0000)
> /usr/lib32/libc.so.7:
> 	libsys.so.7 => /usr/lib32/libsys.so.7 (0x20bef000)
> [preloaded]
> 	[vdso] (0xffffe780)
> 
> Note that those in turn lead to /usr/lib32/
> dependencies being involved overall.
> 
> That might contribute to why both lib.c.so.7
> and lib.c.so.7:32 and both libgcc_s.so.1 and
> libgcc_s.so.1:32 more show up in:
> 
> # pkg info -d FreeBSD-clang
> FreeBSD-clang-16.snap20251014184832:
> 	FreeBSD-lld-16.snap20250930012546
> 	FreeBSD-libcompiler_rt-dev-16.snap20250923153156
> 	FreeBSD-clibs-16.snap20251014203606 (libc++.so.1)
> 	FreeBSD-clibs-16.snap20251014203606 (libc.so.7)
> 	FreeBSD-clibs-lib32-16.snap20251014184832 (libc.so.7:32)
> 	FreeBSD-clibs-16.snap20251014203606 (libcxxrt.so.1)
> 	FreeBSD-libexecinfo-16.snap20251003201239 (libexecinfo.so.1)
> 	FreeBSD-clibs-16.snap20251014203606 (libgcc_s.so.1)
> 	FreeBSD-clibs-lib32-16.snap20251014184832 (libgcc_s.so.1:32)
> 	FreeBSD-clibs-16.snap20251014203606 (libm.so.5)
> 	FreeBSD-ncurses-16.snap20251003201239 (libncursesw.so.9)
> 	FreeBSD-runtime-16.snap20251014184832 (libprivatezstd.so.5)
> 	FreeBSD-clibs-16.snap20251014203606 (libthr.so.3)
> 	FreeBSD-ncurses-16.snap20251003201239 (libtinfow.so.9)
> 	FreeBSD-runtime-16.snap20251014184832 (libz.so.6)
> 
> and both lib.c.so.7 and lib.c.so.7:32 in:

and both libgcc_s.so.1 and libgcc_s.so.1:32

> # pkg info -B FreeBSD-clang
> FreeBSD-clang-16.snap20251014184832:
> 	libc++.so.1
> 	libc.so.7
> 	libc.so.7:32
> 	libcxxrt.so.1
> 	libexecinfo.so.1
> 	libgcc_s.so.1
> 	libgcc_s.so.1:32
> 	libm.so.5
> 	libncursesw.so.9
> 	libprivatezstd.so.5
> 	libthr.so.3
> 	libtinfow.so.9
> 	libz.so.6
> 
> Note: Deliberately done in an environment that does
> not have any lang/gcc* installed [avoiding MULTILIB
> being involved in the context. Otherwise other issues
> lead to more confusing output for "info -d".

For additional reference:

# pkg info -r FreeBSD-clang
FreeBSD-clang-16.snap20251014184832:
	FreeBSD-clang-dev-16.snap20251014184832
	FreeBSD-clang-dbg-16.snap20251014184832
	FreeBSD-set-devel-16.snap20251008042735
	FreeBSD-lldb-dev-16.snap20251008042735 (libprivateclang.so.19)
	FreeBSD-lldb-16.snap20251014184832 (libprivateclang.so.19)
	FreeBSD-lld-16.snap20250930012546 (libprivatellvm.so.19)
	FreeBSD-toolchain-16.snap20251003201239 (libprivatellvm.so.19)
	FreeBSD-lldb-dev-16.snap20251008042735 (libprivatellvm.so.19)
	FreeBSD-clang-dev-16.snap20251014184832 (libprivatellvm.so.19)
	FreeBSD-lldb-16.snap20251014184832 (libprivatellvm.so.19)

But, if I go the other way, starting from
FreeBSD-set-devel :

# pkg info -d FreeBSD-set-devel | grep 32
	FreeBSD-utilities-dev-16.snap20251014184832
	FreeBSD-unbound-dev-16.snap20251014184832
	FreeBSD-toolchain-16.snap20251003201239
	FreeBSD-tcpd-dev-16.snap20251014184832
	FreeBSD-ssh-dev-16.snap20251014184832
	FreeBSD-smbutils-dev-16.snap20251014184832
	FreeBSD-runtime-dev-16.snap20251014184832
	FreeBSD-openssl-dev-16.snap20251014184832
	FreeBSD-natd-dev-16.snap20251014184832
	FreeBSD-lldb-16.snap20251014184832
	FreeBSD-librss-dev-16.snap20251014184832
	FreeBSD-libmilter-dev-16.snap20251014184832
	FreeBSD-libldns-dev-16.snap20251014184832
	FreeBSD-libevent1-dev-16.snap20251014184832
	FreeBSD-libcompat-dev-16.snap20251014184832
	FreeBSD-lib9p-dev-16.snap20251014184832
	FreeBSD-kerberos-dev-16.snap20251014184832
	FreeBSD-fetch-dev-16.snap20251014184832
	FreeBSD-ctf-16.snap20251003201239
	FreeBSD-clibs-dev-16.snap20251014184832
	FreeBSD-clang-dev-16.snap20251014184832
	FreeBSD-clang-16.snap20251014184832
	FreeBSD-bsnmp-dev-16.snap20251014184832
	FreeBSD-bluetooth-dev-16.snap20251014184832
	FreeBSD-blocklist-dev-16.snap20251014184832

No mention of any -lib32 , despite the reference to
FreeBSD-clang . But:

# pkg info -d FreeBSD-clang
FreeBSD-clang-16.snap20251014184832:
	FreeBSD-lld-16.snap20250930012546
	FreeBSD-libcompiler_rt-dev-16.snap20250923153156
	FreeBSD-clibs-16.snap20251014203606 (libc++.so.1)
	FreeBSD-clibs-16.snap20251014203606 (libc.so.7)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libc.so.7:32)
	FreeBSD-clibs-16.snap20251014203606 (libcxxrt.so.1)
	FreeBSD-libexecinfo-16.snap20251003201239 (libexecinfo.so.1)
	FreeBSD-clibs-16.snap20251014203606 (libgcc_s.so.1)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libgcc_s.so.1:32)
	FreeBSD-clibs-16.snap20251014203606 (libm.so.5)
	FreeBSD-ncurses-16.snap20251003201239 (libncursesw.so.9)
	FreeBSD-runtime-16.snap20251014184832 (libprivatezstd.so.5)
	FreeBSD-clibs-16.snap20251014203606 (libthr.so.3)
	FreeBSD-ncurses-16.snap20251003201239 (libtinfow.so.9)
	FreeBSD-runtime-16.snap20251014184832 (libz.so.6)

Does reference -lib32 :

# pkg info -d FreeBSD-clang | grep lib32
	FreeBSD-clibs-lib32-16.snap20251014184832 (libc.so.7:32)
	FreeBSD-clibs-lib32-16.snap20251014184832 (libgcc_s.so.1:32)

Also:

# pkg info -r FreeBSD-set-devel
FreeBSD-set-devel-16.snap20251008042735:
	FreeBSD-set-base-jail-16.snap20251008042735
	FreeBSD-set-base-16.snap20251008042735

So, both FreeBSD-set-base* eventually lead to FreeBSD-clibs-lib32 .

===
Mark Millard
marklmi at yahoo.com