# Get the source
cd
test -f installed/jemalloc-5.3.0.tar.bz2 &&
mv -f installed/jemalloc-5.3.0.tar.bz2 .
test ! -f jemalloc-5.3.0.tar.bz2 &&
wget https://github.com/jemalloc/jemalloc/releases/download/5.3.0/\
jemalloc-5.3.0.tar.bz2
# Verify tarball w/ sha256sum:
# (this confirms yours is the same as mine, but did not come from the
# developers)
echo "2db82d1e7119df3e71b7640219b6dfe84789bc0537983c3b7ac4f7189aecfe\
aa jemalloc-5.3.0.tar.bz2" | sha256sum -c
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "jemalloc-*" -exec rm -r {} \;
tar xjvf ~/jemalloc-5.3.0.tar.bz2
cd jemalloc-5.3.0
test $UID = 0 && chown -R root:root .
# Apply this patch to fix --docdir
wget -nc https://englanders.us/pub/linux/patches/jemalloc-5.3.0-docdir.patch
test -s jemalloc-5.3.0-docdir.patch &&
patch -p1 < jemalloc-5.3.0-docdir.patch && autoreconf -f -i
# Read README and INSTALL.md, if upgrading, also ChangeLog
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/jemalloc-5.3.0 \
--libdir=/usr/lib64 --mandir=/usr/man
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/jemalloc-5.3.0 --mandir=/usr/man
# Build it
make
# Check the build
make check
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg jemalloc
# Install it
make install
ldconfig
# Become your non-root user again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/jemalloc-*.tar.*
mv jemalloc-5.3.0.tar.bz2 installed/
# If you ever want to uninstall jemalloc, this should do it:
# ('make uninstall' as root from the configured source directory would be
# enough, if you still have it)
cd
su
test -d src/jemalloc-* && ( cd src/jemalloc-* ; make uninstall )
( cd /usr/bin ; rm -f jemalloc-config jemalloc.sh jeprof )
/usr/doc -maxdepth 1 -type d -name "jemalloc-*" -exec rm -r {} \;
test -d /usr/lib64 &&
( cd /usr/lib64
rm -f libjemalloc.* libjemalloc_pic.* pkgconfig/jemalloc.pc )
rm -f /usr/include/jemalloc/jemalloc.h \
/usr/lib/libjemalloc.* /usr/lib/libjemalloc_pic.* \
/usr/lib/pkgconfig/jemalloc.pc /usr/man/man3/jemalloc.3
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "jemalloc-*" -exec rm -r {} \;
rm -f ~/installed/jemalloc-*.tar.*