They __THROW and __nonnull are defined in „getopt_cdefs.h“. The gcc command is gcc -c -MMD -MF deps/fstatat.d -MP -g3 -O2 -I. -I../src -I. -I./../src fstatat.c The output from -E > Am 08.04.2017 um 10:24 schrieb Paul Eggert : > > [Following up on http://bugs.gnu.org/26398 and CC'ing bug-gnulib and Zack Weinberg.] > >> In file included from ./unistd.h:135: >> In file included from ./getopt_pfx_core.h:52: >> ./getopt_core.h:91:79: error: expected ';' after top level declarator >> extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > > Can you please send the preprocessor output for the failed compilation? > That is, try running "make V=1". If the failed command looks like this: > > clang -c -Dthis -Dthat -Dtheother fstatat.c > > then run this command: > > clang -E -Dthis -Dthat -Dtheother fstatat.c >fstatat.i > > and send a copy of fstatat.i as an attachment. > > Also, can you find out which .h file defined __THROW and __nonnull in your environment? I have the sneaking suspicion that it's some .h file other than getopt_cdefs.h. > > Thanks.