On i386-darwin, some POSIX conformant versions of functions have a
[AROS.git] / arch / all-unix / filesys / emul_handler / unix_hints.h
blob16f7a21d24d02cb45e2b22dee732ce6257f5899a
1 /*
2 Copyright © 1995-2014, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 /*
7 * Some really black magic. Adjusts compilation for various UNIX weirdness.
8 * This stuff is placed in a separate file because it needs to be included
9 * before any UNIX headers.
12 #ifdef HOST_OS_ios
14 #ifdef __arm__
16 * Under ARM iOS quadwords are long-aligned, however in AROS (according to AAPCS)
17 * they are quad-aligned. This macro turns on some tricks which bypass this problem
19 #define HOST_LONG_ALIGNED
20 #endif
21 #ifdef __i386__
23 * Under i386 we pick up MacOS' libSystem.dylib instead of Simulator's libSystem.dylib,
24 * so we have to use special versions of certain functions. We can't simply #define _DARWIN_NO_64_BIT_INODE
25 * because iOS SDK forbids this (in iOS inode_t is always 64-bit wide)
27 #define INODE64_SUFFIX "$INODE64"
28 #endif
30 #else
33 * Use 32-bit inode_t on Darwin. Otherwise we are expected to use "stat$INODE64"
34 * instead of "stat" function which is available only on MacOS 10.6.
36 #define _DARWIN_NO_64_BIT_INODE
37 #endif
39 #ifdef HOST_OS_darwin
41 #ifdef __i386__
43 * Under i386 there are both POSIX-conformant and non-POSIX-conformant
44 * variants of certain functions, the former suffixed by $UNIX2003. Bugs
45 * occur if we use non-conformant versions of some functions (e.g. rewinddir()
46 * doesn't rewind), so we always use the conformant functions where there is a
47 * choice
49 #define UNIX2003_SUFFIX "$UNIX2003"
50 #endif
51 #endif
53 #ifndef INODE64_SUFFIX
54 #define INODE64_SUFFIX
55 #endif
57 #ifndef UNIX2003_SUFFIX
58 #define UNIX2003_SUFFIX
59 #endif