vi and glibc 2.12: Assertion `_rtld_global_ro._dl_pagesize != 0

Arkadiusz Miskiewicz arekm@maven.pl
Sat May 22 07:32:00 GMT 2010


On Friday 21 of May 2010, H.J. Lu wrote:
> On Fri, May 21, 2010 at 11:42 AM, Arkadiusz Miskiewicz <arekm@maven.pl> 
wrote:
> > On Thursday 13 of May 2010, Arkadiusz Miskiewicz wrote:
> >> With glibc 2.12 vi (from vim 7.2.422) started dying here with:
> >> 
> >> 188679 write(2, "vi: ../sysdeps/unix/sysv/linux/getpagesize.c:32:
> >> __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.\n",
> >> 118) = 118
> >> 
> >> Vim: Caught deadly signal ABRT
> >> 
> >> Has anyone seen this?
> > 
> > Simple reproducer for:
> > 
> > [arekm@carme-pld ~]$ ./a.out
> > a.out: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize:
> > Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
> > 
> > [arekm@carme-pld ~]$ cat a.c
> > #include <sys/types.h>
> > #include <pwd.h>
> > int main() {
> > 
> >        getpwnam("root");
> >        return 0;
> > }
> > 
> > [arekm@carme-pld ~]$ gcc a.c -static
> > /home/users/arekm/tmp/ccedPM2o.o: In function `main':
> > a.c:(.text+0xa): warning: Using 'getpwnam' in statically linked
> > applications requires at runtime the shared libraries from the glibc
> > version used for linking
> > [arekm@carme-pld ~]$ ./a.out
> > a.out: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize:
> > Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
> > zsh: abort      ./a.out
> > [arekm@carme-pld ~]$ gcc --version
> > gcc (PLD-Linux) 4.5.0 20100520 (release)
> > Copyright (C) 2010 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is
> > NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> > PURPOSE.
> 
> I have no problem with glibc 2.12 on Linux/ia32
> and Linux/Intel64. Can you try gcc 4.4.4 instead of
> gcc 4.5.0?

a.out built in 1) and 2) environments works in these but fails on my glibc 
2.12 env.

1)
gcc-4.4.3-5.x86_64
glibc-2.11.1-5.x86_64
binutils-2.20.51.0.7-1.x86_64

2)
gcc-3.3.6-9.amd64
glibc64-2.3.6-18.amd64
binutils-2.19.51.0.14-1.amd64

The only working solution was building on

gcc-3.3.6-9.i686
glibc-2.3.6-18.i686
binutils-2.19.51.0.14-1.i686

and running on glibc 2.12 i686.

-- 
Arkadiusz Miśkiewicz        PLD/Linux Team
arekm / maven.pl            http://ftp.pld-linux.org/



More information about the Libc-help mailing list