diff --git a/.gperftools.metadata b/.gperftools.metadata index 1a1400e..cfcc419 100644 --- a/.gperftools.metadata +++ b/.gperftools.metadata @@ -1 +1 @@ -5cd8da3d3b928fc5b06c018804196b657940a5d2 SOURCES/gperftools-2.6.1.tar.gz +15354d240b39e1e6e34c1b4eef35a6a3df898fbf SOURCES/gperftools-2.9.1.tar.gz diff --git a/SOURCES/gperftools-2.7.90-disable-generic-dynamic-tls.patch b/SOURCES/gperftools-2.7.90-disable-generic-dynamic-tls.patch new file mode 100644 index 0000000..bf0f873 --- /dev/null +++ b/SOURCES/gperftools-2.7.90-disable-generic-dynamic-tls.patch @@ -0,0 +1,33 @@ +diff -up gperftools-2.7.90/configure.ac.dynload gperftools-2.7.90/configure.ac +--- gperftools-2.7.90/configure.ac.dynload 2020-03-09 10:55:12.212374186 -0400 ++++ gperftools-2.7.90/configure.ac 2020-03-09 10:57:25.081830867 -0400 +@@ -665,6 +665,17 @@ AS_IF([test "x$enable_aggressive_decommi + 1, + [enable aggressive decommit by default])]) + ++# Enable generic dynamic TLS model by default ++default_enable_generic_dynamic_tls=yes ++AC_ARG_ENABLE([general-dynamic-tls], ++ [AS_HELP_STRING([--disable-general-dynamic-tls], ++ [Do not use the general dynamic TLS model])], ++ [], ++ [enable_generic_dynamic_tls="$default_enable_generic_dynamic_tls"]) ++AS_IF([test "x$enable_generic_dynamic_tls" = xyes], ++ [AC_DEFINE([ENABLE_GENERIC_DYNAMIC_TLS], 1, ++ [Use the generic dynamic TLS model])]) ++ + # Write generated configuration file + AC_CONFIG_FILES([Makefile + src/gperftools/tcmalloc.h src/windows/gperftools/tcmalloc.h]) +diff -up gperftools-2.7.90/src/base/basictypes.h.dynload gperftools-2.7.90/src/base/basictypes.h +--- gperftools-2.7.90/src/base/basictypes.h.dynload 2020-02-23 15:15:47.000000000 -0500 ++++ gperftools-2.7.90/src/base/basictypes.h 2020-03-09 10:55:12.212374186 -0400 +@@ -200,7 +200,7 @@ struct CompileAssert { + # define ATTRIBUTE_UNUSED + #endif + +-#if defined(HAVE___ATTRIBUTE__) && defined(HAVE_TLS) ++#if defined(HAVE___ATTRIBUTE__) && defined(HAVE_TLS) && defined(ENABLE_GENERIC_DYNAMIC_TLS) + #define ATTR_INITIAL_EXEC __attribute__ ((tls_model ("initial-exec"))) + #else + #define ATTR_INITIAL_EXEC diff --git a/SPECS/gperftools.spec b/SPECS/gperftools.spec index 3be4f23..05e0bfe 100644 --- a/SPECS/gperftools.spec +++ b/SPECS/gperftools.spec @@ -3,20 +3,26 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: gperftools -Version: 2.6.1 +Version: 2.9.1 Release: 1%{?dist} License: BSD -Group: Development/Tools Summary: Very fast malloc and performance analysis tools -URL: http://code.google.com/p/gperftools/ -Source0: https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/%{name}-%{version}.tar.gz - +URL: https://github.com/gperftools/gperftools +Source0: https://github.com/gperftools/gperftools/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz +# Conditionalize generic dynamic tls model +Patch1: gperftools-2.7.90-disable-generic-dynamic-tls.patch +ExcludeArch: s390 +BuildRequires: gcc-c++ +BuildRequires: libunwind-devel +BuildRequires: perl-generators +BuildRequires: autoconf, automake, libtool +BuildRequires: make Requires: gperftools-devel = %{version}-%{release} Requires: pprof = %{version}-%{release} %description -Perf Tools is a collection of performance analysis tools, including a +Perf Tools is a collection of performance analysis tools, including a high-performance multi-threaded malloc() implementation that works particularly well with threads and STL, a thread-friendly heap-checker, a heap profiler, and a cpu-profiler. @@ -26,7 +32,6 @@ binaries, libraries, and development headers, so that you can use them. %package devel Summary: Development libraries and headers for gperftools -Group: Development/Libraries Requires: %{name}-libs%{?_isa} = %{version}-%{release} Provides: google-perftools-devel = %{version}-%{release} Obsoletes: google-perftools-devel < 2.0 @@ -44,17 +49,17 @@ Libraries provided by gperftools, including libtcmalloc and libprofiler. %package -n pprof Summary: CPU and Heap Profiler tool -Requires: graphviz +Requires: gv, graphviz BuildArch: noarch Provides: google-perftools = %{version}-%{release} Obsoletes: google-perftools < 2.0 -%description -n pprof +%description -n pprof Pprof is a heap and CPU profiler tool, part of the gperftools suite. %prep %setup -q - +%patch1 -p1 -b .dynload # Fix end-of-line encoding sed -i 's/\r//' README_windows.txt @@ -62,19 +67,26 @@ sed -i 's/\r//' README_windows.txt # No need to have exec permissions on source code chmod -x src/*.h src/*.cc +autoreconf -ifv + %build CFLAGS=`echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -DTCMALLOC_LARGE_PAGES | sed -e 's|-fexceptions||g'` CXXFLAGS=`echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -DTCMALLOC_LARGE_PAGES | sed -e 's|-fexceptions||g'` -%configure --disable-static --disable-libunwind +%configure \ +%ifarch s390x aarch64 + --disable-general-dynamic-tls \ +%endif + --disable-dynamic-sized-delete-support \ + --disable-static # Bad rpath! sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool # Can't build with smp_mflags -make +make %install -make DESTDIR=%{buildroot} docdir=%{_pkgdocdir}/ install +%make_install docdir=%{_pkgdocdir}/ find %{buildroot} -type f -name "*.la" -exec rm -f {} ';' # Delete useless files @@ -87,13 +99,13 @@ rm -rf %{buildroot}%{_pkgdocdir}/INSTALL # LD_LIBRARY_PATH=./.libs make check %endif -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig +%ldconfig_scriptlets libs %files %files -n pprof %{_bindir}/pprof +%{_bindir}/pprof-symbolize %{_mandir}/man1/* %files devel @@ -107,28 +119,329 @@ rm -rf %{buildroot}%{_pkgdocdir}/INSTALL %{_libdir}/*.so.* %changelog -* Thu Oct 12 2017 Miroslav Rezanina - 2.4-8.el7 -- Rebase to 2.6.1 [bz#1431240] -- Removed libunwind usage [bz#1467203] -- Resolves: bz#1431240 - (gperftools fails to build on s390x, lacks s390x support) -- Resolves: bz#1467203 - (Please, remove libunwind from the gperftools-libs (and 389-ds-base) requirements) - -* Wed Jun 22 2016 Miroslav Rezanina - 2.4-8.el7 -- gp-Use-initial-exec-tls-for-libunwind-s-recursion-flag.patch [bz#1339710] -- Resolves: bz#1339710 - (initalization of 'recursive' tls variable in libunwind stack capturer occasionally triggers deadlock in ceph) - -* Wed Aug 26 2015 Miroslav Rezanina 2.4-7 -- Rebuild to fix NVR [bz#1269032] -- Resolves: bz#1269032 - (gperftools NVR lower than EPEL version) - -* Wed Aug 26 2015 Miroslav Rezanina 2.4-2 -- gperf-allow-customizing-trace-filename.patch [bz#1232702] -- Resolves: bz#1232702 - (gperftools: tcmalloc debug version uses hard-coded path /tmp/google.alloc) - -* Tue Jun 02 2015 Miroslav Rezanina 2.4-1 -- Import to RHEL +* Wed Mar 3 2021 Tom Callaway - 2.9.1-1 +- update to 2.9.1 + +* Mon Feb 22 2021 Tom Callaway - 2.9.0-1 +- update to 2.9.0 + +* Mon Feb 15 2021 Tom Callaway - 2.8.90-1 +- update to 2.8.90 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Dec 30 2020 Tom Callaway - 2.8.1-1 +- update to 2.8.1 + +* Tue Jul 28 2020 Fedora Release Engineering - 2.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 14 2020 Tom Stellard - 2.8-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Thu Jul 9 2020 Tom Callaway - 2.8-1 +- update to 2.8 + +* Wed Apr 15 2020 Dan Horák - 2.7.90-2 +- build with libunwind on s390x + +* Mon Mar 9 2020 Tom Callaway - 2.7.90-1 +- update to 2.7.90 + +* Wed Jan 29 2020 Fedora Release Engineering - 2.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 2.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 2.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 8 2019 Tom Callaway - 2.7-4 +- drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) + +* Tue Jul 24 2018 Tom Callaway - 2.7-3 +- everyone needs BuildRequires: gcc-c++, including s390x + +* Fri Jul 13 2018 Fedora Release Engineering - 2.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue May 1 2018 Tom Callaway - 2.7-1 +- update to 2.7 + +* Sun Mar 25 2018 Tom Callaway - 2.6.90-1 +- update to 2.6.90 + +* Wed Feb 07 2018 Fedora Release Engineering - 2.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 11 2018 Tom Callaway - 2.6.3-1 +- update to 2.6.3 + +* Wed Oct 11 2017 Tom Callaway - 2.6.1-5 +- add aligned_alloc support + +* Thu Aug 24 2017 Tom Callaway - 2.6.1-4 +- add configure option to disable generic dynamic tls model +- disable generic dynamic tls model on s390x and aarch64 + +* Wed Aug 02 2017 Fedora Release Engineering - 2.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 17 2017 Tom Callaway - 2.6.1-1 +- update to 2.6.1 + +* Tue May 23 2017 Tom Callaway - 2.5.93-1 +- update to 2.5.93 +- disable dynamic sized delete (explicitly) always + +* Mon May 22 2017 Tom Callaway - 2.5.92-1 +- update to 2.5.92 +- disable dynamic sized delete support on powerpc64 + +* Mon May 22 2017 Richard W.M. Jones - 2.5.91-2 +- Bump release and rebuild to try to fix _ZdlPvm symbol (see RHBZ#1452813). + +* Mon May 15 2017 Tom Callaway - 2.5.91-1 +- update to 2.5.91 + +* Tue Feb 21 2017 Dan Horák - 2.5-5 +- fix s390x build + +* Fri Feb 10 2017 Fedora Release Engineering - 2.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 12 2017 Tom Callaway - 2.5-3 +- enable s390x + +* Thu Apr 28 2016 Peter Robinson 2.5-2 +- Power64 has libunwind now + +* Tue Apr 26 2016 Tom Callaway - 2.5-1 +- update to 2.5 + +* Tue Mar 8 2016 Tom Callaway - 2.4.91-1 +- update to 2.4.91 +- re-enable hardened builds (upstream disabled dynamic sized delete by default) + +* Fri Mar 04 2016 Than Ngo - 2.4.90-3 +- Disable hardened build on ppc64/ppc64le (RHBZ#1314483). + +* Mon Feb 29 2016 Richard W.M. Jones - 2.4.90-2 +- Disable hardened build on 32 bit ARM (RHBZ#1312462). + +* Mon Feb 22 2016 Tom Callaway - 2.4.90-1 +- update to 2.4.90 + +* Wed Feb 03 2016 Fedora Release Engineering - 2.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jun 9 2015 Tom Callaway - 2.4-4 +- fix modern futex handling (thanks to Paolo Bonzini) + +* Mon Jun 1 2015 Tom Callaway - 2.4-3 +- enable futex for ARM + +* Sat May 02 2015 Kalev Lember - 2.4-2 +- Rebuilt for GCC 5 C++11 ABI change + +* Fri Mar 27 2015 Tom Callaway 2.4-1 +- update to 2.4 + +* Sat Aug 16 2014 Fedora Release Engineering - 2.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 10 2014 Dan Horák - 2.2.1-1 +- Update to new upstream 2.2.1 release +- Fixes build on ppc arches + +* Sat Jun 07 2014 Fedora Release Engineering - 2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Jun 4 2014 Peter Robinson 2.2-1 +- Update to new upstream 2.2 release +- Add support for new arches (aarch64, ppc64le, mips) + +* Tue May 13 2014 Jaromir Capik - 2.1-5 +- Replacing ppc64 with the power64 macro (#1077632) + +* Sat Jan 4 2014 Tom Callaway - 2.1-4 +- re-enable FORTIFY_SOURCE + +* Fri Dec 6 2013 Ville Skyttä - 2.1-3 +- Install docs to %%{_pkgdocdir} where available (#993798), include NEWS. +- Fix bogus date in %%changelog. + +* Sat Aug 03 2013 Petr Pisar - 2.1-2 +- Perl 5.18 rebuild + +* Wed Jul 31 2013 Tom Callaway - 2.1-1 +- update to 2.1 (fixes arm) +- disable -fexceptions, as that breaks things on el6, possibly arm + +* Wed Jul 17 2013 Petr Pisar - 2.0-12 +- Perl 5.18 rebuild + +* Tue Jun 4 2013 Tom Callaway - 2.0-11 +- pass -fno-strict-aliasing +- create "gperftools" metapackage. +- update to svn r218 (cleanups, some ARM fixes) + +* Thu Mar 14 2013 Dan Horák - 2.0-10 +- build on ppc64 as well + +* Fri Mar 1 2013 Tom Callaway - 2.0-9 +- update to svn r190 (because google can't make releases) + +* Thu Feb 14 2013 Fedora Release Engineering - 2.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Aug 3 2012 Tom Callaway - 2.0-7 +- fix compile with glibc 2.16 + +* Thu Jul 19 2012 Fedora Release Engineering - 2.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Feb 20 2012 Peter Robinson - 2.0-5 +- Enable ARM as a supported arch + +* Thu Feb 16 2012 Tom Callaway - 2.0-4 +- fix bug in -devel Requires + +* Tue Feb 14 2012 Tom Callaway - 2.0-3 +- pprof doesn't actually need gperftools-libs + +* Tue Feb 14 2012 Tom Callaway - 2.0-2 +- rework package so that pprof is a noarch subpackage, while still + enforcing the ExclusiveArch for the libs + +* Tue Feb 14 2012 Tom Callaway - 2.0-1 +- rename to gperftools +- update to 2.0 + +* Wed Jan 4 2012 Tom Callaway - 1.9.1-1 +- update to 1.9.1 + +* Mon Oct 24 2011 Tom Callaway - 1.8.3-3 +- split libraries out into subpackage to minimize dependencies + +* Wed Sep 21 2011 Remi Collet - 1.8.3-2 +- rebuild for new libunwind + +* Tue Aug 30 2011 Tom Callaway - 1.8.3-1 +- update to 1.8.3 + +* Mon Aug 22 2011 Tom Callaway - 1.8.2-1 +- update to 1.8.2 + +* Thu Jul 28 2011 Tom Callaway - 1.8.1-1 +- update to 1.8.1 + +* Mon Jul 18 2011 Tom Callaway - 1.8-1 +- update to 1.8 + +* Wed Jun 29 2011 Tom Callaway - 1.7-4 +- fix tcmalloc compile against current glibc, fix derived from: + http://src.chromium.org/viewvc/chrome?view=rev&revision=89800 + +* Thu May 12 2011 Tom Callaway - 1.7-3 +- add Requires: graphviz, gv for pprof + +* Fri Mar 11 2011 Dan Horák - 1.7-2 +- switch to ExclusiveArch + +* Fri Feb 18 2011 Tom Callaway - 1.7-1 +- update to 1.7 + +* Tue Feb 08 2011 Fedora Release Engineering - 1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Dec 2 2010 Tom "spot" Callaway - 1.6-2 +- fix pprof to work properly with jemalloc (bz 657118) + +* Fri Aug 6 2010 Tom "spot" Callaway - 1.6-1 +- update to 1.6 + +* Wed Jan 20 2010 Tom "spot" Callaway - 1.5-1 +- update to 1.5 +- disable broken test suite + +* Sat Sep 12 2009 Tom "spot" Callaway - 1.4-1 +- update to 1.4 + +* Fri Jul 24 2009 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 2 2009 Tom "spot" Callaway - 1.3-2 +- disable tests for ppc, upstream ticket #153 + +* Thu Jul 2 2009 Tom "spot" Callaway - 1.3-1 +- update to 1.3 + +* Wed May 20 2009 Tom "spot" Callaway - 1.2-1 +- update to 1.2 + +* Tue Feb 24 2009 Fedora Release Engineering - 0.99.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Sep 22 2008 Tom "spot" Callaway - 0.99.1-1 +- update to 0.99.1 +- previous patches in 0.98-1 were taken upstream + +* Mon Aug 25 2008 Tom "spot" Callaway - 0.98-1 +- update to 0.98 +- fix linuxthreads.c compile (upstream issue 74) +- fix ppc compile (upstream issue 75) +- enable ppc + +* Tue Feb 19 2008 Fedora Release Engineering - 0.95-4 +- Autorebuild for GCC 4.3 + +* Tue Feb 19 2008 Tom "spot" Callaway 0.95-3 +- re-disable ppc/ppc64 + +* Tue Feb 19 2008 Tom "spot" Callaway 0.95-2 +- ppc/ppc64 doesn't have libunwind + +* Tue Feb 19 2008 Tom "spot" Callaway 0.95-1 +- 0.95 (all patches taken upstream) +- enable ppc support +- workaround broken ptrace header (no typedef for u32) + +* Fri Jan 4 2008 Tom "spot" Callaway 0.94.1-1 +- bump to 0.94.1 +- fix for gcc4.3 +- fix unittest link issue + +* Thu Aug 23 2007 Tom "spot" Callaway 0.93-1 +- upstream merged my patch! +- rebuild for BuildID + +* Wed Aug 1 2007 Tom "spot" Callaway 0.92-1 +- bump to 0.92 + +* Thu May 17 2007 Tom "spot" Callaway 0.91-3.1 +- excludearch ppc64 + +* Sun Apr 29 2007 Tom "spot" Callaway 0.91-3 +- The tests work fine for me locally, but some of them fail inside mock. + +* Sun Apr 29 2007 Tom "spot" Callaway 0.91-2 +- no support for ppc yet + +* Mon Apr 23 2007 Tom "spot" Callaway 0.91-1 +- alright, lets see if this works now. + +* Wed Oct 12 2005 Tom "spot" Callaway 0.3-2 +- change group to Development/Tools + +* Mon Oct 10 2005 Tom "spot" Callaway 0.3-1 +- initial package for Fedora Extras