Move memory tracing libs to appropriate sub-packages

Commit 2d5af83031 moved libc_malloc_debug.so.0 to glibc-utils, but
this made it impossible to install the 32-bit version of the library on
x86_64.

libmemusage.so is a similar tracing library that is currently shipped in
glibc but should also (with the exception of i686) be moved to
glibc-utils.

This commit fixes that by:

1. Moving libc_malloc_debug.so.0 back to glibc on i686.

2. Moving libmemusage.so to glibc-utils, again, except on i686.
This commit is contained in:
Arjun Shankar 2024-05-15 12:57:49 +02:00
parent 2d5af83031
commit e9d072eb64

View File

@ -170,7 +170,7 @@ Version: %{glibcversion}
# - It allows using the Release number without the %%dist tag in the dependency
# generator to make the generated requires interchangeable between Rawhide
# and ELN (.elnYY < .fcXX).
%global baserelease 19
%global baserelease 20
Release: %{baserelease}%{?dist}
# Licenses:
@ -307,6 +307,18 @@ rpm.define("__debug_install_post bash " .. wrapper
%global _no_recompute_build_ids 1
%undefine _unique_build_ids
%ifarch %{ix86}
# The memory tracing tools (like mtrace, memusage) in glibc-utils only work
# when the corresponding memory tracing libraries are preloaded. So we ship
# memory allocation tracing/checking libraries in glibc-utils, except on
# i686 where we need to ship them in glibc.i686. This is because
# glibc-utils.x86_64 will contain only the 64-bit version of these
# libraries.
%global glibc_ship_tracelibs_in_utils 0
%else
%global glibc_ship_tracelibs_in_utils 1
%endif
##############################################################################
# Patches:
# - See each individual patch file for origin and upstream status.
@ -1902,7 +1914,9 @@ cat master.filelist \
-e '/var/db/Makefile' \
-e '/libnss_.*\.so[0-9.]*$' \
-e '/libnsl' \
%if %{glibc_ship_tracelibs_in_utils}
-e 'libc_malloc_debug\.so' \
%endif
-e 'glibc-benchtests' \
-e 'aux-cache' \
%ifarch x86_64
@ -1926,7 +1940,12 @@ for module in compat files dns; do
%endif
>> glibc.filelist
done
grep -e "libmemusage.so" -e "libpcprofile.so" master.filelist \
grep \
%if ! %{glibc_ship_tracelibs_in_utils}
-e "libmemusage.so" \
%endif
-e "libpcprofile.so" \
master.filelist \
%ifarch x86_64
%dnl Exclude 32-bit libraries built for glibc32.
| grep -v -e /lib/lib \
@ -2102,9 +2121,12 @@ cat > utils.filelist <<EOF
%{_prefix}/bin/xtrace
EOF
# libc_malloc_debug needs to be preloaded in order to enable mtrace, so we
# include it in the same subpackage.
grep '%{_lib}/libc_malloc_debug\.so' < master.filelist >> utils.filelist
%if %{glibc_ship_tracelibs_in_utils}
grep \
-e '%{_lib}/libc_malloc_debug\.so' \
-e '%{_lib}/libmemusage.so' \
< master.filelist >> utils.filelist
%endif
###############################################################################
# nss_db, nss_hesiod
@ -2532,6 +2554,10 @@ update_gconv_modules_cache ()
%endif
%changelog
* Wed May 15 2024 Arjun Shankar <arjun@redhat.com> - 2.39.9000-20
- i686: Move libc_malloc_debug.so.0 back to glibc
- Other arches: Move libmemusage.so to glibc-utils
* Tue May 14 2024 Arjun Shankar <arjun@redhat.com> - 2.39.9000-19
- Move libc_malloc_debug.so.0 from glibc to glibc-utils