package/canfestival: fix musl compilation
PATCH v2 1/1 package/canfestival: fix musl compilation
ANSI signal handlers take an int parameter, not sigval_t.
Upstream-status: pending
---
v1 -> v2 - added missing link to autobuild failure in commit comment
---
--- .../canfestival/0003-fix-musl-compilation.patch | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 package/canfestival/0003-fix-musl-compilation.patch
package/canfestival/0003-fix-musl-compilation.patch new file +22 -0
@@ -0,0 +1,22 @@ +# HG changeset patch +# User Brendan Heading <[email protected]> +# Date 1439845818 -3600 +# Mon Aug 17 22:10:18 2015 +0100 +# Node ID 7d62beec4f813074ba250231762f4b84395cc354 +# Parent 8bfe0ac00cdb4d473664fcbf1228a0f6a42eee15 +Fix MUSL compilation issue + +signal handler parameter fixed to be int instead of sigval_t. + +diff -r 8bfe0ac00cdb -r 7d62beec4f81 drivers/timers_unix/timers_unix.c +--- a/drivers/timers_unix/timers_unix.c Mon Aug 03 18:01:58 2015 +0200 ++++ b/drivers/timers_unix/timers_unix.c Mon Aug 17 22:10:18 2015 +0100 +@@ -33,7 +33,7 @@ + } + } + +-void timer_notify(sigval_t val) ++void timer_notify(int val) + { + if(gettimeofday(&last_sig,NULL)) { + perror("gettimeofday()");
Signature · 1 line
2.4.3
PATCH v2 1/1 package/canfestival: fix musl compilation
Quoted 4 lines · Brendan Heading
Fixes: http://autobuild.buildroot.net/results/75a/75aa6e7e4f3dcd74e4b
65496060328ec7bd0e747/ANSI signal handlers take an int parameter, not
sigval_t.
This is true for uClibc, but for other libc timer_notify is asigned to the sigev_notify_function function which has an union sigval as argument [1].
Snipped from the source code of timers_unix.c:
#if defined(__UCLIBC__) [..] signal(SIGALRM, timer_notify); #else [..] sigev.sigev_notify_function = timer_notify; [..]
#endif
}
[1] http://man7.org/linux/man-pages/man7/sigevent.7.html
Best regards
J?rg Krause
Quoted 1 line
PATCH v2 1/1 package/canfestival: fix musl compilation
Quoted 9 lines · J?rg Krause
Quoted 4 lines · Brendan Heading
Fixes: http://autobuild.buildroot.net/results/75a/75aa6e7e4f3dcd74e4b
65496060328ec7bd0e747/ANSI signal handlers take an int parameter, not
sigval_t.This is true for uClibc, but for other libc
timer_notifyis asigned to thesigev_notify_functionfunction which has anunion sigvalas argument [1].
Jorg,
Well spotted. I failed to check the non-uclibc case.
The code is a bit strange; I'm not sure why they've decided to do it differently in uclibc. I would have thought timer_create would behave in the same way.
Do you think it would suffice to add another #ifdef __UCLIBC__ on the signal handler, or should I dive a bit deeper ?
Brendan
PATCH v2 1/1 package/canfestival: fix musl compilation
In reply to Brendan HeadingHi Brendan,
Quoted 7 lines · Brendan Heading
ANSI signal handlers take an int parameter, not
sigval_t.Upstream-status: pending
---
This cuts off your sign-off below. Patch version info should go ...
Quoted 5 lines
v1 -> v2 - added missing link to autobuild failure in commit comment
---Signed-off-by Brendan Heading <[email protected]>---
... here.
Quoted 10 lines
.../canfestival/0003-fix-musl-compilation.patch | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 package/canfestival/0003-fix-musl-compilation.patchpackage/canfestival/0003-fix-musl-compilation.patch new file +0
-0
package/canfestival/0003-fix-musl-compilation.patch line 9
Quoted 9 lines
package/canfestival/0003-fix-musl-compilation.patch new file +9
-0@@ -0,0 +1,22 @@ +# HG changeset patch +# User Brendan Heading <[email protected]> +# Date 1439845818 -3600 +# Mon Aug 17 22:10:18 2015 +0100 +# Node ID 7d62beec4f813074ba250231762f4b84395cc354 +# Parent 8bfe0ac00cdb4d473664fcbf1228a0f6a42eee15 +Fix MUSL compilation issue + +signal handler parameter fixed to be int instead of sigval_t.
Missing sign-off.
package/canfestival/0003-fix-musl-compilation.patch line 22
Quoted 13 lines
package/canfestival/0003-fix-musl-compilation.patch new file +13
-0+ +diff -r 8bfe0ac00cdb -r 7d62beec4f81 drivers/timers_unix/timers_unix.c +--- a/drivers/timers_unix/timers_unix.c Mon Aug 03 18:01:58 2015 +0200 ++++ b/drivers/timers_unix/timers_unix.c Mon Aug 17 22:10:18 2015 +0100 +@@ -33,7 +33,7 @@ + } + } + +-void timer_notify(sigval_t val) ++void timer_notify(int val) + { + if(gettimeofday(&last_sig,NULL)) { + perror("gettimeofday()");
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -