From 2957130e1228586b3a8f2c99f6adb808f4e982a2efe91855c86f6b1a6851e638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Fri, 24 Jan 2014 12:22:56 +0000 Subject: [PATCH] - 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 --- jemalloc-3.4.1.tar.bz2 | 3 --- jemalloc-3.5.0.tar.bz2 | 3 +++ jemalloc.changes | 51 ++++++++++++++++++++++++++++++++++++++++++ jemalloc.spec | 16 +++++++------ 4 files changed, 63 insertions(+), 10 deletions(-) delete mode 100644 jemalloc-3.4.1.tar.bz2 create mode 100644 jemalloc-3.5.0.tar.bz2 diff --git a/jemalloc-3.4.1.tar.bz2 b/jemalloc-3.4.1.tar.bz2 deleted file mode 100644 index b89874f..0000000 --- a/jemalloc-3.4.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7341953fe9f21342b005b6c7e798631678ae713293a64d5fa61dea7449fc10fb -size 254149 diff --git a/jemalloc-3.5.0.tar.bz2 b/jemalloc-3.5.0.tar.bz2 new file mode 100644 index 0000000..b5e5eb1 --- /dev/null +++ b/jemalloc-3.5.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b13dbef27c46e9efbe19b5eef574e298409ed9dbbde85ec805e29d04c05e473 +size 335796 diff --git a/jemalloc.changes b/jemalloc.changes index bef006d..4bda0ac 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -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 diff --git a/jemalloc.spec b/jemalloc.spec index 89a8bb4..44be003 100644 --- a/jemalloc.spec +++ b/jemalloc.spec @@ -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";