[uClibc 0002064]: Library assumes presence of several syscalls
bugs at busybox.net
bugs at busybox.net
Thu Mar 13 12:14:01 UTC 2008
A NOTE has been added to this issue.
======================================================================
http://busybox.net/bugs/view.php?id=2064
======================================================================
Reported By: michael_d
Assigned To: uClibc
======================================================================
Project: uClibc
Issue ID: 2064
Category: Other
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
======================================================================
Date Submitted: 02-07-2008 19:30 PST
Last Modified: 03-13-2008 05:14 PDT
======================================================================
Summary: Library assumes presence of several syscalls
Description:
When compiled against unmodified Linux-2.0.40 headers, uClibc fails to
compile because it assumes several 2.2+ syscalls are present.
The syscalls in question are __NR_lchown, __NR_prctl, __NR_sendfile,
__NR_setresuid, __NR_setresgid, __NR_sched_getaffinity, and
__NR_sched_setaffinity.
(I'm aware there's already a patch in buildroot for the last two.)
It looks like there was an attempt to conditionally include setresuid()
and setresgid(). But it doesn't work, as compilation fails with
"'__EI_setresuid' aliased to undefined symbol '__GI_setresuid'".
I've worked around the problem by modifying <asm/unistd.h> before building
uClibc. For all syscalls except lchown(), letting them fail with ENOSYS
produces results no more broken than glibc on the same kernel. lchown()
wasn't a problem for me, as I've privately backported syscall 182 to my
kernel.
Note that problem http://busybox.net/bugs/view.php?id=1874 also needs to be
fixed before compilation on Linux
2.0.40 can complete.
======================================================================
----------------------------------------------------------------------
vapier - 02-15-08 15:35
----------------------------------------------------------------------
ive updated the FAQ to cover our policy for things older than linux-2.4 is:
we dont care
that is to say, we arent going to fix it ourselves. if you can post a
nice patch that works for you, we'll look at merging it.
----------------------------------------------------------------------
michael_d - 03-13-08 05:14
----------------------------------------------------------------------
I've uploaded a patch to make most of the syscalls conditional.
Left out are lchown(), which I've addressed locally at the kernel side,
and sched_*(), which are already handled in a buildroot patch.
Note that this patch isn't enough to make a threaded build on a
setresuid()-less platform -- there are functions in libpthread that use
setresuid() and setresgid() unconditionally.
Issue History
Date Modified Username Field Change
======================================================================
02-07-08 19:30 michael_d New Issue
02-07-08 19:30 michael_d Status new => assigned
02-07-08 19:30 michael_d Assigned To => uClibc
02-15-08 15:35 vapier Note Added: 0004914
03-13-08 05:09 michael_d File Added: uClibc-0.9.29-condcalls.diff
03-13-08 05:14 michael_d Note Added: 0005694
======================================================================
More information about the uClibc-cvs
mailing list