[zfs-discuss] Exec format error on arm, unsupported interworking call (Thumb -> ARM)

Cliff L. Biffle cbiffle at gmail.com
Wed Apr 11 12:24:55 EDT 2018


It looks like you're running an all-Thumb-2 kernel (which is good!) but
your kernel module got linked against some ARM code (i.e. the older 32-bit
instruction format). Thumb-2 kernels don't support interworking (calling
ARM from Thumb or vice versa) because they just have all code in Thumb 2
and it simplifies things.

If your new build doesn't work, I can make some suggestions on how to
determine what ARM code you're picking up using objdump.

On Wed, Apr 11, 2018 at 8:52 AM, Goswin von Brederlow via zfs-discuss <
zfs-discuss at list.zfsonlinux.org> wrote:

> On Tue, 10 Apr 2018 12:04:54, Stefan Ring wrote:
> >On Tue, Apr 10, 2018 at 10:20 AM, Goswin von Brederlow via zfs-discuss <
> zfs-discuss at list.zfsonlinux.org> wrote:
> >> [11390.901971] zlua: section 3 reloc 43 sym 'longjmp': unsupported
> >> interworking call (Thumb -> ARM)
> >Do you know if the kernel is built with Thumb? Is ZFS?
> >From the message it looks like the Lua is built with Thumb. On Ubuntu
> this is the default, IIRC. Don't know about Debian. Try to build Lua with
> -marm.
>
> Looks like the kernel has thumb support:
>
> mrvn at helios4:~$ grep -i thumb /boot/config-4.14.18-mvebu
> CONFIG_CPU_THUMB_CAPABLE=y
> CONFIG_ARM_THUMB=y
> CONFIG_ARM_THUMBEE=y
> CONFIG_THUMB2_KERNEL=y
> CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y
> CONFIG_XZ_DEC_ARMTHUMB=y
>
> Is that second last option related to the problem?
>
>
> I have no idea if ZFS was build with or without thumb. Whatever the
> default is when just running configure. I would hope that if there is a
> dependency on the kernel having thumb or not that ./configure would check
> that. I started fresh with a checkout of zfs-0.7.8 and got this:
>
> mrvn at helios4:/usr/src/zfs$ ./configure
> checking for gawk... gawk
> checking metadata... META file
> checking build system type... armv7l-unknown-linux-gnueabihf
> checking host system type... armv7l-unknown-linux-gnueabihf
> checking target system type... armv7l-unknown-linux-gnueabihf
> ...
>
> mrvn at helios4:/usr/src/zfs$ grep thumb config.log
> Configured with: ../src/configure -v --with-pkgversion='Debian
> 6.3.0-18+deb9u1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs
> --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
> --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared
> --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext
> --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/
> --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
> --with-default-libstdcxx-abi=new --enable-gnu-unique-object
> --disable-libitm --disable-libquadmath --enable-plugin --enable-default-pie
> --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
> --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre
> --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf
> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf
> --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
> --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch
> --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16
> --with-float=hard --with-mode=thumb --enable-checking=release
> --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf
> --target=arm-linux-gnueabihf
>
> So thumb mode is enabled now. It's compiling now so whish me luck.
>
> MfG
>     Goswin
>
> _______________________________________________
> zfs-discuss mailing list
> zfs-discuss at list.zfsonlinux.org
> http://list.zfsonlinux.org/cgi-bin/mailman/listinfo/zfs-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.zfsonlinux.org/pipermail/zfs-discuss/attachments/20180411/5318a946/attachment.html>


More information about the zfs-discuss mailing list