--- Begin Message ---
Source: libsoxr
Version: 0.1.3-1
Severity: normal
Tags: upstream
User: debian-sparc@lists.debian.org
Usertags: sparc64
Hi!
The testsuite of libsoxr crashes on sparc64 with "Bus Error" which indicates
an unaligned access in the C code:
8/10 Test #8: 28-bit-perfect-65537-44100 .......***Failed 0.23 sec
Start 9: 1-delay-clear
9/10 Test #9: 1-delay-clear ....................Bus error***Exception: 0.05 sec
Start 10: lsr-bindings
Building the code in debug mode with "./go debug" and running the test manually
in gdb, gives:
glaubitz@kyoto:~/soxr-code$ gdb ./debug/tests/1-delay-clear
GNU gdb (Debian 8.3.1-1) 8.3.1
(...)
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./debug/tests/1-delay-clear...
(gdb) r
Starting program: /home/glaubitz/soxr-code/debug/tests/1-delay-clear
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/sparc64-linux-gnu/libthread_db.so.1".
9599 4410 0
0 729 3681
Program received signal SIGBUS, Bus error.
0xffff80010012c7d4 in soxr_output_no_callback (p=0x10000104280, out=0x7feffff4f3c, len=100) at /home/glaubitz/soxr-code/src/soxr.c:689
689 done = soxr_output_1ch(p, u, ((soxr_bufs_t)out)[u], len, separated);
(gdb) bt
#0 0xffff80010012c7d4 in soxr_output_no_callback (p=0x10000104280, out=0x7feffff4f3c, len=100) at /home/glaubitz/soxr-code/src/soxr.c:689
#1 0xffff80010012ca48 in soxr_output (p=0x10000104280, out=0x7feffff4f3c, len0=100) at /home/glaubitz/soxr-code/src/soxr.c:710
#2 0xffff80010012cfc4 in soxr_process (p=0x10000104280, in=0x0, ilen0=0, idone0=0x0, out=0x7feffff4f3c, olen=100, odone0=0x7fefffff0a8) at /home/glaubitz/soxr-code/src/soxr.c:800
#3 0x000001000000120c in main (argc=1, arg=0x7fefffff4b8) at /home/glaubitz/soxr-code/tests/1-delay-clear.c:48
(gdb)
And, indeed, the function soxr_output_no_callback() in src/soxr.c contains
two cases of really poor pointer gymnastics which provoke an unaligned
access which results in poor performance on most architectures or even
crashes like on sparc64.
The problematic part of the code is most likely the "(soxr_bufs_t)out)[u]" part
in line 689 as well as the (soxr_bufs_t)out)[i] in line 683. I have not fully
understood the code yet to come up with a patch, but in most cases a memcpy()
will help to transfer the bytes in question. But maybe someone has a better
suggestion while I try to whip up a patch.
Thanks,
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
--- End Message ---
--- Begin Message ---
Source: libsoxr
Source-Version: 0.1.3-2
We believe that the bug you reported is fixed in the latest version of
libsoxr, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 942746@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Mattia Rizzolo <mattia@debian.org> (supplier of updated libsoxr package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Mon, 21 Oct 2019 14:54:34 +0200
Source: libsoxr
Architecture: source
Version: 0.1.3-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Changed-By: Mattia Rizzolo <mattia@debian.org>
Closes: 942746
Changes:
libsoxr (0.1.3-2) unstable; urgency=medium
.
* Team upload.
.
[ Ondřej Nový ]
* Bump Standards-Version to 4.4.1.
.
[ Mattia Rizzolo ]
* Add patch to fix FTBFS in sparc64. Closes: #942746
* Set Rules-Requires-Root:no.
* Add Build-Depends-Package to the .symbols files.
Checksums-Sha1:
fb9771dc507f8ca84da042f787044b240ead0cc9 2146 libsoxr_0.1.3-2.dsc
215c6342b8cc1cc50df82d25beecfe141d12ceaa 5052 libsoxr_0.1.3-2.debian.tar.xz
de27396ca6b0bd9645d1324c581cc94a6997ff91 7356 libsoxr_0.1.3-2_amd64.buildinfo
Checksums-Sha256:
7bd819e513a9eee4850888d48e394e147efd353d66d401ec2926cd0a4f14dafa 2146 libsoxr_0.1.3-2.dsc
7e93658ba81518446694d30d18563a9186fcbcf63f0c851c9604e44f7d0f382b 5052 libsoxr_0.1.3-2.debian.tar.xz
17ad7364ac244c9044432511185cddac34ddf02b295d7b621a4f9beb244b7e7f 7356 libsoxr_0.1.3-2_amd64.buildinfo
Files:
98eff095ac403fac65802b2156e3120c 2146 libs optional libsoxr_0.1.3-2.dsc
ebb530641f4dab260288194deb18475c 5052 libs optional libsoxr_0.1.3-2.debian.tar.xz
322b87f4301a3abcdd701aed1c6cd524 7356 libs optional libsoxr_0.1.3-2_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEi3hoeGwz5cZMTQpICBa54Yx2K60FAl2trO4ACgkQCBa54Yx2
K60C6g//dPTotTVRUH4rLQGg4BEjXaA2JKte9Wm1W7aQxJq/mpVWOMD9UsSaCCOo
KxHE/1ZOUyMgeAK3leOEdps+hU+z29HK8XT6HKR1d7FwpAKQIcxPkhQzP4VHHRMi
E8sX38RtsXEBQdv2VzElc77NZizrE4XqNYDttiOI6Y9CNvKZXxtW90Aw0/GOun1d
5o6sAxct2uPqoi5V0w+PyXhKrtA1XqV0s6bejK+kTOcK2BsRYNxdopcj7qqu5vHm
x4DUbOESPca37yelcyf7tu8949JNhF2xkAvnXN29FtIdnm83dyMSThVJB7HxeRFb
25OraWWVXjEhdlqFdnLMAJKpcRBRiiIN5TXsSxt6XmICSu31HO66sBq4ozoWUPAH
V7oyq2RvRQBde0azmGF4EDJNOr5gw5tOotwzWwMhsl4S/Tilf3+KxVPHtbw3CjA8
rQIoiZJfdLtC8qsEa89i+TGmdnDtxViKR3EBM+3Bj4BOYnULSFb03glWldSpwz/X
t0rqFjCDmRkieiZa+XOakbopAi+vy54DpRE/+c1tyfutLAAtEWJ+FVXFLNBUTuom
I8td2IdNQXwj3Ti8+apYciqkHPF/xIod5zXj059D4XMbTy5le13iWhqGNufJI/i2
SWqJzljgJtlzO4MOLy5g1gjCTk+eINIUVv15JCEi2uiWVtzNu4s=
=jFdS
-----END PGP SIGNATURE-----
--- End Message ---