When compiled with glibc the config_scan.c wants to use the cpupolicy2numeric() function which is only available when HAVE_SCHED_SETSCHEDULER is set. It looks like the wrong define was used here. This fixes a build problem with glibc in combination with the force ac_cv_func_sched_setscheduler=no in the OpenWrt CONFIGURE_VARS. --- a/lib/config_scan.c +++ b/lib/config_scan.c @@ -3891,7 +3891,7 @@ YY_RULE_SETUP SERRX(0); #else /* !SOCKS_CLIENT */ -#if HAVE_SCHED_SETAFFINITY +#if HAVE_SCHED_SETSCHEDULER BEGIN(0); @@ -3899,9 +3899,9 @@ YY_RULE_SETUP yyerrorx("unknown scheduling policy \"%s\"", yytext); return SCHEDULEPOLICY; -#else /* !HAVE_SCHED_SETAFFINITY */ +#else /* !HAVE_SCHED_SETSCHEDULER */ yyerrorx("setting cpu scheduling policy is not supported on this platform"); -#endif /* !HAVE_SCHED_SETAFFINITY */ +#endif /* !HAVE_SCHED_SETSCHEDULER */ #endif /* SOCKS_CLIENT */ } --- a/lib/config_scan.l +++ b/lib/config_scan.l @@ -456,7 +456,7 @@ cpu { SERRX(0); #else /* !SOCKS_CLIENT */ -#if HAVE_SCHED_SETAFFINITY +#if HAVE_SCHED_SETSCHEDULER BEGIN(0); @@ -464,9 +464,9 @@ cpu { yyerrorx("unknown scheduling policy \"%s\"", yytext); return SCHEDULEPOLICY; -#else /* !HAVE_SCHED_SETAFFINITY */ +#else /* !HAVE_SCHED_SETSCHEDULER */ yyerrorx("setting cpu scheduling policy is not supported on this platform"); -#endif /* !HAVE_SCHED_SETAFFINITY */ +#endif /* !HAVE_SCHED_SETSCHEDULER */ #endif /* SOCKS_CLIENT */ }