- Update to version 3.5.0

* Add the *allocx() API, which is a successor to the experimental *allocm()
    API.  The *allocx() functions are slightly simpler to use because they have
    fewer parameters, they directly return the results of primary interest, and
    mallocx()/rallocx() avoid the strict aliasing pitfall that
    allocm()/rallocx() share with posix_memalign().  Note that *allocm() is
    slated for removal in the next non-bugfix release.
  * Add support for LinuxThreads.
  * Unless heap profiling is enabled, disable floating point code and don't link
    with libm.  This, in combination with e.g. EXTRA_CFLAGS=-mno-sse on x64
    systems, makes it possible to completely disable floating point register
    use.  Some versions of glibc neglect to save/restore caller-saved floating
    point registers during dynamic lazy symbol loading, and the symbol loading
    code uses whatever malloc the application happens to have linked/loaded
    with, the result being potential floating point register corruption.
  * Report ENOMEM rather than EINVAL if an OOM occurs during heap profiling
    backtrace creation in imemalign().  This bug impacted posix_memalign() and
    aligned_alloc().
  * Fix a file descriptor leak in a prof_dump_maps() error path.
  * Fix prof_dump() to close the dump file descriptor for all relevant error
    paths.
  * Fix rallocm() to use the arena specified by the ALLOCM_ARENA(s) flag for
    allocation, not just deallocation.
  * Fix a data race for large allocation stats counters.
  * Fix a potential infinite loop during thread exit.  This bug occurred on
    Solaris, and could affect other platforms with similar pthreads TSD
    implementations.
  * Don't junk-fill reallocations unless usable size changes.  This fixes a
    violation of the *allocx()/*allocm() semantics.
  * Fix growing large reallocation to junk fill new space.

OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=17
This commit is contained in:
Ismail Dönmez 2014-01-24 12:22:56 +00:00 committed by Git OBS Bridge
parent 62642784c1
commit 2957130e12
4 changed files with 63 additions and 10 deletions

View File

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

3
jemalloc-3.5.0.tar.bz2 Normal file
View File

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

View File

@ -1,3 +1,54 @@
-------------------------------------------------------------------
Fri Jan 24 12:02:33 UTC 2014 - idonmez@suse.com
- Update to version 3.5.0
* Add the *allocx() API, which is a successor to the experimental *allocm()
API. The *allocx() functions are slightly simpler to use because they have
fewer parameters, they directly return the results of primary interest, and
mallocx()/rallocx() avoid the strict aliasing pitfall that
allocm()/rallocx() share with posix_memalign(). Note that *allocm() is
slated for removal in the next non-bugfix release.
* Add support for LinuxThreads.
* Unless heap profiling is enabled, disable floating point code and don't link
with libm. This, in combination with e.g. EXTRA_CFLAGS=-mno-sse on x64
systems, makes it possible to completely disable floating point register
use. Some versions of glibc neglect to save/restore caller-saved floating
point registers during dynamic lazy symbol loading, and the symbol loading
code uses whatever malloc the application happens to have linked/loaded
with, the result being potential floating point register corruption.
* Report ENOMEM rather than EINVAL if an OOM occurs during heap profiling
backtrace creation in imemalign(). This bug impacted posix_memalign() and
aligned_alloc().
* Fix a file descriptor leak in a prof_dump_maps() error path.
* Fix prof_dump() to close the dump file descriptor for all relevant error
paths.
* Fix rallocm() to use the arena specified by the ALLOCM_ARENA(s) flag for
allocation, not just deallocation.
* Fix a data race for large allocation stats counters.
* Fix a potential infinite loop during thread exit. This bug occurred on
Solaris, and could affect other platforms with similar pthreads TSD
implementations.
* Don't junk-fill reallocations unless usable size changes. This fixes a
violation of the *allocx()/*allocm() semantics.
* Fix growing large reallocation to junk fill new space.
* Fix huge deallocation to junk fill when munmap is disabled.
* Change the default private namespace prefix from empty to je_, and change
--with-private-namespace-prefix so that it prepends an additional prefix
rather than replacing je_. This reduces the likelihood of applications
which statically link jemalloc experiencing symbol name collisions.
* Add missing private namespace mangling (relevant when
--with-private-namespace is specified).
* Add and use JEMALLOC_INLINE_C so that static inline functions are marked as
static even for debug builds.
* Add a missing mutex unlock in a malloc_init_hard() error path. In practice
this error path is never executed.
* Fix numerous bugs in malloc_strotumax() error handling/reporting. These
bugs had no impact except for malformed inputs.
* Fix numerous bugs in malloc_snprintf(). These bugs were not exercised by
existing calls, so they had no impact.
- Enable profiling support
-------------------------------------------------------------------
Tue Oct 22 09:28:50 UTC 2013 - idonmez@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package jemalloc
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
Name: jemalloc
Version: 3.4.1
Version: 3.5.0
Release: 0
%define lname libjemalloc1
Summary: General-purpose scalable concurrent malloc implementation
@ -66,15 +66,17 @@ malloc(3) implementation.
%setup -q
%build
export CFLAGS="%{optflags} -g2";
%configure
make %{?_smp_mflags};
export CFLAGS="%{optflags} -g2 -std=gnu99"
%configure --enable-cc-silence \
--enable-prof
make %{?_smp_mflags}
%install
b=%{buildroot};
make install DESTDIR="$b";
make install DESTDIR="$b"
chmod -x "%{buildroot}/%{_libdir}"/*.a
chmod -x "%{buildroot}/%{_libdir}"/*.a;
if [ "%_docdir" != "%{_datadir}/doc" ]; then
# stupid Makefile does not allow to set it
mkdir -p "$b/%_docdir";