Name:	 gperftools
Version: 2.7
Release: 5
Summary: high-performance malloc and performance analysis tools

License: BSD
URL:	 https://github.com/gperftools/gperftools
Source0: https://github.com/gperftools/gperftools/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
Patch1:		gperftools-2.6.1-disable-generic-dynamic-tls.patch
Patch2:		Disable-large-allocation-report-by-default.patch
Patch3:		Fix-uninitialized-memory-use-in-sampler_test.patch
Patch4:		benchmark-use-angle-brackets-to-include-ucontext.h.patch
Patch5:		Format-and-fix-out-of-bound-access-in-CpuProfilerSwi.patch
Patch6:		Fix-incompatible-aliasing-warnings.patch
Patch7:		Use-standard-conforming-alignof-in-debugallocation.c.patch
Patch8:		Fix-page_heap_test-flakiness.patch
Patch9:		Avoid-static-initialization-of-pprof-path-for-symbol.patch
Patch10:	Fix-mmap-region-iteration-while-no-regions-are-recor.patch
Patch11:	Drop-not-very-portable-and-not-very-useful-unwind-be.patch
Patch12:	undef-mmap64-function.patch
Patch13:	Use-initial-exec-TLS-model-for-all-thread-local-vari.patch
Patch14:	don-t-try-to-mark-rsp-as-clobbered-in-linux-syscall-.patch

Patch9000:	issue-1122-fix-bus-error-on-aarch64.patch

BuildRequires: autoconf automake gcc-c++ libtool libunwind-devel perl-generators
Requires: %{name}-devel = %{version}-%{release}
Requires: pprof = %{version}-%{release}

ExcludeArch:	s390

%description
gperftools is a collection of a high-performance multi-threaded \
malloc() implementation, plus some pretty nifty performance analysis \
tools.

%package libs
Summary: Libraries for CPU profiler and tcmalloc
Provides: google-perftools-libs = %{version}-%{release}
Obsoletes: google-perftools-libs < 2.0

%description libs
This package contains libraries with CPU or heap profiling and thread-caching
malloc().

%package devel
Summary:  Development header files
Requires: pkg-config
Requires: %{name}-libs = %{version}-%{release}
Provides: google-perftools-devel = %{version}-%{release}
Provides: pkg-config(gperftools-devel) = %{version}-%{release}
Obsoletes: google-perftools-devel < 2.0

%description devel
This package contains Development header files with CPU or heap profiling and
thread-caching malloc() which provides by google and gperftools.

%package -n pprof
Summary:   Analyzes CPU and heap profiles tools
Requires:  gv graphviz perl
BuildArch: noarch
Provides:  pprof = %{version}-%{release}
Provides:  google-perftools = %{version}-%{release}
Obsoletes: google-perftools < 2.0

%description -n pprof
pprof is an facility that analyzes CPU and heap profiles.

%prep
%autosetup -n %{name}-%{version} -p1

%build
autoreconf -vif

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 \
%ifarch s390x aarch64
	--disable-general-dynamic-tls \
%endif
	--disable-dynamic-sized-delete-support \

%disable_rpath

make

%install
%make_install

%ldconfig_scriptlets libs

%files
#nothing to do

%files libs
%{_libdir}/libprofiler.so.*
%{_libdir}/libtcmalloc*.so.*

%files devel
%{_includedir}/google/*.h
%{_includedir}/gperftools/*.h
%{_libdir}/libprofiler.so
%{_libdir}/libtcmalloc*.so
%{_libdir}/pkgconfig/*.pc
%{_docdir}/%{name}/*
%{_libdir}/libprofiler.*a
%{_libdir}/libtcmalloc*.*a

%files -n pprof
%{_bindir}/*
%{_mandir}/man1/*.1.gz

%changelog
* Thu Aug 29 2019 luochunsheng <luochunsheng@huawei.com> - 2.7-5
- fix spelling errors

* Mon Jun 17 2019 Zhipeng Xie <xiezhipeng1@huawei.com> - 2.7-4
- Type:bugfix
- ID:NA
- SUG: NA
- DESC: issue-1122: fix bus error on aarch64

* Mon Apr 15 2019 lvying <lvying6@huawei.com> - 2.7-3
- Type:enhancement
- ID:NA
- SUG: NA
- DESC: peripheral package quality reinforcement: backport bugfix patches from community

* Tue Mar 5  2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7-2
- Package init
