weird bash autocomplete issue
Quoted 3 lines
I see the same issue on x86 32 bit, with the additional
__llseek()between thegetdents64(), and the last entry returned by readdir ignored.
confirmed - it`s readdir which assumes 32bit.
attached is a sample program which shows the issue on my system.
if compiled with -D_FILE_OFFSET_BITS=3D64", the problem goes away.
old posting from around 2001:
Quoted 5 lines
http://sourceware.org/ml/libc-alpha/2001-01/msg00216.html
This is why everybody will have to compile programs with _FILE_OFFSET_BITS=3D64. Did you ever notice that all GNU programs already do this?
as 32bit systems can use 64bit filesystems, i think btrfs is correct an= d bash is wrong,=20
as it isn`t LFS aware. i think all 32bit stuff should be LFS aware, now= adays.
to be exact, it`s not bash but readline library which comes with bash. bash configure script correctly checks for _FILE_OFFSET_BITS value, but=
readline configure script doesn`t.
this explains why i could not reproduce the issue when i build bash wit= hout readline support.
does it make sense to file a ticket at novell bugzilla ?
regards
roland
linux:/btrfs # ls -ltr
total 13
drwxrwxrwx 1 root root 0 Dec 16 22:44 test
drwxrwxrwx 1 root root 1056 Dec 17 01:10 linux-2.6.27.8-1
drwxr-xr-x 1 root root 0 Dec 17 22:53 abc
drwxr-xr-x 1 root root 0 Dec 19 00:48 bcd
-rw-r--r-- 1 root root 443 Dec 19 01:15 example.c
-rwxr-xr-x 1 root root 10962 Dec 19 01:15 a.out
linux:/btrfs # ./a.out
=2E
=2E.
linux-2.6.27.8-1
test
abc
bcdexample.c
readdir: Value too large for defined data type
regards
roland
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
int main( int argc, char *argv[] ) {
DIR *pDIR;
struct dirent *pDirEnt;
pDIR =3D opendir(".");
pDirEnt =3D readdir( pDIR );
while ( pDirEnt !=3D NULL ) {
printf( "%s\n", pDirEnt->d_name );
pDirEnt =3D readdir( pDIR );
if (errno) perror("readdir");
}
closedir( pDIR );}
____________________________________________________________________
Psssst! Schon vom neuen WEB.DE MultiMessenger geh=F6rt?=20 Der kann`s mit allen: http://www.produkte.web.de/messenger/?did=3D3123
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 18 lines · On Fri, Dec 19, 2008 at 01:59, <[email protected]> wrote:
Quoted 3 lines
I see the same issue on x86 32 bit, with the additional
__llseek()between thegetdents64(), and the last entry returned by readdir ignored.confirmed - it`s readdir which assumes 32bit.
attached is a sample program which shows the issue on my system.
if compiled with -D_FILE_OFFSET_BITS=64", the problem goes away.
old posting from around 2001:
Quoted 5 lines
http://sourceware.org/ml/libc-alpha/2001-01/msg00216.html
This is why everybody will have to compile programs with _FILE_OFFSET_BITS=64. Did you ever notice that all GNU programs already do this?
Quoted 8 lines
as 32bit systems can use 64bit filesystems, i think btrfs is correct and bash is wrong, as it isn`t LFS aware. i think all 32bit stuff should be LFS aware, nowadays.
to be exact, it`s not bash but readline library which comes with bash.
bash configure script correctly checks for_FILE_OFFSET_BITSvalue, but readline configure script doesn`t. this explains why i could not reproduce the issue when i build bash without readline support.does it make sense to file a ticket at novell bugzilla ?
Sure, would be good to have that fixed. Cc: [email protected] in the bug, and I will move it directly to the right guy. :)
Thanks,
Kay