[redhat-rpm-config] - require dwz, enable dwarf compression for debuginfo packages (#833311)

Panu Matilainen pmatilai at fedoraproject.org
Mon Jun 25 11:45:35 UTC 2012


commit 5316e51652a1512a2fc6fddd8909047cca31eaf7
Author: Panu Matilainen <pmatilai at redhat.com>
Date:   Mon Jun 25 14:42:15 2012 +0300

    - require dwz, enable dwarf compression for debuginfo packages (#833311)

 redhat-rpm-config-9.1.0-dwz.patch |   53 +++++++++++++++++++++++++++++++++++++
 redhat-rpm-config.spec            |    8 +++++-
 2 files changed, 60 insertions(+), 1 deletions(-)
---
diff --git a/redhat-rpm-config-9.1.0-dwz.patch b/redhat-rpm-config-9.1.0-dwz.patch
new file mode 100644
index 0000000..b54162f
--- /dev/null
+++ b/redhat-rpm-config-9.1.0-dwz.patch
@@ -0,0 +1,53 @@
+--- redhat-rpm-config-9.1.0/macros.dwz.jj	2012-06-25 13:08:44.854489913 +0200
++++ redhat-rpm-config-9.1.0/macros.dwz	2012-06-25 13:03:55.520112180 +0200
+@@ -0,0 +1,39 @@ 
++# Macros for reducing debug info size using dwz(1) utility.
++
++# The two default values below should result in dwz taking at most
++# 3GB of RAM or so on 64-bit hosts and 2.5GB on 32-bit hosts
++# on the largest *.debug files  (in mid 2012 those are
++# libreoffice-debuginfo, debuginfos containing
++# libxul.so.debug and libwebkitgtk-*.so.*.debug).
++# This needs to be tuned based on the amount of available RAM
++# on build boxes for each architecture as well as virtual address
++# space limitations if dwz is 32-bit program.  While it needs less
++# memory than 64-bit program because pointers are smaller, it can
++# never have more than 4GB-epsilon of RAM and on some architecture
++# even less than that (e.g. 2GB).
++
++# Number of debugging information entries (DIEs) above which
++# dwz will stop considering file for multifile optimizations
++# and enter a low memory mode, in which it will optimize
++# in about half the memory needed otherwise.
++%_dwz_low_mem_die_limit		 10000000
++# Number of DIEs above which dwz will stop processing
++# a file altogether.
++%_dwz_max_die_limit     	 50000000
++
++# On x86_64 increase the higher limit to make libwebkit* optimizable.
++# libwebkit* in mid 2012 contains roughly 87mil DIEs, and 64-bit
++# dwz is able to optimize it from ~1.1GB to ~410MB using 5.2GB of RAM.
++%_dwz_max_die_limit_x86_64	110000000
++
++# On ARM, build boxes often have only 512MB of RAM and are very slow.
++# Lower both the limits.
++%_dwz_low_mem_die_limit_armv5tel  4000000
++%_dwz_low_mem_die_limit_armv7hl	  4000000
++%_dwz_max_die_limit_armv5tel	 10000000
++%_dwz_max_die_limit_armv7hl	 10000000
++
++%_dwz_limit() %{expand:%%{?%{1}_%{_arch}}%%{!?%{1}_%{_arch}:%%%{1}}}
++%_find_debuginfo_dwz_opts --run-dwz\\\
++   --dwz-low-mem-die-limit %{_dwz_limit _dwz_low_mem_die_limit}\\\
++   --dwz-max-die-limit %{_dwz_limit _dwz_max_die_limit}
+--- redhat-rpm-config-9.1.0/macros.jj	2012-06-25 13:08:44.854489913 +0200
++++ redhat-rpm-config-9.1.0/macros	2012-06-25 13:03:55.520112180 +0200
+@@ -191,7 +191,7 @@ unset DISPLAY\
+ %_hardened_cflags	%{?_hardened_build:%{_hardening_cflags}}
+ %_hardened_ldflags	%{?_hardened_build:%{_hardening_ldflags}}
+ 
+-%__global_cflags	-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 %{_hardened_cflags}
++%__global_cflags	-O2 -g3 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 %{_hardened_cflags}
+ %__global_ldflags	-Wl,-z,relro %{_hardened_ldflags}
+ 
+ # Use these macros to differentiate between RH and other KMP implementation(s).
diff --git a/redhat-rpm-config.spec b/redhat-rpm-config.spec
index 96b54de..711e797 100644
--- a/redhat-rpm-config.spec
+++ b/redhat-rpm-config.spec
@@ -1,7 +1,7 @@
 Summary: Red Hat specific rpm configuration files
 Name: redhat-rpm-config
 Version: 9.1.0
-Release: 29%{?dist}
+Release: 30%{?dist}
 # No version specified.
 License: GPL+
 Group: Development/System
@@ -29,10 +29,12 @@ Patch5: redhat-rpm-config-9.1.0-arm.patch
 Patch6: redhat-rpm-config-9.1.0-relro.patch
 Patch7: redhat-rpm-config-9.1.0-hardened.patch
 Patch8: redhat-rpm-config-9.1.0-ppc-no-minimal-toc.patch
+Patch9: redhat-rpm-config-9.1.0-dwz.patch
 BuildArch: noarch
 Requires: coreutils
 Requires: perl-srpm-macros
 Requires: rpm >= 4.6.0
+Requires: dwz >= 0.4
 BuildRequires: libtool
 
 %description
@@ -49,6 +51,7 @@ Red Hat specific rpm configuration files.
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
 
 %build
 
@@ -70,6 +73,9 @@ rm -rf ${RPM_BUILD_ROOT}
 %{_sysconfdir}/rpm/*
 
 %changelog
+* Mon Jun 25 2012 Panu Matilainen <pmatilai at redhat.com> - 9.1.0-30
+- require dwz, enable dwarf compression for debuginfo packages (#833311)
+
 * Wed Jun 06 2012 Petr Pisar <ppisar at redhat.com> - 9.1.0-29
 - Pull in dependency with macros specific for building Perl source packages
 


More information about the scm-commits mailing list