On Sat, Aug 25, 2012 at 11:32 AM, Roland Mainz <roland.ma...@nrubsig.org> wrote: > Attached (as "astksh_fsat_emu_tacked_on001.diff.txt") is a _prototype_ > patch which tacks the |*at()|-API emulation on ast-ksh... > > Notes: > - This is a prototype > - The patch has a switch which selects either the platforms native > |*at()| API or the emulation > - The code has only been "tacked" on and is not properly integrated > (e.g. see lots of warnings about redefined cpp symbols) > - The patch passes the ksh93 test suite with and without |USE_NATIVE_AT_API| > set > - The |*at()|-emulation is not complete yet... missing functions are > |readlinkat()|, |sumlinkat()| and |utimensat()| ... I'll add them when > Glenn gives the OK for the general idea (see "goal" below) > - Final goal would be that src/cmd/ksh93 and src/lib/libcmd only use > the |*at()| API... either the native OS version or the emulation if > the underlying OS does not have the |*at()| APIs
Grumpf... I forgot some notes: 1. The code currently works only on 64bit machines since only there is |stat()| identical to |stat64()| 2. The code can be compiled in three ways: a) With /dev/fd usage (this should be the default... including a runtime test whether /dev/fd is there) $ (CC='gcc -D_map_libc=1 -D_GNU_SOURCE=1 -DASTOPENATEMU_USE_DEVFD=1 ' nice ksh ./bin/package make) # b) Without /dev/fd usage $ (CC='gcc -D_map_libc=1 -D_GNU_SOURCE=1 ' nice ksh ./bin/package make) # c) Using native |*at()| API $ (CC='gcc -D_map_libc=1 -D_GNU_SOURCE=1 -DUSE_NATIVE_AT_API=1' nice ksh ./bin/package make) # ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.ma...@nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;) _______________________________________________ ast-developers mailing list ast-developers@research.att.com https://mailman.research.att.com/mailman/listinfo/ast-developers