semantic: 0.977 graphic: 0.976 instruction: 0.965 other: 0.961 device: 0.960 assembly: 0.958 vnc: 0.957 mistranslation: 0.954 socket: 0.935 network: 0.929 KVM: 0.925 boot: 0.919 file(1) fails with "Invalid argument" on qemu-sh4-user We recently discovered that file(1) fails on qemu-sh4-user when running on an ELF file: (sid_sh4)root@vs94:/# file /bin/bash /bin/bash: ERROR: ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV) error reading (Invalid argument) (sid_sh4)root@vs94:/# Running with "-d" yields more output: (sid_sh4)root@vs94:/# file -d /bin/bash 2>&1 | tail 322: >> 7 byte&,=97,"(ARM)"] 0 == 97 = 0 mget(type=1, flag=0, offset=7, o=0, nbytes=863324, il=0, nc=1) mget/96 @7: \000\000\000\000\000\000\000\000\000\002\000*\000\001\000\000\000\250\317A\0004\000\000\000L(\r\000\027\000\000\0004\000 \000\n\000(\000\032\000\031\000\006\000\000\0004\000\000\0004\000@\0004\000@\000@\001\000\000@\001\000\000\005\000\000\000\004\000\000\000\003\000\000\000t\001\000\000t\001@\000t\001@\000\023\000\000 323: >> 7 byte&,=-1,"(embedded)"] 0 == 18446744073709551615 = 0 [try softmagic 1] [try elf -1] /bin/bash: ERROR: ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV) error reading (Invalid argument) (sid_sh4)root@vs94:/# It seems that the comparison above has a bogus (overflown?) value. On actual hardware, it works: root@tirpitz:~> file /bin/bash /bin/bash: ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=4dd0e4281755827d8bb6686fd481f8c80ea73e9a, for GNU/Linux 3.2.0, stripped root@tirpitz:~> I have uploaded a chroot with Debian unstable which allows to reproduce the issue: > https://people.debian.org/~glaubitz/sid-sh4-sbuild.tar.gz The "0 == 18446744073709551615 = 0" is actually fine, it's just printing "-1" as a 64-bit unsigned integer. Could you please upload the fill output of `file -d /bin/bash 2>&1`? On 09/12/2017 11:18 PM, James Clarke wrote: > The "0 == 18446744073709551615 = 0" is actually fine, it's just printing > "-1" as a 64-bit unsigned integer. Yeah, I noticed that output was the same on amd64. > Could you please upload the fill > output of `file -d /bin/bash 2>&1`? > https://people.debian.org/~glaubitz/file-sh4-qemu.txt -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer -