- New upstream release
- Updated no_pprof patch to match new release - Updated s390 patch to match new relase - Added make check - Added new script jemalloc.sh - Added a patch for atomic operations on epel5/ppc
This commit is contained in:
parent
dc286617e7
commit
61dc0cf2d4
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@
|
||||
/jemalloc-2.2.3.tar.bz2
|
||||
/jemalloc-2.2.4.tar.bz2
|
||||
/jemalloc-2.2.5.tar.bz2
|
||||
/jemalloc-3.0.0.tar.bz2
|
||||
|
11
jemalloc-3.0.0-s390.patch
Normal file
11
jemalloc-3.0.0-s390.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- include/jemalloc/internal/jemalloc_internal.h.in.orig 2012-05-14 08:29:24.332065965 +0200
|
||||
+++ include/jemalloc/internal/jemalloc_internal.h.in 2012-05-14 08:29:39.483118492 +0200
|
||||
@@ -276,7 +276,7 @@
|
||||
# ifdef __powerpc__
|
||||
# define LG_QUANTUM 4
|
||||
# endif
|
||||
-# ifdef __s390x__
|
||||
+# ifdef __s390__
|
||||
# define LG_QUANTUM 4
|
||||
# endif
|
||||
# ifdef __SH4__
|
256
jemalloc-3.0.0.atomic_h_ppc_32bit_operations.patch
Normal file
256
jemalloc-3.0.0.atomic_h_ppc_32bit_operations.patch
Normal file
@ -0,0 +1,256 @@
|
||||
diff -Naur ../jemalloc-3.0.0.orig/COPYING.epel5-ppc ./COPYING.epel5-ppc
|
||||
--- ../jemalloc-3.0.0.orig/COPYING.epel5-ppc 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ ./COPYING.epel5-ppc 2012-05-18 16:21:31.869392165 +0200
|
||||
@@ -0,0 +1,215 @@
|
||||
+When using this jemalloc package with EPEL5 on ppc, please note that a
|
||||
+non-upstream patch has been added. This patch is covered by the Apache
|
||||
+2.0 License, which states that this work is
|
||||
+
|
||||
+ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
+ you may not use this file except in compliance with the License.
|
||||
+
|
||||
+For other platforms and operating systems, please ignore this file.
|
||||
+
|
||||
+The patch adds missing 32bit atomic operations that is missing from
|
||||
+RHEL5 and its derivates on ppc/ppc64. The code was fetched from the
|
||||
+Apache Portable Runtime project, http://apr.apache.org/
|
||||
+
|
||||
+
|
||||
+
|
||||
+Apache License
|
||||
+
|
||||
+Version 2.0, January 2004
|
||||
+
|
||||
+http://www.apache.org/licenses/
|
||||
+
|
||||
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
+
|
||||
+1. Definitions.
|
||||
+
|
||||
+"License" shall mean the terms and conditions for use, reproduction,
|
||||
+and distribution as defined by Sections 1 through 9 of this document.
|
||||
+
|
||||
+"Licensor" shall mean the copyright owner or entity authorized by the
|
||||
+copyright owner that is granting the License.
|
||||
+
|
||||
+"Legal Entity" shall mean the union of the acting entity and all other
|
||||
+entities that control, are controlled by, or are under common control
|
||||
+with that entity. For the purposes of this definition, "control" means
|
||||
+(i) the power, direct or indirect, to cause the direction or
|
||||
+management of such entity, whether by contract or otherwise, or (ii)
|
||||
+ownership of fifty percent (50%) or more of the outstanding shares, or
|
||||
+(iii) beneficial ownership of such entity.
|
||||
+
|
||||
+"You" (or "Your") shall mean an individual or Legal Entity exercising
|
||||
+permissions granted by this License.
|
||||
+
|
||||
+"Source" form shall mean the preferred form for making modifications,
|
||||
+including but not limited to software source code, documentation
|
||||
+source, and configuration files.
|
||||
+
|
||||
+"Object" form shall mean any form resulting from mechanical
|
||||
+transformation or translation of a Source form, including but not
|
||||
+limited to compiled object code, generated documentation, and
|
||||
+conversions to other media types.
|
||||
+
|
||||
+"Work" shall mean the work of authorship, whether in Source or Object
|
||||
+form, made available under the License, as indicated by a copyright
|
||||
+notice that is included in or attached to the work (an example is
|
||||
+provided in the Appendix below).
|
||||
+
|
||||
+"Derivative Works" shall mean any work, whether in Source or Object
|
||||
+form, that is based on (or derived from) the Work and for which the
|
||||
+editorial revisions, annotations, elaborations, or other modifications
|
||||
+represent, as a whole, an original work of authorship. For the
|
||||
+purposes of this License, Derivative Works shall not include works
|
||||
+that remain separable from, or merely link (or bind by name) to the
|
||||
+interfaces of, the Work and Derivative Works thereof.
|
||||
+
|
||||
+"Contribution" shall mean any work of authorship, including the
|
||||
+original version of the Work and any modifications or additions to
|
||||
+that Work or Derivative Works thereof, that is intentionally submitted
|
||||
+to Licensor for inclusion in the Work by the copyright owner or by an
|
||||
+individual or Legal Entity authorized to submit on behalf of the
|
||||
+copyright owner. For the purposes of this definition, "submitted"
|
||||
+means any form of electronic, verbal, or written communication sent to
|
||||
+the Licensor or its representatives, including but not limited to
|
||||
+communication on electronic mailing lists, source code control
|
||||
+systems, and issue tracking systems that are managed by, or on behalf
|
||||
+of, the Licensor for the purpose of discussing and improving the Work,
|
||||
+but excluding communication that is conspicuously marked or otherwise
|
||||
+designated in writing by the copyright owner as "Not a Contribution."
|
||||
+
|
||||
+"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
+on behalf of whom a Contribution has been received by Licensor and
|
||||
+subsequently incorporated within the Work.
|
||||
+
|
||||
+2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
+this License, each Contributor hereby grants to You a perpetual,
|
||||
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
+copyright license to reproduce, prepare Derivative Works of, publicly
|
||||
+display, publicly perform, sublicense, and distribute the Work and
|
||||
+such Derivative Works in Source or Object form.
|
||||
+
|
||||
+3. Grant of Patent License. Subject to the terms and conditions of
|
||||
+this License, each Contributor hereby grants to You a perpetual,
|
||||
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except
|
||||
+as stated in this section) patent license to make, have made, use,
|
||||
+offer to sell, sell, import, and otherwise transfer the Work, where
|
||||
+such license applies only to those patent claims licensable by such
|
||||
+Contributor that are necessarily infringed by their Contribution(s)
|
||||
+alone or by combination of their Contribution(s) with the Work to
|
||||
+which such Contribution(s) was submitted. If You institute patent
|
||||
+litigation against any entity (including a cross-claim or counterclaim
|
||||
+in a lawsuit) alleging that the Work or a Contribution incorporated
|
||||
+within the Work constitutes direct or contributory patent
|
||||
+infringement, then any patent licenses granted to You under this
|
||||
+License for that Work shall terminate as of the date such litigation
|
||||
+is filed.
|
||||
+
|
||||
+4. Redistribution. You may reproduce and distribute copies of the Work
|
||||
+or Derivative Works thereof in any medium, with or without
|
||||
+modifications, and in Source or Object form, provided that You meet
|
||||
+the following conditions:
|
||||
+
|
||||
+ You must give any other recipients of the Work or Derivative Works
|
||||
+ a copy of this License; and
|
||||
+
|
||||
+ You must cause any modified files to carry prominent notices
|
||||
+ stating that You changed the files; and
|
||||
+
|
||||
+ You must retain, in the Source form of any Derivative Works that
|
||||
+ You distribute, all copyright, patent, trademark, and attribution
|
||||
+ notices from the Source form of the Work, excluding those notices
|
||||
+ that do not pertain to any part of the Derivative Works; and
|
||||
+
|
||||
+ If the Work includes a "NOTICE" text file as part of its
|
||||
+ distribution, then any Derivative Works that You distribute must
|
||||
+ include a readable copy of the attribution notices contained
|
||||
+ within such NOTICE file, excluding those notices that do not
|
||||
+ pertain to any part of the Derivative Works, in at least one of
|
||||
+ the following places: within a NOTICE text file distributed as
|
||||
+ part of the Derivative Works; within the Source form or
|
||||
+ documentation, if provided along with the Derivative Works; or,
|
||||
+ within a display generated by the Derivative Works, if and
|
||||
+ wherever such third-party notices normally appear. The contents of
|
||||
+ the NOTICE file are for informational purposes only and do not
|
||||
+ modify the License. You may add Your own attribution notices
|
||||
+ within Derivative Works that You distribute, alongside or as an
|
||||
+ addendum to the NOTICE text from the Work, provided that such
|
||||
+ additional attribution notices cannot be construed as modifying
|
||||
+ the License. You may add Your own copyright statement to Your
|
||||
+ modifications and may provide additional or different license
|
||||
+ terms and conditions for use, reproduction, or distribution of
|
||||
+ Your modifications, or for any such Derivative Works as a whole,
|
||||
+ provided Your use, reproduction, and distribution of the Work
|
||||
+ otherwise complies with the conditions stated in this License.
|
||||
+
|
||||
+5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
+any Contribution intentionally submitted for inclusion in the Work by
|
||||
+You to the Licensor shall be under the terms and conditions of this
|
||||
+License, without any additional terms or conditions. Notwithstanding
|
||||
+the above, nothing herein shall supersede or modify the terms of any
|
||||
+separate license agreement you may have executed with Licensor
|
||||
+regarding such Contributions.
|
||||
+
|
||||
+6. Trademarks. This License does not grant permission to use the trade
|
||||
+names, trademarks, service marks, or product names of the Licensor,
|
||||
+except as required for reasonable and customary use in describing the
|
||||
+origin of the Work and reproducing the content of the NOTICE file.
|
||||
+
|
||||
+7. Disclaimer of Warranty. Unless required by applicable law or agreed
|
||||
+to in writing, Licensor provides the Work (and each Contributor
|
||||
+provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
+CONDITIONS OF ANY KIND, either express or implied, including, without
|
||||
+limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
|
||||
+MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
|
||||
+responsible for determining the appropriateness of using or
|
||||
+redistributing the Work and assume any risks associated with Your
|
||||
+exercise of permissions under this License.
|
||||
+
|
||||
+8. Limitation of Liability. In no event and under no legal theory,
|
||||
+whether in tort (including negligence), contract, or otherwise, unless
|
||||
+required by applicable law (such as deliberate and grossly negligent
|
||||
+acts) or agreed to in writing, shall any Contributor be liable to You
|
||||
+for damages, including any direct, indirect, special, incidental, or
|
||||
+consequential damages of any character arising as a result of this
|
||||
+License or out of the use or inability to use the Work (including but
|
||||
+not limited to damages for loss of goodwill, work stoppage, computer
|
||||
+failure or malfunction, or any and all other commercial damages or
|
||||
+losses), even if such Contributor has been advised of the possibility
|
||||
+of such damages.
|
||||
+
|
||||
+9. Accepting Warranty or Additional Liability. While redistributing
|
||||
+the Work or Derivative Works thereof, You may choose to offer, and
|
||||
+charge a fee for, acceptance of support, warranty, indemnity, or other
|
||||
+liability obligations and/or rights consistent with this
|
||||
+License. However, in accepting such obligations, You may act only on
|
||||
+Your own behalf and on Your sole responsibility, not on behalf of any
|
||||
+other Contributor, and only if You agree to indemnify, defend, and
|
||||
+hold each Contributor harmless for any liability incurred by, or
|
||||
+claims asserted against, such Contributor by reason of your accepting
|
||||
+any such warranty or additional liability.
|
||||
+
|
||||
+END OF TERMS AND CONDITIONS
|
||||
+APPENDIX: How to apply the Apache License to your work
|
||||
+
|
||||
+To apply the Apache License to your work, attach the following
|
||||
+boilerplate notice, with the fields enclosed by brackets "[]" replaced
|
||||
+with your own identifying information. (Don't include the brackets!)
|
||||
+The text should be enclosed in the appropriate comment syntax for the
|
||||
+file format. We also recommend that a file or class name and
|
||||
+description of purpose be included on the same "printed page" as the
|
||||
+copyright notice for easier identification within third-party
|
||||
+archives.
|
||||
+
|
||||
+ Copyright [yyyy] [name of copyright owner]
|
||||
+
|
||||
+ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
+ you may not use this file except in compliance with the License.
|
||||
+ You may obtain a copy of the License at
|
||||
+
|
||||
+ http://www.apache.org/licenses/LICENSE-2.0
|
||||
+
|
||||
+ Unless required by applicable law or agreed to in writing, software
|
||||
+ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
+ See the License for the specific language governing permissions and
|
||||
+ limitations under the License.
|
||||
+
|
||||
diff -Naur ../jemalloc-3.0.0.orig/include/jemalloc/internal/atomic.h ./include/jemalloc/internal/atomic.h
|
||||
--- ../jemalloc-3.0.0.orig/include/jemalloc/internal/atomic.h 2012-05-12 02:50:38.000000000 +0200
|
||||
+++ ./include/jemalloc/internal/atomic.h 2012-05-18 15:55:34.457212405 +0200
|
||||
@@ -242,6 +242,33 @@
|
||||
|
||||
return (__sync_sub_and_fetch(p, x));
|
||||
}
|
||||
+#elif (defined(__ppc__) || defined(__PPC__))
|
||||
+// Code fetched from the boost library
|
||||
+//
|
||||
+JEMALLOC_INLINE uint32_t
|
||||
+atomic_add_uint32(uint32_t *p, uint32_t x)
|
||||
+{
|
||||
+ uint32_t prev, temp;
|
||||
+
|
||||
+ asm volatile ("0:\n\t" // retry local label
|
||||
+ "lwarx %0,0,%2\n\t" // load prev and reserve
|
||||
+ "add %1,%0,%3\n\t" // temp = prev + x
|
||||
+ "stwcx. %1,0,%2\n\t" // conditionally store
|
||||
+ "bne- 0b" // start over if we lost
|
||||
+ // the reservation
|
||||
+ //XXX find a cleaner way to define the temp
|
||||
+ //it's not an output
|
||||
+ : "=&r" (prev), "=&r" (temp) // output, temp
|
||||
+ : "b" (p), "r" (x) // inputs
|
||||
+ : "memory", "cc"); // clobbered
|
||||
+ return temp;
|
||||
+}
|
||||
+
|
||||
+JEMALLOC_INLINE uint32_t
|
||||
+atomic_sub_uint32(uint32_t *p, uint32_t x)
|
||||
+{
|
||||
+ return atomic_add_uint32(p, -x);
|
||||
+}
|
||||
#else
|
||||
# error "Missing implementation for 32-bit atomic operations"
|
||||
#endif
|
11
jemalloc-3.0.0.no_pprof.patch
Normal file
11
jemalloc-3.0.0.no_pprof.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- Makefile.in.orig 2012-05-14 08:25:41.859295446 +0200
|
||||
+++ Makefile.in 2012-05-14 08:25:58.577353251 +0200
|
||||
@@ -69,7 +69,7 @@
|
||||
LIBJEMALLOC := $(LIBPREFIX)jemalloc$(install_suffix)
|
||||
|
||||
# Lists of files.
|
||||
-BINS := $(srcroot)bin/pprof $(objroot)bin/jemalloc.sh
|
||||
+BINS := $(objroot)bin/jemalloc.sh
|
||||
CHDRS := $(objroot)include/jemalloc/jemalloc$(install_suffix).h \
|
||||
$(objroot)include/jemalloc/jemalloc_defs$(install_suffix).h
|
||||
CSRCS := $(srcroot)src/jemalloc.c $(srcroot)src/arena.c $(srcroot)src/atomic.c \
|
@ -1,7 +1,7 @@
|
||||
Name: jemalloc
|
||||
Version: 2.2.5
|
||||
Version: 3.0.0
|
||||
|
||||
Release: 5%{?dist}
|
||||
Release: 1%{?dist}
|
||||
Summary: General-purpose scalable concurrent malloc implementation
|
||||
|
||||
Group: System Environment/Libraries
|
||||
@ -11,11 +11,13 @@ Source0: http://www.canonware.com/download/jemalloc/%{name}-%{version}.ta
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
# Remove pprof, as it already exists in google-perftools
|
||||
Patch0: jemalloc-2.2.2.no_pprof.patch
|
||||
Patch0: jemalloc-3.0.0.no_pprof.patch
|
||||
# check for __s390__ as it's defined on both s390 and s390x
|
||||
Patch1: jemalloc-2.0.1-s390.patch
|
||||
Patch1: jemalloc-3.0.0-s390.patch
|
||||
# ARMv5tel has no atomic operations
|
||||
Patch2: jemalloc-armv5-force-atomic.patch
|
||||
# RHEL5/POWER has no atomic operations
|
||||
Patch3: jemalloc-3.0.0.atomic_h_ppc_32bit_operations.patch
|
||||
|
||||
BuildRequires: /usr/bin/xsltproc
|
||||
|
||||
@ -35,14 +37,23 @@ developing applications that use %{name}.
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0
|
||||
%patch1 -p1 -b .s390
|
||||
%patch1 -p0 -b .s390
|
||||
%patch2 -p1 -b .armv5tel
|
||||
%ifarch ppc ppc64
|
||||
%if 0%{?rhel} == 5
|
||||
%patch3 -b .ppc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%build
|
||||
%configure
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
%check
|
||||
make check
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
make install DESTDIR=%{buildroot}
|
||||
@ -60,8 +71,14 @@ rm -rf %{buildroot}
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/libjemalloc.so.*
|
||||
%{_bindir}/jemalloc.sh
|
||||
%doc COPYING README VERSION
|
||||
%doc doc/jemalloc.html
|
||||
%ifarch ppc ppc64
|
||||
%if 0%{?rhel} == 5
|
||||
%doc COPYING.epel5-ppc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
@ -74,6 +91,14 @@ rm -rf %{buildroot}
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%changelog
|
||||
* Mon May 14 2012 Ingvar Hagelund <ingvar@redpill-linpro.com> - 3.0.0-1
|
||||
- New upstream release
|
||||
- Updated no_pprof patch to match new release
|
||||
- Updated s390 patch to match new relase
|
||||
- Added make check
|
||||
- Added new script jemalloc.sh
|
||||
- Added a patch for atomic operations on epel5/ppc
|
||||
|
||||
* Sat Apr 21 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 2.2.5-5
|
||||
- Improve ARM patch
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user