From /usr/include/stdin.h on Linux: 144 /* Standard streams. */ 145 extern struct _IO_FILE *stdin; /* Standard input stream. */ 146 extern struct _IO_FILE *stdout; /* Standard output stream. */ 147 extern struct _IO_FILE *stderr; /* Standard error output stream. */ 148 /* C89/C99 say they're macros. Make them happy. */ 149 #define stdin stdin 150 #define stdout stdout 151 #define stderr stderr From /usr/include/stdin.h on Darwin: 165 __BEGIN_DECLS 166 #if __DARWIN_UNIX03 167 extern FILE *__stdinp; 168 extern FILE *__stdoutp; 169 extern FILE *__stderrp; 170 #else /* !__DARWIN_UNIX03 */ 171 extern FILE __sF[]; 172 #endif /* __DARWIN_UNIX03 */ 173 __END_DECLS ... 235 #if __DARWIN_UNIX03 236 #define stdin __stdinp 237 #define stdout __stdoutp 238 #define stderr __stderrp 239 #else /* !__DARWIN_UNIX03 */ 240 #define stdin (&__sF[0]) 241 #define stdout (&__sF[1]) 242 #define stderr (&__sF[2]) 243 #endif /* __DARWIN_UNIX03 */ Hypothesis: Could the '&' in lines 240-42 be the '&' about which 'make' is complaining when it hits src/embed/api.c?