Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11326
| From | aixtools <aixtools@gmail.com> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: Bash 4.3.30 on AIX 6.1 filename completion |
| Date | 2015-08-12 12:42 +0200 |
| Message-ID | <mailman.8186.1439376159.904.bug-bash@gnu.org> (permalink) |
| References | <55BEBADE.8030108@goshawk.com> <55BF6F47.7090405@case.edu> <55CB220A.3060301@gmail.com> |
On 2015-08-12 12:38 PM, aixtools wrote: > On 2015-08-03 3:40 PM, Chet Ramey wrote: >> On 8/2/15 8:50 PM, Steve Dahl wrote: >>> If on AIX 6.1, I mount an NFS volume exported from CentOS 6.7, Bash >>> (4.3.30) is unable to do tab completion within that file system. If >>> (for >>> example) I search for files that I know exist, such as: >>> >>> ls -l /path/to/files/*.h >>> >>> ...no answers are returned even though >>> >>> ls -l /path/to/files >>> >>> ...will show those files. >>> >>> In the course of trying to understand why AIX didn't like our new NFS >>> server, I found that bash's glob.c depends on opendir(), and that in a >>> simple test on that NFS file system, opendir() fails with EOVERFLOW. >>> >>> The AIX man page for opendir() documents opendir64() but doesn't go >>> into a >>> lot of detail about what it's for other than the inferred hint that it >>> might allow for file sizes larger than 4 GB. >>> >>> The same simple test that gets EOVERFLOW when I use opendir() indeed >>> seems >>> to succeed when I use opendir64(). Once you know the answer, you can >>> find >>> hints on IBM forums that seem to confirm it. >>> >>> Is there already a version of "bash" somewhere that already supports >>> large >>> file systems on AIX if its compilation is configured right? >> Bash and Readline don't use opendir64/readdir64 directly. You might be >> able to get it to work by using cpp defines in lib/readline/complete.c >> >> Chet > Actually, I am working on a "scandir" program myself, where I am using > opendir(). The simpliest approach seems to be this at the start of the > code, i.e., before ANY include files are inserted. One of it's effects > is to make all opendir() calls automatically convert to opendir64() - > no code changes needed, and the code works on both AIX - and debian > (Linux on Power) that I have tested. > > /* > * define _LARGE_FILES needs to be first so that all the include files > know that > */ > #ifdef _AIX > #define _LARGE_FILES > #endif > > Hope this helps! p.s. - rather than actually add this to ALL source files, adding -D_LARGE_FILEs to CPP_FLAGS and/or to CFLAGS is probably the better approach.
Back to gnu.bash.bug | Previous | Next | Find similar
Re: Bash 4.3.30 on AIX 6.1 filename completion aixtools <aixtools@gmail.com> - 2015-08-12 12:42 +0200
csiph-web