[PATCH] D58801: [Support] Implement is_local_impl with AIX mntctl

Kamil Rytarowski via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 15 12:38:49 PDT 2019


krytarowski added inline comments.


================
Comment at: lib/Support/Unix/Path.inc:81
+#include <sys/statfs.h>
+typedef uint_t uint;
+#include <sys/vmount.h>
----------------
hubert.reinterpretcast wrote:
> apaprocki wrote:
> > hubert.reinterpretcast wrote:
> > > apaprocki wrote:
> > > > `sys/statfs.h` includes `sys/types.h`, which contains this `typedef`. Was there a reason why it was put here between the two headers?
> > > Yes, the header is defective. It needs a typedef that is only conditionally defined.
> > I guess I am not seeing that.. is it OS version dependent?
> > 
> > 
> > ```
> > $ cat test.c
> > #include <sys/statfs.h>
> > #include <sys/vmount.h>
> > $ xlc -E -c test.c | grep "typedef.*uint;"
> > typedef         uint_t          uint;
> > $
> > ```
> Try with `-D_XOPEN_SOURCE=700` or anything that suppresses `_ALL_SOURCE`:
> ```
> > xlclang -D_XOPEN_SOURCE=700 test.c -c
> In file included from test.c:2:
> /usr/include/sys/vmount.h:195:2: error: unknown type name 'uint'; did you mean 'int'?
>         uint    vmt_revision;   /* I revision level, currently 1        */
>         ^
> /usr/include/sys/vmount.h:196:2: error: unknown type name 'uint'; did you mean 'int'?
>         uint    vmt_length;     /* I total length of structure and data */
>         ^
> /usr/include/sys/vmount.h:203:2: error: unknown type name 'uint'; did you mean 'int'?
>         uint    vmt_time;       /* O time of mount                      */
>         ^
> /usr/include/sys/vmount.h:204:2: error: unknown type name 'uint'; did you mean 'int'?
>         uint    vmt_timepad;    /* O (in future, time is 2 longs)       */
>         ^
> 4 errors generated.
> Error while processing test.c.
> Return:  0x01:1
> ```
This typedef looks suspicious, there shall be a way to workaround it.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58801/new/

https://reviews.llvm.org/D58801





More information about the llvm-commits mailing list