Hi!
In 298d0e3129c0b5137f4989275b13fe30d0733c4d ("Consolidate Linux getdents{64}
implementation"), upstream made changes to the getdents{64} implementation
which breaks glibc on qemu-user.
The result of that is that applications like dash behave erratically, such that
for example pattern expansion no longer works. This means that "*" is not expanded
to filenames:
$ ls -l old/
total 148
-rw-r--r-- 1 glaubitz fbedv 16188 Jun 21 2003 chardraw.c
-rw-r--r-- 1 glaubitz fbedv 7922 Jun 21 2003 fillpoly.c
-rw-r--r-- 1 glaubitz fbedv 948 Jun 21 2003 readme
-rw-r--r-- 1 glaubitz fbedv 31860 Jun 21 2003 to_atari.c
-rw-r--r-- 1 glaubitz fbedv 13093 Jun 21 2003 to_eps.c
-rw-r--r-- 1 glaubitz fbedv 6631 Jun 21 2003 to_mf.c
-rw-r--r-- 1 glaubitz fbedv 3261 Jun 21 2003 to_pbm.c
-rw-r--r-- 1 glaubitz fbedv 12854 Jun 21 2003 to_pcx.c
-rw-r--r-- 1 glaubitz fbedv 10657 Jun 21 2003 to_pdf.c
-rw-r--r-- 1 glaubitz fbedv 6697 Jun 21 2003 to_pm.c
-rw-r--r-- 1 glaubitz fbedv 9463 Jun 21 2003 to_x11a.c
-rw-r--r-- 1 glaubitz fbedv 10405 Jun 21 2003 to_x11.c
$ ls -l old/*
/bin/ls: cannot access 'old/*': No such file or directory
$
dash is just one example. Other affected applications are cmake or qmake.
The attached prelimenary patch by James Clarke fixes the problem for me.
Thanks,
Adrian
Hello glibc maintainers, would you please consider including this patch to unbreak things (fix a regression) until the triangle between qemu, Linux and glibc has figured out how to best deal with it? Thanks, //mirabilos
Hi, The patch is basically replacing the getdents64 syscall by the getdents one. This means that applying this patch would make debian differ with regards to other distributions in the syscalls that are used for the same binaries. In turns it is likely going to affect binaries that are using seccomp and only allow the getdents64 and not the getdents one. I therefore don't think this is not reasonable to include such a fix on our glibc. It would fix the qemu-user case but likely break random binaries. Aurelien
Hi, ah, indeed. OK, thanks for the explanation. Let’s hope this can be fixed, somehow, in qemu itself and/or the kernel. bye, //mirabilos No, the only way I've seen them sold is for $40 with a free OpenBSD CD. -- Haroon Khalid and Steve Shockley in gmane.os.openbsd.misc