Package: lrzip
Version: 0.631-1
Severity: normal

Hi,
we have found an issue in Ubuntu but it applies to Debian as well, so I
wanted to fix it there.

Test:
$ rm file.lrz; dd if=/dev/zero of=file bs=1 count=64; lrzip -z file

Reason (quote from libzpaq header):
By default, LIBZPAQ uses JIT (just in time) acceleration. This only
works on x86-32 and x86-64 processors that support the SSE2 instruction
set. To disable JIT, compile with -DNOJIT. To enable run time checks,
compile with -DDEBUG. Both options will decrease speed.

Fix:
Disable the JIT at least for all non x86, better for all architectures.
Even guaranteeing SSE2 is not sure on some old machines or some virtual
machines.
Usually runtime detection is recommended to enable/disable such features as
available.

In the past in such discussions on other packages we used the lowest base.
The reason is that you can not guarantee that some old machine or virtual
machine has all the features.
Yet that discussion was on newer SSE levels.
Yet this case might be slightly different as [1] lists pentium 4 as the
minimum and that has SSE2
So if you want feel free to add a filter like that too it:
ifneq (,$(filter $(DEB_HOST_ARCH), x86_64))

I provide a debdiff which adds the needed CXXFLAGS in general and since I
noticed that your custom CFLAGS are missing for CPP as well added that too.

Debdiff suggestion attached.
That was tested in a ppa and is now working on ppc64el which was the
original spot to find the issue.

Related Ubuntu bug in [2]

[1]: https://www.debian.org/releases/stable/amd64/ch03s04.html.en
[2]: https://bugs.launchpad.net/ubuntu/+source/lrzip/+bug/1669069


Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd

Attachment: fix-lrzip-jit.debdiff
Description: Binary data

Reply via email to