busybox 1.6.1 miscutils/taskset problem with glibc, wrong number of params
Paul Barrette
r01325 at freescale.com
Wed Sep 12 14:21:09 UTC 2007
Glibc's sched_setaffinity only has two args
extern int sched_setaffinity (__pid_t __pid, __const cpu_set_t *__mask)
While uclibc has 3.
CC miscutils/taskset.o
miscutils/taskset.c: In function `taskset_main':
miscutils/taskset.c:78: warning: passing arg 2 of `sched_getaffinity'
makes pointer from integer without a cast
miscutils/taskset.c:78: error: too many arguments to function
`sched_getaffinity'
miscutils/taskset.c:86: warning: passing arg 2 of `sched_setaffinity'
makes pointer from integer without a cast
miscutils/taskset.c:86: error: too many arguments to function
`sched_setaffinity'
make[1]: *** [miscutils/taskset.o] Error 1
make: *** [miscutils] Error 2
Something like this should work, unless there is a more elegant way:
--- bk.taskset.c 2007-06-30 11:06:44.000000000 -0400
+++ taskset.c 2007-09-12 10:12:29.324150000 -0400
@@ -75,7 +75,13 @@
if (opt & OPT_p) {
print_aff:
+ /* Pb: glibc has 2 params for this func */
+#ifdef __GLIBC__
+#warning "GLIBC DEFINED"
+ if (sched_getaffinity(pid, &mask) < 0)
+#else
if (sched_getaffinity(pid, sizeof(mask), &mask) < 0)
+#endif
bb_perror_msg_and_die("failed to %cet pid %d's
affinity", 'g', pid);
printf("pid %d's %s affinity mask: "TASKSET_PRINTF_MASK"\n",
pid, state, from_cpuset(mask));
@@ -83,7 +89,12 @@
return EXIT_SUCCESS;
}
+ /* Pb: glibc has 2 params for this func */
+#ifdef __GLIBC__
+ if (sched_setaffinity(pid, &new_mask))
+#else
if (sched_setaffinity(pid, sizeof(new_mask), &new_mask))
+#endif
bb_perror_msg_and_die("failed to %cet pid %d's affinity",
's', pid);
if (opt & OPT_p) {
state += 8;
--
Paul Barrette
Freescale Semiconductor
paul.barrette at freescale.com
(613) 723-9161 x4034
More information about the busybox
mailing list