all.err: $(ERR)
LC_ALL=C $(CC) $(LDFLAGS) -o main *.o 2>main.err || true
cat $(ERR) |\
+ grep -v 'In function .f.' |\
grep -v 'Each undeclared identifier is reported only once' |\
grep -v 'for each function it appears in' >$@ || true
-#if X_FMTMSG
+#ifdef X_FMTMSG
#include <fmtmsg.h>
#define C(n) switch(n){case n:;}
static void f()
C(MM_NOCON)
{int(*p)(long,const char*,int,const char*,const char*,const char*) = fmtmsg;}
}
+#else
+static void f(){}
#endif
-#if X_NDBM
+#ifdef X_NDBM
#include <ndbm.h>
#define T(t) (t*)0;
#define F(t,n) {t *y = &x.n;}
{DBM*(*p)(const char*,int,mode_t) = dbm_open;}
{int(*p)(DBM*,datum,datum,int) = dbm_store;}
}
+#else
+static void f(){}
#endif
{int(*p)(pthread_barrierattr_t*) = pthread_barrierattr_init;}
{int(*p)(pthread_barrierattr_t*,int) = pthread_barrierattr_setpshared;}
{int(*p)(pthread_t) = pthread_cancel;}
+#ifndef pthread_cleanup_pop
{void(*p)(int) = pthread_cleanup_pop;}
+#endif
+#ifndef pthread_cleanup_push
{void(*p)(void(*)(void*),void*) = pthread_cleanup_push;}
+#endif
{int(*p)(pthread_cond_t*) = pthread_cond_broadcast;}
{int(*p)(pthread_cond_t*) = pthread_cond_destroy;}
{int(*p)(pthread_cond_t*restrict,const pthread_condattr_t*restrict) = pthread_cond_init;}
N(size_t)
N(ssize_t)
N(time_t)
-N(timer_t)
+T(timer_t)
N(uid_t)
#ifdef _XOPEN_SOURCE
N(fsblkcnt_t)