On Fri, May 31, 2024 at 11:06:31AM -0500, Eric Blake wrote:
 Fedora 40 recently changed to move malloc debugging out of glibc
into
 glibc-utils (
https://issues.redhat.com/browse/RHEL-35971).  Reflect
 that in our CI, to avoid spurious test failures from tons of messages
 like:
 
 ERROR: ld.so: object 'libc_malloc_debug.so.0' from LD_PRELOAD cannot be preloaded
(cannot open shared object file): ignored.
 
 by regenerating with 
https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/491
 
 Also, change configure.ac to gracefully skip malloc debugging when
 glibc-utils is not installed. 
I don't really have anything useful to say here.  If it works,
then it works!
Thanks,
Rich.
 Signed-off-by: Eric Blake <eblake(a)redhat.com>
 ---
 
 I plan on pushing this once my libvirt-ci merge request is accepted
 (this may need tweaking based on reviews on that side of things)
 
  configure.ac                                     | 9 +++++++--
  README.md                                        | 1 +
  ci/buildenv/fedora-39.sh                         | 1 +
  ci/buildenv/fedora-40-cross-mingw32.sh           | 1 +
  ci/buildenv/fedora-40-cross-mingw64.sh           | 1 +
  ci/buildenv/fedora-40.sh                         | 1 +
  ci/buildenv/fedora-rawhide.sh                    | 1 +
  ci/containers/fedora-39.Dockerfile               | 1 +
  ci/containers/fedora-40-cross-mingw32.Dockerfile | 1 +
  ci/containers/fedora-40-cross-mingw64.Dockerfile | 1 +
  ci/containers/fedora-40.Dockerfile               | 1 +
  ci/containers/fedora-rawhide.Dockerfile          | 1 +
  ci/lcitool/projects/nbdkit.yml                   | 1 +
  13 files changed, 19 insertions(+), 2 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
 index aaff4aae..89187b45 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -622,14 +622,19 @@ AS_IF([test "x$is_windows" = "xyes"],[
  dnl See if getaddrinfo requires an external library.
  AC_SEARCH_LIBS([getaddrinfo], [network socket])
 
 -dnl Does this platform require libc_malloc_debug.so.0 (glibc >= 2.34)?
 +dnl Does this platform support libc_malloc_debug.so.0 (glibc >= 2.34)?
  AC_MSG_CHECKING([if this is glibc >= 2.34])
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  #include <limits.h>
  #if !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 &&
__GLIBC_MINOR__ < 34)
  #error "not glibc 2.34"
  #endif
 -        ]])], [is_glibc_234=yes], [is_glibc_234=no]
 +        ]])],
 +   [if (LD_PRELOAD=libc_malloc_debug.so.0 /bin/true) 2>&1 | grep -v .; then
 +      is_glibc_234=yes
 +    else
 +      is_glibc_234='missing suitable libc_malloc_debug.so.0'
 +    fi], [is_glibc_234=no]
  )
  AC_MSG_RESULT([$is_glibc_234])
  AM_CONDITIONAL([HAVE_GLIBC_234], [test "x$is_glibc_234" = "xyes"])
 diff --git a/README.md b/README.md
 index 2f9452c8..02ed7644 100644
 --- a/README.md
 +++ b/README.md
 @@ -184,6 +184,7 @@ For non-essential enhancements to the test suite:
  * hexdump
  * ip, ss (from iproute package)
  * jq
 +* libc_malloc_debug.so.0 (from glibc-utils)
  * losetup (from util-linux)
  * mke2fs (from e2fsprogs)
  * nbdcopy, nbdinfo, nbdsh (from libnbd)
 diff --git a/ci/buildenv/fedora-39.sh b/ci/buildenv/fedora-39.sh
 index 98ee274f..638badbd 100644
 --- a/ci/buildenv/fedora-39.sh
 +++ b/ci/buildenv/fedora-39.sh
 @@ -25,6 +25,7 @@ function install_buildenv() {
          gcc-c++ \
          genisoimage \
          git \
 +        glibc \
          glibc-langpack-en \
          gnutls-devel \
          golang \
 diff --git a/ci/buildenv/fedora-40-cross-mingw32.sh
b/ci/buildenv/fedora-40-cross-mingw32.sh
 index 8de2a5dd..b1638bfa 100644
 --- a/ci/buildenv/fedora-40-cross-mingw32.sh
 +++ b/ci/buildenv/fedora-40-cross-mingw32.sh
 @@ -22,6 +22,7 @@ function install_buildenv() {
          genisoimage \
          git \
          glibc-langpack-en \
 +        glibc-utils \
          golang \
          gzip \
          iproute \
 diff --git a/ci/buildenv/fedora-40-cross-mingw64.sh
b/ci/buildenv/fedora-40-cross-mingw64.sh
 index e7013c38..2965e0e7 100644
 --- a/ci/buildenv/fedora-40-cross-mingw64.sh
 +++ b/ci/buildenv/fedora-40-cross-mingw64.sh
 @@ -22,6 +22,7 @@ function install_buildenv() {
          genisoimage \
          git \
          glibc-langpack-en \
 +        glibc-utils \
          golang \
          gzip \
          iproute \
 diff --git a/ci/buildenv/fedora-40.sh b/ci/buildenv/fedora-40.sh
 index 98ee274f..5f90faa4 100644
 --- a/ci/buildenv/fedora-40.sh
 +++ b/ci/buildenv/fedora-40.sh
 @@ -26,6 +26,7 @@ function install_buildenv() {
          genisoimage \
          git \
          glibc-langpack-en \
 +        glibc-utils \
          gnutls-devel \
          golang \
          gzip \
 diff --git a/ci/buildenv/fedora-rawhide.sh b/ci/buildenv/fedora-rawhide.sh
 index 88a8dfdc..e11fe698 100644
 --- a/ci/buildenv/fedora-rawhide.sh
 +++ b/ci/buildenv/fedora-rawhide.sh
 @@ -27,6 +27,7 @@ function install_buildenv() {
          genisoimage \
          git \
          glibc-langpack-en \
 +        glibc-utils \
          gnutls-devel \
          golang \
          gzip \
 diff --git a/ci/containers/fedora-39.Dockerfile b/ci/containers/fedora-39.Dockerfile
 index bf9f8ff4..0908b026 100644
 --- a/ci/containers/fedora-39.Dockerfile
 +++ b/ci/containers/fedora-39.Dockerfile
 @@ -36,6 +36,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                 gcc-c++ \
                 genisoimage \
                 git \
 +               glibc \
                 glibc-langpack-en \
                 gnutls-devel \
                 golang \
 diff --git a/ci/containers/fedora-40-cross-mingw32.Dockerfile
b/ci/containers/fedora-40-cross-mingw32.Dockerfile
 index 963b836b..e90b7492 100644
 --- a/ci/containers/fedora-40-cross-mingw32.Dockerfile
 +++ b/ci/containers/fedora-40-cross-mingw32.Dockerfile
 @@ -33,6 +33,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                 genisoimage \
                 git \
                 glibc-langpack-en \
 +               glibc-utils \
                 golang \
                 gzip \
                 iproute \
 diff --git a/ci/containers/fedora-40-cross-mingw64.Dockerfile
b/ci/containers/fedora-40-cross-mingw64.Dockerfile
 index 58554b97..90f8f752 100644
 --- a/ci/containers/fedora-40-cross-mingw64.Dockerfile
 +++ b/ci/containers/fedora-40-cross-mingw64.Dockerfile
 @@ -33,6 +33,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                 genisoimage \
                 git \
                 glibc-langpack-en \
 +               glibc-utils \
                 golang \
                 gzip \
                 iproute \
 diff --git a/ci/containers/fedora-40.Dockerfile b/ci/containers/fedora-40.Dockerfile
 index 1b37f724..2aba9a66 100644
 --- a/ci/containers/fedora-40.Dockerfile
 +++ b/ci/containers/fedora-40.Dockerfile
 @@ -37,6 +37,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                 genisoimage \
                 git \
                 glibc-langpack-en \
 +               glibc-utils \
                 gnutls-devel \
                 golang \
                 gzip \
 diff --git a/ci/containers/fedora-rawhide.Dockerfile
b/ci/containers/fedora-rawhide.Dockerfile
 index 034f621f..e08dc12b 100644
 --- a/ci/containers/fedora-rawhide.Dockerfile
 +++ b/ci/containers/fedora-rawhide.Dockerfile
 @@ -38,6 +38,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                 genisoimage \
                 git \
                 glibc-langpack-en \
 +               glibc-utils \
                 gnutls-devel \
                 golang \
                 gzip \
 diff --git a/ci/lcitool/projects/nbdkit.yml b/ci/lcitool/projects/nbdkit.yml
 index 1f2fe259..979ab23a 100644
 --- a/ci/lcitool/projects/nbdkit.yml
 +++ b/ci/lcitool/projects/nbdkit.yml
 @@ -23,6 +23,7 @@ packages:
    - hexdump
    - ip
    - jq
 +  - libc-malloc-debug
    - libcurl
    - libguestfs
    - liblzma
 -- 
 2.45.1
 _______________________________________________
 Libguestfs mailing list -- guestfs(a)lists.libguestfs.org
 To unsubscribe send an email to guestfs-leave(a)lists.libguestfs.org 
-- 
Richard Jones, Virtualization Group, Red Hat 
http://people.redhat.com/~rjones
Read my programming and virtualization blog: 
http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v