RE: mod_perl always segfault on thread creation

hack bear <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
What exactly is the right way to build a shared-lib perl. I tried to follow the INSTALL instruction and many variations to get it work but still to no avail. For example I tried

# make clean
# CFLAGS='-m64 -mtune=nocona' ./Configure -Dinstallusrbinperl -Dusethreads -Duseithreads -Duseshrplib -Dprefix=/usr -es -A ccflags="-fPIC -m64 -mtune=nocona " -A ldflags="-Duseshrplib" -A define:useshrplib -A define:usethreads -A define:useithreads -A define:installusrbinperl
# make

Only the libperl.a is built
# find . -name 'libperl*'
./libperl.a

And perl -V shows
  ...
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
    libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.12'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'

And BTW is there any existing RPM for RHEL that is dynamic build already?

> Date: Thu, 23 Aug 2012 09:17:48 +0300
> From: [email protected]
> To: [email protected]
> Subject: Re: mod_perl always segfault on thread creation
> 
> -=| hack bear, 22.08.2012 16:16:33 -0700 |=-
> > 
> > I'm doing a dynamic build (the default setting I believe.) here are the ldd results (that's how we can tell, right?)
> 
> To me this seems like a static build. Yes, it links dynamicly to 
> system libraries, but the perl library is staticly linked. Compare 
> with ldd output on a stock Debian system below:
> > 
> > # ldd /usr/bin/perl
> >     linux-vdso.so.1 =>  (0x00007ffff2dff000)
> >     libnsl.so.1 => /lib64/libnsl.so.1 (0x00000039c3c00000)
> >     libdl.so.2 => /lib64/libdl.so.2 (0x00000039bec00000)
> >     libm.so.6 => /lib64/libm.so.6 (0x00000039bfc00000)
> >     libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000039c1800000)
> >     libutil.so.1 => /lib64/libutil.so.1 (0x00000039c4000000)
> >     libpthread.so.0 => /lib64/libpthread.so.0 (0x00000039bf400000)
> >     libc.so.6 => /lib64/libc.so.6 (0x00000039bf000000)
> >     /lib64/ld-linux-x86-64.so.2 (0x00000039be800000)
> >     libfreebl3.so => /lib64/libfreebl3.so (0x00000039c2c00000)
> 
> $ ldd /usr/bin/perl                                                                                                                                             ~
>         linux-vdso.so.1 =>  (0x00007fff53dff000)
>         libperl.so.5.14 => /usr/lib/libperl.so.5.14 (0x00007f5e53c1f000)
>         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5e53a1b000)
>         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5e53798000)
>         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5e5357c000)
>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5e531f5000)
>         libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f5e52fbd000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007f5e53fca000)
> 
> > # ldd /etc/httpd/modules/mod_perl.so 
> >     linux-vdso.so.1 =>  (0x00007fff33fff000)
> >     libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbe6ec80000)
> >     libdl.so.2 => /lib64/libdl.so.2 (0x00007fbe6ea7c000)
> >     libm.so.6 => /lib64/libm.so.6 (0x00007fbe6e7f7000)
> >     libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbe6e5c0000)
> >     libutil.so.1 => /lib64/libutil.so.1 (0x00007fbe6e3bd000)
> >     libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbe6e19f000)
> >     libc.so.6 => /lib64/libc.so.6 (0x00007fbe6de0e000)
> >     /lib64/ld-linux-x86-64.so.2 (0x00000039be800000)
> >     libfreebl3.so => /lib64/libfreebl3.so (0x00007fbe6dbac000)
> 
> $ ldd /usr/lib/apache2/modules/mod_perl.so                                                                                                                      ~
>         linux-vdso.so.1 =>  (0x00007fffe6bff000)
>         libperl.so.5.14 => /usr/lib/libperl.so.5.14 (0x00007f3bfba7e000)
>         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3bfb87a000)
>         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3bfb5f7000)
>         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3bfb3db000)
>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3bfb054000)
>         libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f3bfae1c000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007f3bfc065000)
> 
> The difference is in the presence of libperl.so.5.14 in the output.
> 
> Good luck,
>     dam
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.