aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2020-04-18 17:50:03 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2020-04-18 21:06:45 +0200
commitce1798e915181e6c1f3ba735b254b37b84261303 (patch)
tree9845368cd1194a4e3919d540e47a204fe5d4d291
parent14c59a147cae2db25d3b9bfa54892f34a60231e2 (diff)
downloadupstream-ce1798e915181e6c1f3ba735b254b37b84261303.tar.gz
upstream-ce1798e915181e6c1f3ba735b254b37b84261303.tar.bz2
upstream-ce1798e915181e6c1f3ba735b254b37b84261303.zip
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 <hauke@hauke-m.de>
-rw-r--r--package/network/utils/dante/Makefile2
-rw-r--r--package/network/utils/dante/patches/210-deactivate-sched_setscheduler.patch53
2 files changed, 54 insertions, 1 deletions
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 */
+ }