From ce1798e915181e6c1f3ba735b254b37b84261303 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 18 Apr 2020 17:50:03 +0200 Subject: [PATCH] dante: Fix compile with glibc 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. This fixes the following compile error with glibc: ---------------------------------------------------------------------- /bin/ld: config_scan.o: in function `socks_yylex': dante-1.4.1/sockd/config_scan.l:461: undefined reference to `cpupolicy2numeric' collect2: error: ld returned 1 exit status make[5]: *** [Makefile:522: sockd] Error 1 Fixes: aaf46a8fe23e ("dante: disable sched_getscheduler() - not implemented in musl") Signed-off-by: Hauke Mehrtens --- package/network/utils/dante/Makefile | 2 +- .../210-deactivate-sched_setscheduler.patch | 53 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 package/network/utils/dante/patches/210-deactivate-sched_setscheduler.patch diff --git a/package/network/utils/dante/Makefile b/package/network/utils/dante/Makefile index 4f5d08724c..15bd6d2afc 100644 --- a/package/network/utils/dante/Makefile +++ b/package/network/utils/dante/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dante PKG_VERSION:=1.4.1 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.inet.no/dante/files/ diff --git a/package/network/utils/dante/patches/210-deactivate-sched_setscheduler.patch b/package/network/utils/dante/patches/210-deactivate-sched_setscheduler.patch new file mode 100644 index 0000000000..e711189c59 --- /dev/null +++ b/package/network/utils/dante/patches/210-deactivate-sched_setscheduler.patch @@ -0,0 +1,53 @@ +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 */ + }