Hi Matthew, On Wed, Apr 29, 2020 at 07:14:30AM -0700, Matthew Fernandez wrote: > > To add another data point to this discussion, one other (fruitless) thing I > tried previously was cross-compiling Clustal Omega. From an amd64 host, it’s > possible to target mipsel using the GCC cross-compilers in the standard > Debian repositories. You can then run the resulting binary using Qemu’s user > mode. Using this technique, the f002 test runs to completion with no bus > error. This is not really surprising as AFAIK unaligned accesses that would > trigger a bus error on mipsel hardware would be silently allowed in this > configuration (Qemu doesn’t faithfully emulate this hardware behaviour and > amd64 allows unaligned access). > > Unfortunately the repositories’ cross-compilers have been built without ASan > enabled and you can’t attach to an emulated mipsel process with a native > Valgrind. So debugging memory safety issues is not straightforward. To go > further with this approach, you would have to build a mipsel-targeting > cross-compiler with ASan enabled or cross-compile Valgrind to mipsel. For a > true masochist, it may be possible to attach to the process with GDB or rr > and reverse-step from the location Andreas has quoted, but I wouldn’t trust > the debugger not to crash in this configuration. Even then the issue may not > be reproducible because it may be dependent on transformations/optimizations > only performed by the particular version of the native mipsel compiler called > during packaging.
Thanks a lot for your effort. > For those on this thread who have access to mipsel hardware or can shell in > to one of the mipsel build machines, I would suggest running an > ASan-instrumented test there (`export CFLAGS="-g -fsanitize=address"; export > CXXFLAGS="-g -fsanitize=address"`) and see what we learn. I tried on real hardware. Unfortunately I'm running into configure:3720: $? = 0 configure:3709: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/mipsel-linux-gnu/9/lto-wrapper Target: mipsel-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 9.3.0-10' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=mipsel-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libsanitizer --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-multiarch --disable-werror --enable-multilib --with-arch-32=mips32r2 --with-fp-32=xx --with-madd4=no --with-lxc1-sxc1=no --enable-targets=all --with-arch-64=mips64r2 --enable-checking=release --build=mipsel-linux-gnu --host=mipsel-linux-gnu --target=mipsel-linux-gnu Thread model: posix gcc version 9.3.0 (Debian 9.3.0-10) configure:3720: $? = 0 configure:3709: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files compilation terminated. configure:3720: $? = 1 configure:3709: gcc -qversion >&5 gcc: error: unrecognized command line option '-qversion'; did you mean '--version'? gcc: fatal error: no input files compilation terminated. configure:3720: $? = 1 configure:3740: checking whether the C compiler works configure:3762: gcc -g -O2 -fdebug-prefix-map=/home/tille/clustalo=. -fstack-protector-strong -Wformat -Werror=format-security -fsanitize=address -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now conftest.c >&5 /usr/bin/ld: cannot find libasan_preinit.o: No such file or directory /usr/bin/ld: cannot find -lasan collect2: error: ld returned 1 exit status configure:3766: $? = 1 configure:3804: result: no configure: failed program was: I have no idea why libasan_preinit.o and libasan.a are not installed. The package libgcc-9-dev is installed for sure and on amd64 both files are included here. It seems the sudo command on eller does not permit me executing `apt-file update` in a chroot so I have no idea where these files are on mipsel (if they exist at all). Any more help from debian-mipsel is really appreciated. Kind regards Andreas. -- http://fam-tille.de