[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

util-linux: chrt no longer being built on non-linux Debian archs



Hello Ruediger Meier.

Since util-linux 2.28(-rc*) the chrt utility seems to no longer build
for us on non-linux Debian architectures (eg. kfreebsd and hurd).
(This went undetected by other build problems up until yesterday when
Stephen CCed fixed those.)

I suspect the problem comes from your commit and was hoping you could help
me out:
https://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=ee20c303ac4

As far as I can tell kfreebsd seems to have sched_setscheduler but not
sched_setattr. Your new check seems to require both, but as far as I
could tell the reason this worked before on non-linux is that the
code in schedutils/chrt.c actually takes care of the case when
only sched_setscheduler exists (and not sched_setattr), eg:

#ifndef HAVE_SCHED_SETATTR
static int set_sched_one(struct chrt_ctl *ctl, pid_t pid)
{
        struct sched_param sp = { .sched_priority = ctl->priority };
        int policy = ctl->policy;

# ifdef SCHED_RESET_ON_FORK
        if (ctl->reset_on_fork)
                policy |= SCHED_RESET_ON_FORK;
# endif
        return sched_setscheduler(pid, policy, &sp);
}

#else /* !HAVE_SCHED_SETATTR */


Maybe the check in configure.ac should be limited to only sched_setscheduler?
What was the original purpose for checking for these functions to begin with?
It seems sched_setscheduler is POSIX and I assume should be available anywhere
you'd consider building util-linux?

Thanks in advance.

Regards,
Andreas Henriksson


Reply to: