Accepting request 860746 from devel:libraries:c_c++

OBS-URL: https://build.opensuse.org/request/show/860746
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gperftools?expand=0&rev=26
This commit is contained in:
Dominique Leuenberger 2021-01-08 16:33:08 +00:00 committed by Git OBS Bridge
commit dfa23254aa
6 changed files with 41 additions and 116 deletions

View File

@ -1,26 +0,0 @@
From 9e5b1628737c67b4587f937164572774592978c4 Mon Sep 17 00:00:00 2001
From: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date: Sun, 10 Feb 2019 12:46:18 -0800
Subject: [PATCH] don't try to mark rsp as clobbered in linux syscall support
rsp is not actually clobbered by that code and later gccs actually (correctly) bark
at it.
Fixed issue #1076.
---
src/base/linux_syscall_support.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
index 13aa415e..199061a9 100644
--- a/src/base/linux_syscall_support.h
+++ b/src/base/linux_syscall_support.h
@@ -1485,7 +1485,7 @@ struct kernel_stat {
"d"(LSS_SYSCALL_ARG(parent_tidptr)),
"r"(LSS_SYSCALL_ARG(newtls)),
"r"(LSS_SYSCALL_ARG(child_tidptr))
- : "rsp", "memory", "r8", "r10", "r11", "rcx");
+ : "memory", "r8", "r10", "r11", "rcx");
}
LSS_RETURN(int, __res);
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1ee8c8699a0eff6b6a203e59b43330536b22bbcbe6448f54c7091e5efb0763c9
size 1523562

3
gperftools-2.8.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:12f07a8ba447f12a3ae15e6e3a6ad74de35163b787c0c7b76288d7395f2f74e0
size 1598384

View File

@ -1,3 +1,23 @@
-------------------------------------------------------------------
Tue Jan 5 08:23:07 UTC 2021 - Paolo Stivanin <info@paolostivanin.com>
- Update to 2.8.1:
* previous release contained change to release memory without page
heap lock, but this change had at least one bug that caused to
crashes and corruption when running under aggressive decommit mode
(this is not default). While we check for other bugs, this feature
was reverted. See github issue #1204 and issue #1227.
* stack traces depth captured by gperftools is now up to 254 levels
deep
* updated detection of program counter
* ProfilerGetStackTrace is now officially supported API for
libprofiler
* for compiling linux syscall support on i386 and recent GCCs
* test failures caused by new gcc 10 optimizations were fixed. Same
change also fixed tests on clang.
- Drop ppc64-fix-367fd5731a8c68225cb870aa656ea0ce677fe040.patch
- Drop gcc-dont-clobber-rsp.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Sep 4 20:33:52 UTC 2020 - Jan Engelhardt <jengelh@inai.de> Fri Sep 4 20:33:52 UTC 2020 - Jan Engelhardt <jengelh@inai.de>

View File

@ -1,7 +1,7 @@
# #
# spec file for package gperftools # spec file for package gperftools
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2021 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
Name: gperftools Name: gperftools
Version: 2.7 Version: 2.8.1
Release: 0 Release: 0
Summary: Performance Tools for C++ Summary: Performance Tools for C++
License: BSD-3-Clause License: BSD-3-Clause
@ -26,23 +26,25 @@ URL: https://github.com/gperftools/gperftools
Source0: https://github.com/gperftools/gperftools/releases/download/gperftools-%{version}/gperftools-%{version}.tar.gz Source0: https://github.com/gperftools/gperftools/releases/download/gperftools-%{version}/gperftools-%{version}.tar.gz
Patch1: %{name}_fix_unassigned_malloc_in_unittest.patch Patch1: %{name}_fix_unassigned_malloc_in_unittest.patch
Patch2: %{name}_gcc46.patch Patch2: %{name}_gcc46.patch
Patch3: gcc-dont-clobber-rsp.patch
Patch4: ppc64-fix-367fd5731a8c68225cb870aa656ea0ce677fe040.patch
BuildRequires: autoconf >= 2.59 BuildRequires: autoconf >= 2.59
BuildRequires: automake BuildRequires: automake
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: libtool BuildRequires: libtool
%ifnarch s390x s390 BuildRequires: pkgconfig
BuildRequires: libunwind-devel
%endif
BuildRequires: pkg-config
%ifnarch s390
BuildRequires: valgrind-devel
%endif
# based on basictypes.h in the source tree
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 mips s390x
Provides: google-perftools Provides: google-perftools
Obsoletes: google-perftools Obsoletes: google-perftools
# based on basictypes.h in the source tree
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le %{arm} aarch64 mips s390x
%ifnarch s390x s390
BuildRequires: pkgconfig(libunwind)
BuildRequires: pkgconfig(libunwind-coredump)
BuildRequires: pkgconfig(libunwind-generic)
BuildRequires: pkgconfig(libunwind-ptrace)
BuildRequires: pkgconfig(libunwind-setjmp)
%endif
%ifnarch s390
BuildRequires: pkgconfig(valgrind)
%endif
%description %description
The gperftools package contains some utilities to improve and analyze the The gperftools package contains some utilities to improve and analyze the
@ -103,23 +105,21 @@ export CFLAGS="%{optflags} -fno-strict-aliasing $VALGRIND_FL"
--with-gnu-ld \ --with-gnu-ld \
--with-pic \ --with-pic \
--docdir=%{_defaultdocdir}/%{name} --docdir=%{_defaultdocdir}/%{name}
make %{?_smp_mflags} %make_build
%install %install
%make_install %make_install
find %{buildroot} -type f -name "*.la" -delete -print find %{buildroot} -type f -name "*.la" -delete -print
%post -n libprofiler0 -p /sbin/ldconfig %post -n libprofiler0 -p /sbin/ldconfig
%postun -n libprofiler0 -p /sbin/ldconfig %postun -n libprofiler0 -p /sbin/ldconfig
%post -n libtcmalloc4 -p /sbin/ldconfig %post -n libtcmalloc4 -p /sbin/ldconfig
%postun -n libtcmalloc4 -p /sbin/ldconfig %postun -n libtcmalloc4 -p /sbin/ldconfig
%files %files
%{_bindir}/pprof %{_bindir}/pprof
%{_mandir}/man1/pprof.1.* %{_bindir}/pprof-symbolize
%{_mandir}/man1/pprof.1%{?ext_man}
%{_docdir}/%{name} %{_docdir}/%{name}
%files -n libprofiler0 %files -n libprofiler0

