[klibc] getpagesize / libsysfs broken with 0.148
Hannes Reinecke
hare at suse.de
Thu Jul 15 11:51:11 PDT 2004
Hi all,
the implementation of getpagesize() is broken in klibc.
klibc uses sysinfo.mem_unit, which linux interpretes as the memory unit
all other memory values returned are to be multiplied with.
So it's perfectly ok for the linux sysinfo() to return a mem_unit of
'1', which is does if the memory available for this machine fits into
the counter.
For the unbelievers, have a look in kernel/timer.c:sys_sysinfo().
As a quick hack I've added a check for mem_unit==1 and reset the
page_size to 4096 on those cases.
Naturally, this is not the right fix. The right fix would be to get the
values from the kernel headers and/or some magic juju for those machines
with variable pagesize.
It probably would not have been noticed, but as libsysfs insists on
doing all reads from sysfs attributes with a length of pagesize, the
failures were ... interesting.
So in short, udev does _not_ work with klibc until that (or an
equivalent) patch is applied.
Cheers,
Hannes
--
Dr. Hannes Reinecke hare at suse.de
SuSE Linux AG S390 & zSeries
Maxfeldstraße 5 +49 911 74053 688
90409 Nürnberg http://www.suse.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: klibc-0.148-getpagesize.patch
Type: text/x-patch
Size: 384 bytes
Desc: not available
Url : http://www.zytor.com/pipermail/klibc/attachments/20040715/fa176139/klibc-0.148-getpagesize-0001.bin
More information about the klibc
mailing list