On Sun, 11 Aug 2013 01:03:39 +0200 Roland Mainz wrote:
> On Sat, Aug 10, 2013 at 11:41 PM, Roland Mainz <[email protected]> 
> wrote:
> > On Sat, Aug 10, 2013 at 7:18 PM, Glenn Fowler <[email protected]> wrote:
> [snip]
> >> I'd be willing to add a build triggerred regression report that
> >> lists missing/emulated functionality -- for starters it could be
> >> a small C program that #ifndef's critical macros and lists them at the end 
> >> of the build
> >
> > Grumpf... the issue is that over time such a report would get very
> > large and likely quickly ignored because it's not _fatal_ (first rule
> > of management with IT people: Noone reads reports unless the managers
> > do this with their staff at the meetings).
> >
> > The regression that O_PATH doesn't work crept in several alpha
> > releases ago and ruined a couple of other things quite badly because
> > they aren't tested properly anymore (while I thought they are tested
> > because the assert guards against such mistakes from h*ll).
> >
> >> #ifdef __linux__
> >> #if !O_SEARCH
> >>         printf("package: panic: *** O_SEARCH should be defined in 
> >> <ast_fcntl.h>\n");
> >> #endif
> >> #endif
> >
> > Well... we need to figure out the Linux version and make that an
> > #error for Linux >= 3.0.0 ... otherwise it's IMO a waste of good code
> > space... ;-(

> Here is a funny detail: If I compile ast-ksh.2013-08-07 with "clang" I get 
> this:
> -- snip --
> $ grep -E 'O_(SEARCH|PATH)'
> <arch/linux.i386-64/include/ast/ast_fcntl.h#ifdef O_PATH
> #define O_SEARCH                O_PATH
> #define O_SEARCH                010000000 /* O_PATH */
> -- snip --.
> This looks correct.

> If I compile with $ gcc -std=gnu1x ... # or $ gcc -std=gnu99 ... # it
> works, too. If I compile with $ gcc -std=gnu89 ... # it fails. It
> seems the ISO C language version plays a role... and that can not be
> set via cpp macros.

> Best xxx@@@!!!-idea for tonight: Force C99 mode on Linux with
> gcc>=3.x, e.g. if we use gcc >= 3.x on Linux and don't use ISO C >=
> C99 then bail out with #error since AFAIK the Linux includes barely
> work correctly for anything older than C99 ...

good analysis

I still don't understand the bailing
someone explicity asking for C foo should get it no?
this is unix after all

how about this
on the linux systems that provide O_PATH is its value always 010000000?

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

Reply via email to