add configure option to disable generic dynamic tls model, do so for s390x and aarch64, add aligned_alloc support
This commit is contained in:
parent
137b2efb26
commit
269f60eced
|
@ -0,0 +1,33 @@
|
||||||
|
diff -up gperftools-2.6.1/Makefile.am.aa gperftools-2.6.1/Makefile.am
|
||||||
|
--- gperftools-2.6.1/Makefile.am.aa 2017-10-11 15:17:39.618807653 -0400
|
||||||
|
+++ gperftools-2.6.1/Makefile.am 2017-10-11 15:17:59.331338671 -0400
|
||||||
|
@@ -97,6 +97,7 @@ endif OSX
|
||||||
|
if HAVE_OBJCOPY_WEAKEN
|
||||||
|
WEAKEN = $(OBJCOPY) -W malloc -W free -W realloc -W calloc -W cfree \
|
||||||
|
-W memalign -W posix_memalign -W valloc -W pvalloc \
|
||||||
|
+ -W aligned_alloc \
|
||||||
|
-W malloc_stats -W mallopt -W mallinfo -W nallocx \
|
||||||
|
-W _Znwm -W _ZnwmRKSt9nothrow_t -W _Znam -W _ZnamRKSt9nothrow_t \
|
||||||
|
-W _ZdlPv -W _ZdaPv \
|
||||||
|
diff -up gperftools-2.6.1/src/libc_override_gcc_and_weak.h.aa gperftools-2.6.1/src/libc_override_gcc_and_weak.h
|
||||||
|
--- gperftools-2.6.1/src/libc_override_gcc_and_weak.h.aa 2017-10-11 15:18:32.234555868 -0400
|
||||||
|
+++ gperftools-2.6.1/src/libc_override_gcc_and_weak.h 2017-10-11 15:18:38.243412911 -0400
|
||||||
|
@@ -143,6 +143,7 @@ extern "C" {
|
||||||
|
void* calloc(size_t n, size_t size) __THROW ALIAS(tc_calloc);
|
||||||
|
void cfree(void* ptr) __THROW ALIAS(tc_cfree);
|
||||||
|
void* memalign(size_t align, size_t s) __THROW ALIAS(tc_memalign);
|
||||||
|
+ void* aligned_alloc(size_t align, size_t s) __THROW ALIAS(tc_memalign);
|
||||||
|
void* valloc(size_t size) __THROW ALIAS(tc_valloc);
|
||||||
|
void* pvalloc(size_t size) __THROW ALIAS(tc_pvalloc);
|
||||||
|
int posix_memalign(void** r, size_t a, size_t s) __THROW
|
||||||
|
diff -up gperftools-2.6.1/src/libc_override_redefine.h.aa gperftools-2.6.1/src/libc_override_redefine.h
|
||||||
|
--- gperftools-2.6.1/src/libc_override_redefine.h.aa 2017-10-11 15:18:55.012013968 -0400
|
||||||
|
+++ gperftools-2.6.1/src/libc_override_redefine.h 2017-10-11 15:19:20.528406906 -0400
|
||||||
|
@@ -71,6 +71,7 @@ extern "C" {
|
||||||
|
void* calloc(size_t n, size_t s) { return tc_calloc(n, s); }
|
||||||
|
void cfree(void* p) { tc_cfree(p); }
|
||||||
|
void* memalign(size_t a, size_t s) { return tc_memalign(a, s); }
|
||||||
|
+ void* aligned_alloc(size_t a, size_t s) { return tc_memalign(a, s); }
|
||||||
|
void* valloc(size_t s) { return tc_valloc(s); }
|
||||||
|
void* pvalloc(size_t s) { return tc_pvalloc(s); }
|
||||||
|
int posix_memalign(void** r, size_t a, size_t s) {
|
|
@ -0,0 +1,32 @@
|
||||||
|
diff -up ./configure.ac.dynload ./configure.ac
|
||||||
|
--- ./configure.ac.dynload 2017-08-24 15:23:01.126622099 -0400
|
||||||
|
+++ ./configure.ac 2017-08-24 15:29:46.332132222 -0400
|
||||||
|
@@ -614,6 +614,16 @@ AC_COMPILE_IFELSE(
|
||||||
|
AC_MSG_RESULT([yes])],
|
||||||
|
[AC_MSG_RESULT([no])])
|
||||||
|
|
||||||
|
+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 ./src/base/basictypes.h.dynload ./src/base/basictypes.h
|
||||||
|
--- ./src/base/basictypes.h.dynload 2017-08-24 15:30:30.210996293 -0400
|
||||||
|
+++ ./src/base/basictypes.h 2017-08-24 15:31:01.889176214 -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
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Name: gperftools
|
Name: gperftools
|
||||||
Version: 2.6.1
|
Version: 2.6.1
|
||||||
Release: 3%{?dist}
|
Release: 5%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
Summary: Very fast malloc and performance analysis tools
|
Summary: Very fast malloc and performance analysis tools
|
||||||
|
@ -12,12 +12,18 @@ URL: https://github.com/gperftools/gperftools
|
||||||
Source0: https://github.com/gperftools/gperftools/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
|
Source0: https://github.com/gperftools/gperftools/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
|
||||||
# There is no ucontext typedef on ppc64, at least not in rawhide.
|
# There is no ucontext typedef on ppc64, at least not in rawhide.
|
||||||
Patch0: gperftools-2.6.1-ppc64-ucontext-fix.patch
|
Patch0: gperftools-2.6.1-ppc64-ucontext-fix.patch
|
||||||
|
# Conditionalize generic dynamic tls model
|
||||||
|
Patch1: gperftools-2.6.1-disable-generic-dynamic-tls.patch
|
||||||
|
# Add support for C11 aligned_alloc
|
||||||
|
# https://github.com/gperftools/gperftools/commit/d406f228
|
||||||
|
Patch2: gperftools-2.6.1-aligned_alloc.patch
|
||||||
ExcludeArch: s390
|
ExcludeArch: s390
|
||||||
|
|
||||||
%ifnarch s390x
|
%ifnarch s390x
|
||||||
BuildRequires: libunwind-devel
|
BuildRequires: libunwind-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: perl-generators
|
BuildRequires: perl-generators
|
||||||
|
BuildRequires: autoconf, automake, libtool
|
||||||
Requires: gperftools-devel = %{version}-%{release}
|
Requires: gperftools-devel = %{version}-%{release}
|
||||||
Requires: pprof = %{version}-%{release}
|
Requires: pprof = %{version}-%{release}
|
||||||
|
|
||||||
|
@ -61,6 +67,8 @@ Pprof is a heap and CPU profiler tool, part of the gperftools suite.
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1 -b .ucontextfix
|
%patch0 -p1 -b .ucontextfix
|
||||||
|
%patch1 -p1 -b .dynload
|
||||||
|
%patch2 -p1 -b .aa
|
||||||
|
|
||||||
# Fix end-of-line encoding
|
# Fix end-of-line encoding
|
||||||
sed -i 's/\r//' README_windows.txt
|
sed -i 's/\r//' README_windows.txt
|
||||||
|
@ -68,10 +76,15 @@ sed -i 's/\r//' README_windows.txt
|
||||||
# No need to have exec permissions on source code
|
# No need to have exec permissions on source code
|
||||||
chmod -x src/*.h src/*.cc
|
chmod -x src/*.h src/*.cc
|
||||||
|
|
||||||
|
autoreconf -ifv
|
||||||
|
|
||||||
%build
|
%build
|
||||||
CFLAGS=`echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -DTCMALLOC_LARGE_PAGES | sed -e 's|-fexceptions||g'`
|
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'`
|
CXXFLAGS=`echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -DTCMALLOC_LARGE_PAGES | sed -e 's|-fexceptions||g'`
|
||||||
%configure \
|
%configure \
|
||||||
|
%ifarch s390x aarch64
|
||||||
|
--disable-general-dynamic-tls \
|
||||||
|
%endif
|
||||||
--disable-dynamic-sized-delete-support \
|
--disable-dynamic-sized-delete-support \
|
||||||
--disable-static
|
--disable-static
|
||||||
|
|
||||||
|
@ -115,6 +128,13 @@ rm -rf %{buildroot}%{_pkgdocdir}/INSTALL
|
||||||
%{_libdir}/*.so.*
|
%{_libdir}/*.so.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 11 2017 Tom Callaway <spot@fedoraproject.org> - 2.6.1-5
|
||||||
|
- add aligned_alloc support
|
||||||
|
|
||||||
|
* Thu Aug 24 2017 Tom Callaway <spot@fedoraproject.org> - 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 <releng@fedoraproject.org> - 2.6.1-3
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue