Re: Bug#956324: Clustalo bus error on mipsel (Was: Bug#956324: python-biopython: FTBFS on mipsel)
> One small issue... Valgrind recommends -O0 or -O1
TIL :) Thanks, Jeff!
> You can sometimes locate a bus error at build time with -Wcast-align.
> At runtime you can usually locate them with -fsanitize=undefined.
I had previously tried UBSan and, while it turned up a number of shifting and strict aliasing violations, it did not find anything that I believe could be the cause of the mipsel bus error.
> I can't track the trail any further. The source code is missing for
> pvm_pkdouble and pvm_upkdouble. I would be very suspect of
> pvm_pkdouble and pvm_upkdouble.
Unfortunately I think the reason you can’t find their source is that this code is unused. It is inside a ifdef SRE_ENABLE_PVM block and this macro is not defined during the build. You can confirm this by deleting these lines and recompiling.
AFAICT the code in src/squid is a library taken wholesale from somewhere else and then modified (see src/squid/clustalo.README). It contains a lot of code that goes unused in Clustal Omega.
Is the priority goal here to simply ship a non-crashing clustalo mipsel binary that BioPython can depend on? If so, maybe we can just disable compiler optimisation (-O0) and this may avoid provoking the bus error. Of course this doesn’t fix the underlying problem(s), but it looks as if debugging this to its root cause is going to result in the Debian package carrying a lot of invasive dquilt patches on top of upstream. OTOH I don’t know the performance requirements of BioPython and maybe an unoptimised clustalo is unacceptable to it.