On Fri, Sep 27, 2013 at 8:12 AM, Roland Mainz <[email protected]> wrote: > On Fri, Sep 27, 2013 at 7:53 AM, Roland Mainz <[email protected]> > wrote: >> On Fri, Sep 27, 2013 at 7:24 AM, Roland Mainz <[email protected]> >> wrote: >>> On Fri, Sep 27, 2013 at 6:48 AM, Roland Mainz <[email protected]> >>> wrote: >>>> On Fri, Sep 27, 2013 at 6:17 AM, Glenn Fowler <[email protected]> >>>> wrote: >>>>> On Fri, 27 Sep 2013 04:17:31 +0200 Roland Mainz wrote: >>>>>> On Fri, Sep 27, 2013 at 3:50 AM, Roland Mainz <[email protected]> >>>>>> wrote: >>>>>> > The following code from one of my test scripts no longer work in >>>>>> > ast-ksh.2013-09-26 on Solaris 11/AMD64/64bit: >>>>>> > -- snip -- >>>>>> > $ ksh -c 'redirect {n}<. ; redirect >>>>>> > {m}</dev/file/flags@xattr@/dev/fd/$n ' >>>>>> > /home/test001/bin/ksh: /dev/file/flags@xattr@/dev/fd/11: cannot open >>>>>> > [Invalid argument] >>>>>> > -- snip -- > [snip] >> So basically we're back the point where the whole code within |#if >> O_XATTR| doesn't work... and shouldn't be used because the >> implementations will perform horribly performance-wise. > > Erm... question: > What is wrong with the following patch to fix the original problem > that $ ksh -c 'redirect {n}<. ; redirect > {m}</dev/file/flags@xattr@/dev/fd/$n ; cd -f $m ; ls;true' # doesn't > work: > -- snip -- > diff -r -u original/src/lib/libast/path/pathopen.c > build_i386_64bit_debug/src/lib/libast/path/pathopen.c > --- src/lib/libast/path/pathopen.c 2013-08-29 07:17:52.000000000 +0200 > +++ src/lib/libast/path/pathopen.c 2013-09-27 08:03:03.149006810 +0200 > @@ -222,7 +222,7 @@ > > /* preserve open() semantics if possible */ > > - if (oflags & (O_DIRECTORY|O_SEARCH)) > + if (oflags & (O_DIRECTORY|O_SEARCH|O_XATTR)) > return openat(dev.fd, ".", > oflags|O_INTERCEPT, mode); > #if O_XATTR > if ((f = openat(dev.fd, ".", > O_INTERCEPT|O_RDONLY|O_XATTR)) >= 0) > -- snip -- > > Looking at the output of "truss" it seems to do exactly what's > requested at shell code level...
BTW: Attached (as "builtin_cd.sh.gz") is the test module I'm using to verify the cd -@ functionality... ... note that I'm going to split the XATTR /dev/flags@ and getconf(1) parts into a new test module because they are far beyond the scope of the plain cd(1) tests... ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) [email protected] \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;)
builtin_cd.sh.gz
Description: GNU Zip compressed data
_______________________________________________ ast-developers mailing list [email protected] http://lists.research.att.com/mailman/listinfo/ast-developers