View File

@ -1,69 +0,0 @@
From 367fd5731a8c68225cb870aa656ea0ce677fe040 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date: Fri, 8 Feb 2019 10:33:09 -0200
Subject: [PATCH] Include asm/ptrace.h when accessing ucontext_t
In some architectures (e.g. powerpc, powerpc64 and powerpc64le), the
macro that specifies the position of the program counter is defined in
header asm/ptrace.h.
When glibc bug 21457 got fixed in version 2.27, header sys/ucontext.h
stopped including signal.h, which indirectly removed asm/ptrace.h too.
Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
---
m4/pc_from_ucontext.m4 | 12 +++++++++++-
src/getpc.h | 3 +++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/m4/pc_from_ucontext.m4 b/m4/pc_from_ucontext.m4
index c9224bc6..7114bd0d 100644
--- a/m4/pc_from_ucontext.m4
+++ b/m4/pc_from_ucontext.m4
@@ -20,6 +20,7 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT],
AC_CHECK_HEADERS(sys/ucontext.h) # ucontext on OS X 10.6 (at least)
fi
AC_CHECK_HEADERS(cygwin/signal.h) # ucontext on cywgin
+ AC_CHECK_HEADERS(asm/ptrace.h) # get ptrace macros, e.g. PT_NIP
AC_MSG_CHECKING([how to access the program counter from a struct ucontext])
pc_fields=" uc_mcontext.gregs[[REG_PC]]" # Solaris x86 (32 + 64 bit)
pc_fields="$pc_fields uc_mcontext.gregs[[REG_EIP]]" # Linux (i386)
@@ -53,14 +54,23 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT],
How to access the PC from a struct ucontext)
AC_MSG_RESULT([$pc_field])
pc_field_found=true)
- elif test "x$ac_cv_header_sys_ucontext_h" = xyes; then
+ elif test "x$ac_cv_header_asm_ptrace_h" = xyes -a "x$ac_cv_header_sys_ucontext_h" = xyes; then
AC_TRY_COMPILE([#define _GNU_SOURCE 1
+ #include <asm/ptrace.h>
#include <sys/ucontext.h>],
[ucontext_t u; return u.$pc_field == 0;],
AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field,
How to access the PC from a struct ucontext)
AC_MSG_RESULT([$pc_field])
pc_field_found=true)
+ elif test "x$ac_cv_header_sys_ucontext_h" = xyes; then
+ AC_TRY_COMPILE([#define _GNU_SOURCE 1
+ #include <sys/ucontext.h>],
+ [ucontext_t u; return u.$pc_field == 0;],
+ AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field,
+ How to access the PC from a struct ucontext)
+ AC_MSG_RESULT([$pc_field])
+ pc_field_found=true)
elif test "x$ac_cv_header_ucontext_h" = xyes; then
AC_TRY_COMPILE([#define _GNU_SOURCE 1
#include <ucontext.h>],
diff --git a/src/getpc.h b/src/getpc.h
index 163873ea..9605363b 100644
--- a/src/getpc.h
+++ b/src/getpc.h
@@ -56,6 +56,9 @@
//#define _XOPEN_SOURCE 500
#include <string.h> // for memcmp
+#ifdef HAVE_ASM_PTRACE_H
+#include <asm/ptrace.h>
+#endif
#if defined(HAVE_SYS_UCONTEXT_H)
#include <sys/ucontext.h>
#elif defined(HAVE_UCONTEXT_H)