Subject: Re: bug#62954: Valgrind blocks R on powerpc64le

From: Simon Tournier <[email-masked]>
Date: Thu, 20 Apr 2023 14:35:42 +0200

Hi,

On jeu., 20 avril 2023 at 13:50, Andreas Enge <[email-masked]> wrote:

> So subversion depends on valgrind! And all new simplex-texlive-packages
> are concerned.

Good catch! :-)

> I think the solution is to indeed remove valgrind from the native inputs
> of lz4.

Yeah, and I think it’s safe. :-)  Considering,

--8<---------------cut here---------------start------------->8---
starting phase `check'
CFLAGS="" LDFLAGS="" make -C tests test
--8<---------------cut here---------------end--------------->8---

and the ’test’ suite reads,

--8<---------------cut here---------------start------------->8---
$ grep '^test:' $(./pre-inst-env guix build lz4 -S)/tests/Makefile
test: test-lz4 test-lz4c test-frametest test-fullbench test-fuzzer test-install test-amalgamation listTest test-decompress-partial
--8<---------------cut here---------------end--------------->8---

Last, ’valgrind’ appears only in this rule:

--8<---------------cut here---------------start------------->8---
test-mem: lz4 datagen fuzzer frametest fullbench
	@echo "\n ---- valgrind tests : memory analyzer ----"
	valgrind --leak-check=yes --error-exitcode=1 $(DATAGEN) -g50M > $(VOID)
	$(DATAGEN) -g16KB > ftmdg16K
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) -9 -BD -f ftmdg16K $(VOID)
	$(DATAGEN) -g16KB -s2 > ftmdg16K2
	$(DATAGEN) -g16KB -s3 > ftmdg16K3
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) --force --multiple ftmdg16K ftmdg16K2 ftmdg16K3
	$(DATAGEN) -g7MB > ftmdg7M
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) -9 -B5D -f ftmdg7M ftmdg16K2
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) -t ftmdg16K2
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) -bi1 ftmdg7M
	valgrind --leak-check=yes --error-exitcode=1 ./fullbench -i1 ftmdg7M ftmdg16K2
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) -B4D -f -vq ftmdg7M $(VOID)
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) --list -m ftm*.lz4
	valgrind --leak-check=yes --error-exitcode=1 $(LZ4) --list -m -v ftm*.lz4
	$(RM) ftm*
	valgrind --leak-check=yes --error-exitcode=1 ./fuzzer -i64 -t1
	valgrind --leak-check=yes --error-exitcode=1 ./frametest -i256
--8<---------------cut here---------------end--------------->8---

so ’valgrind’ is never used by the current recipe.  Ahah! :-D

And it’s confirmed: lz4 builds fine on core-updates for x68_64.

Therefore, I think this change before the merge is worth:

--8<---------------cut here---------------start------------->8---
1 file changed, 1 insertion(+), 5 deletions(-)
gnu/packages/compression.scm | 6 +-----

modified   gnu/packages/compression.scm
@@ -840,11 +840,7 @@ (define-public lz4
     (build-system gnu-build-system)
     (outputs (list "out" "static"))
     (native-inputs
-     (append
-       (list python)    ;; For tests.
-       (if (member (%current-system) (package-supported-systems valgrind))
-         (list valgrind)
-         '())))
+     (list python))
     (arguments
      `(;; Not designed for parallel testing.
        ;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821
--8<---------------cut here---------------end--------------->8---

Cheers,
simon