Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Mar 2026 16:10:32 +0000
From:      Colin Percival <cperciva@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: cfe0b7d37e55 - main - EC2: Add clibs-lib32 pkg to small/builder images
Message-ID:  <69bec2f8.247d7.ef68596@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=cfe0b7d37e552d78762c029f5b15e0f36d9d0d38

commit cfe0b7d37e552d78762c029f5b15e0f36d9d0d38
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2026-03-20 00:24:55 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2026-03-21 16:09:03 +0000

    EC2: Add clibs-lib32 pkg to small/builder images
    
    The FreeBSD-clang package on amd64 contains libclang_rt.asan-i386.so,
    which links to the 32-bit version of libgcc_s.so.1.  It is not clear
    if that file belongs in FreeBSD-clang or if it should be placed into
    a different package.
    
    For unknown reasons, pkg *sometimes* recognizes this and decides that
    it needs to install a package to supply libgcc_s.so.1:32.
    
    In particular, when we initially install the VM with 'pkg install
    [long list of FreeBSD-* packages]', pkg does not recognize that it
    wants this; but the *next* time 'pkg install' runs, it decides that
    it needs libgcc_s.so.1:32 -- even though that particular library is
    not needed by the particular package we're trying to install -- and
    goes looking for it... and ends up picking gcc12-devel as a provider.
    
    Later in the EC2 image building process, we run 'pkg autoremove' (which
    was added during 15.0 to get rid of the "bogus dependencies" which were
    added while installing other packages) and pkg is once again confused:
    It decides that gcc12-devel is an automatic port which is not required
    by anything else, but upon determining that it should be removed it
    then determines that FreeBSD-clang depends upon a port which is being
    removed and deletes FreeBSD-clang as well.
    
    It's not clear what is breaking in pkg, but as a temporary workaround
    add the FreeBSD-clibs-lib32 package to the "small" and "builder" EC2
    image flavours in order to satisfy the libgcc_s.so.1 demand.
    
    This commit should be reverted if libclang_rt.asan-i386.so moves out
    of FreeBSD-clang, (i.e. if it becomes possible to install a 32-bit-free
    amd64 system) or when the pkg issue is resolved (i.e. pkg consistently
    recognizes the shared library dependency and installs clibs-lib32
    automatically as a FreeBSD-clang dependency).
    
    MFC after:      3 days
    Sponsored by:   Amazon
    Differential Revision:  https://reviews.freebsd.org/D55978
---
 release/tools/ec2-builder.conf | 1 +
 release/tools/ec2-small.conf   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/release/tools/ec2-builder.conf b/release/tools/ec2-builder.conf
index 3b0344f9eb9a..a272ea49a426 100644
--- a/release/tools/ec2-builder.conf
+++ b/release/tools/ec2-builder.conf
@@ -17,6 +17,7 @@ vm_extra_filter_base_packages() {
 		-e '.*-dbg$' \
 		-e '.*-lib32$' \
 		-e '^FreeBSD-set-tests'
+	echo FreeBSD-clibs-lib32
 }
 
 # Packages to install into the image we're creating.  In addition to packages
diff --git a/release/tools/ec2-small.conf b/release/tools/ec2-small.conf
index 6564a59c2cf6..c1a05f98356f 100644
--- a/release/tools/ec2-small.conf
+++ b/release/tools/ec2-small.conf
@@ -20,6 +20,7 @@ vm_extra_filter_base_packages() {
 		-e '.*-dbg$' \
 		-e '.*-lib32$' \
 		-e '^FreeBSD-set-tests'
+	echo FreeBSD-clibs-lib32
 }
 
 # Packages to install into the image we're creating.  In addition to packages


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69bec2f8.247d7.ef68596>