require 'package' class Valgrind < Package description 'Valgrind is an instrumentation framework for building dynamic analysis tools.' homepage 'http://valgrind.org/' version '3.13.0-2' source_url 'ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2' source_sha256 'd76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b' binary_url ({ aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/valgrind-3.13.0-2-chromeos-armv7l.tar.xz', armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/valgrind-3.13.0-2-chromeos-armv7l.tar.xz', i686: 'https://dl.bintray.com/chromebrew/chromebrew/valgrind-3.13.0-2-chromeos-i686.tar.xz', x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/valgrind-3.13.0-2-chromeos-x86_64.tar.xz', }) binary_sha256 ({ aarch64: '859913a6f0f4a629f464fb01912e0e99d59a2f4dd0ef19a0ebfd8874180de0b9', armv7l: '859913a6f0f4a629f464fb01912e0e99d59a2f4dd0ef19a0ebfd8874180de0b9', i686: 'b6b11f8f929583a90fb3ea4fe939c320b4b8c0570280b572228daad1a6638867', x86_64: 'ae45af143f6b45454da54d426246e11b2cb5add80d134d1e617d625b756c6e6c', }) depends_on 'patch' => :build def self.build system 'patch -p0 << EOF --- coregrind/m_redir.c +++ coregrind/m_redir.c @@ -1340,9 +1340,11 @@ add_hardwired_spec( "ld-linux.so.2", "index", (Addr)&VG_(x86_linux_REDIR_FOR_index), mandatory); +#if CI_HACK_strlen add_hardwired_spec( "ld-linux.so.2", "strlen", (Addr)&VG_(x86_linux_REDIR_FOR_strlen), mandatory); +#endif } # elif defined(VGP_amd64_linux) @@ -1367,6 +1369,7 @@ add_hardwired_spec( "ld-linux-x86-64.so.2", "index", (Addr)&VG_(amd64_linux_REDIR_FOR_index), NULL); +#if CI_HACK_strlen add_hardwired_spec( "ld-linux-x86-64.so.2", "strlen", (Addr)&VG_(amd64_linux_REDIR_FOR_strlen), @@ -1378,6 +1381,7 @@ complain_about_stripped_glibc_ldso # endif ); +#endif } # elif defined(VGP_ppc32_linux) @@ -1452,6 +1456,7 @@ distros, ld.so\'s soname is ld-linux.so.3, but Ubuntu 14.04 on Odroid uses ld-linux-armhf.so.3 for some reason. */ if (0==VG_(strcmp)("Memcheck", VG_(details).name)) { +#if CI_HACK_strlen /* strlen */ add_hardwired_spec( "ld-linux.so.3", "strlen", @@ -1485,6 +1490,7 @@ (Addr)&VG_(arm_linux_REDIR_FOR_strcmp), complain_about_stripped_glibc_ldso ); +#endif } # elif defined(VGP_arm64_linux) EOF' system "./configure --prefix=#{CREW_PREFIX} --libdir=#{CREW_LIB_PREFIX}" system 'make' end def self.install system "make", "DESTDIR=#{CREW_DEST_DIR}", "install" end end