thanks philippe
src/lib/libast/features/fcntl.c assumed that all system O_* values
were single bits -- not the case in linux and probably other systems
working on a fix today

On Fri, 19 Jul 2013 13:54:42 +0200 Philippe Bergheaud wrote:
> On the following platform:
> Linux version 2.6.32-5-686 (Debian 2.6.32-46)
> gcc version 4.3.5 (Debian 4.3.5-4)

> ksh93 compiles, but fails to initialize:
> $ strace ~/ast-base.2013-06-28/arch/linux.i386/bin/ksh
> [...]
> openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECT) = -1 EINVAL (Invalid 
> argument)
> write(2, "ksh: Can't obtain directory fd. "..., 51ksh: Can't obtain 
> directory fd. [Invalid argument]) = 51
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++
> Memory fault

> the cause for EINVAL is the flag displayed by strace as O_DIRECT
> it happens that O_DIRECT and O_SEARCH collide: both of them are 040000
> nullifying O_SEARCH with #define O_SEARCH 0 is a possible workaround
> (but probably not a fix)

> Philippe

> _______________________________________________
> ast-users mailing list
> [email protected]
> http://lists.research.att.com/mailman/listinfo/ast-users

_______________________________________________
ast-users mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-users

Reply via email to