#!/bin/bash -e GET_PIP_URL='https://bootstrap.pypa.io/get-pip.py' SWIG_URL='https://downloads.sourceforge.net/project/swig/swig/swig-3.0.12/swig-3.0.12.tar.gz?use_mirror=autoselect' LLVM_URL='https://github.com/llvm-mirror/llvm/archive/release_60.tar.gz' CLANG_URL='https://github.com/llvm-mirror/clang/archive/release_60.tar.gz' yum erase -y cmake cmake28 yum install -y python34-pip pcre-devel devtoolset-8-libatomic-devel.x86_64 pip3 install --no-cache-dir --only-binary :all: -U pip==19.1 pip3 install --no-cache-dir --only-binary :all: cmake==3.16.3 for ver in 35m 36m 37m 38 do python_ver=${ver:0:2} curl ${GET_PIP_URL} | /opt/python/cp${python_ver}-cp${ver}/bin/python - \ --no-cache-dir --only-binary :all: /opt/python/cp${python_ver}-cp${ver}/bin/pip install \ --no-cache-dir --only-binary :all: numpy==1.18.1 setuptools==46.1.3 done pushd /home >/dev/null echo "Install swig" curl -sSL ${SWIG_URL} | tar xz pushd swig-3.0.12 >/dev/null mkdir build pushd build >/dev/null ../configure make -j$(nproc) make install popd >/dev/null popd >/dev/null rm -rf swig-3.0.12 echo "Install llvm" curl -sSL ${LLVM_URL} | tar xz pushd llvm-release_60 >/dev/null mkdir build pushd build >/dev/null cmake .. -DCMAKE_PREFIX_PATH=/opt/python/cp36-cp36m/ \ -DCMAKE_BUILD_TYPE=Release make -j$(nproc) make install popd >/dev/null popd >/dev/null rm -rf llvm-release_60 echo "Install clang" curl -sSL ${CLANG_URL} | tar xz pushd clang-release_60 >/dev/null mkdir build pushd build >/dev/null cmake .. -DCMAKE_PREFIX_PATH=/opt/python/cp36-cp36m/ \ -DCMAKE_BUILD_TYPE=Release make -j$(nproc) make install popd >/dev/null popd >/dev/null rm -rf clang-release_60 popd >/dev/null pushd /tmp >/dev/null curl -sSL https://github.com/NixOS/patchelf/archive/0.10.tar.gz | tar xz pushd /tmp/patchelf-0.10 >/dev/null patch -p1 <<'EOF' diff --git a/src/patchelf.cc b/src/patchelf.cc index 0b4965a..7aae7a4 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -1074,13 +1074,6 @@ void ElfFile::modifySoname(sonameMode op, const std::string & return; } - /* Zero out the previous SONAME */ - unsigned int sonameSize = 0; - if (soname) { - sonameSize = strlen(soname); - memset(soname, 'X', sonameSize); - } - debug("new SONAME is '%s'\n", newSoname.c_str()); /* Grow the .dynstr section to make room for the new SONAME. */ @@ -1264,7 +1257,6 @@ void ElfFile::modifyRPath(RPathOp op, unsigned int rpathSize = 0; if (rpath) { rpathSize = strlen(rpath); - memset(rpath, 'X', rpathSize); } debug("new rpath is '%s'\n", newRPath.c_str()); EOF ./bootstrap.sh && ./configure && make install-strip popd rm -rf /tmp/patchelf-0.10 popd yum clean all