That getpagesize() problem again!
When trying to install only two packages via RPM in a chroot, this is what I get:
rpm: ../sysdeps/unix/sysv/linux/ia64/getpagesize.c:36: __getpagesize: Assertion `_dl_pagesize != 0'
failed.
Then, abort and core dump.
What I'd like to know is why, in the glibc file mentioned in the error, __getpagesize is defined as such:
int__getpagesize ()
{
assert (_dl_pagesize != 0);
return _dl_pagesize;
}
(that's glibc 2.2.1, but 2.2 exhibits the same behaviour)
This looks all the more strange that you can define the page size during kernel compile! A sample test program which I made using the getpagesize() syscall yields the correct value, though...
What should I do?
Signature · 4 lines
Francis Galiegue, [email protected] "Programming is a race between programmers, who try and make more and more idiot-proof software, and universe, which produces more and more remarkable idiots. Until now, universe leads the race" -- R. Cook
Francis Galiegue <[email protected]> writes:
|> When trying to install only two packages via RPM in a chroot, this is what I
|> get:
|>
|> rpm: ../sysdeps/unix/sysv/linux/ia64/getpagesize.c:36: __getpagesize: Assertion
|> `_dl_pagesize != 0'
|> failed.
|>
|> Then, abort and core dump.
|>
|> What I'd like to know is why, in the glibc file mentioned in the error,
|> __getpagesize is defined as such:
|>
|> int
|> __getpagesize ()
|> {
|> assert (_dl_pagesize != 0);
|> return _dl_pagesize;
|> }
|>
|> (that's glibc 2.2.1, but 2.2 exhibits the same behaviour)
|>
|> This looks all the more strange that you can define the page size during kernel
|> compile! A sample test program which I made using the getpagesize() syscall
|> yields the correct value, though...If the getpagesize syscall works, then your kernel is too old.
|> What should I do?
You need to run kernel 2.4.0-test9 with the 001030 patch or later. Earlier versions didn't pass AT_PAGESZ in all cases.
Andreas.
Signature · 4 lines
Andreas Schwab "And now for something SuSE Labs completely different." [email protected] SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Andreas" = Andreas Schwab <[email protected]> writes:
|> What should I do?
Andreas> You need to run kernel 2.4.0-test9 with the 001030 patch or Andreas> later. Earlier versions didn't pass AT_PAGESZ in all cases.
Actually the problem is that Francis' rpm binaries have been compiled and linked statically against an old version of glibc that didn't get the pagesize from AT_PAGESZ.
Francis you need to get a proper set of RPM binaries for your machines linked against the new library.
Jes
Quoted 6 lines · Jes Sorensen
|> What should I do?
Andreas> You need to run kernel 2.4.0-test9 with the 001030 patch or Andreas> later. Earlier versions didn't pass
AT_PAGESZin all cases.
Quoted 7 lines
Actually the problem is that Francis' rpm binaries have been compiled and linked statically against an old version of glibc that didn't get the pagesize from
AT_PAGESZ.Francis you need to get a proper set of RPM binaries for your machines linked against the new library.
Uhwell, I compiled against glibc 2.2.1...
Anyway, I'm going to reboot under 2.4.0 + patch and see if this cures the problem... More info later...
Signature · 4 lines
Francis Galiegue, [email protected] "Programming is a race between programmers, who try and make more and more idiot-proof software, and universe, which produces more and more remarkable idiots. Until now, universe leads the race" -- R. Cook