Re: Preloading modules and Perl 5.6.1 vs 5.8.0
e-mol Development Team wrote: After some thinking time I decided to compile perl 5.8.0 on the older system that did have 5.6.1. It would seem it has nothing to do with perl 5.8.0. I compiled perl 5.8.0 on the older system and preloading worked just like it should. Now I know that it does not have anything to do with perl or mod_perl but rather the newer gcc and glibc on the newer system. New system: gcc-3.2.2 glibc-2.3.2 Old system glibc-2.2.4 gcc-2.96 Has anyone else had problems with gcc-3.2.2 or glibc-2.3.2 and shared memory? Ask at the glibc list? or may be p5p, as there are quite a few knowledgeable folks over there... Next I am going to try perl 5.8.1 snapshot to see what happens. Probably nothing will change on the sharing front, but you will get a better perl ;) __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: Preloading modules and Perl 5.6.1 vs 5.8.0
After some thinking time I decided to compile perl 5.8.0 on the older system that did have 5.6.1. It would seem it has nothing to do with perl 5.8.0. I compiled perl 5.8.0 on the older system and preloading worked just like it should. Now I know that it does not have anything to do with perl or mod_perl but rather the newer gcc and glibc on the newer system. New system: gcc-3.2.2 glibc-2.3.2 Old system glibc-2.2.4 gcc-2.96 Has anyone else had problems with gcc-3.2.2 or glibc-2.3.2 and shared memory? Next I am going to try perl 5.8.1 snapshot to see what happens. Aaron Thul e-mol Development Team http://www.e-mol.com/?layout=emol103 [EMAIL PROTECTED] wrote: > >> I think next I may try and see if perl 5.6.1 can be build on the 5.8.0 system >> and see what this leads to. >> I wonder if it could be the newer gcc or glibc? > >This is quite possible, since the sharing mostly comes from your OS, not >specificly from Perl. > >You may also want to try the latest perl-5.8.1 snapshot, while you are at it, >as it'll be released rsn. > ___ Sent through e-mol. E-mail, Anywhere, Anytime. http://www.e-mol.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: Preloading modules and Perl 5.6.1 vs 5.8.0
I think next I may try and see if perl 5.6.1 can be build on the 5.8.0 system and see what this leads to. I wonder if it could be the newer gcc or glibc? This is quite possible, since the sharing mostly comes from your OS, not specificly from Perl. You may also want to try the latest perl-5.8.1 snapshot, while you are at it, as it'll be released rsn. __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: Preloading modules and Perl 5.6.1 vs 5.8.0
>e-mol Development Team wrote: >>>diff -u 5.6.1.txt 5.8.0.txt > >The two builds are quite different, I have pointed out below at least a few >major differences. > >> [EMAIL PROTECTED] src]# diff -u 5.6.1.txt 5.8.0.txt >> --- 5.6.1.txt 2003-09-03 14:07:02.0 -0400 >> +++ 5.8.0.txt 2003-09-03 14:04:21.0 -0400 >> @@ -1,40 +1,58 @@ >> -Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration: >> +Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration: >>Platform: >> -osname=linux, osvers=2.4.2-2,archname=i686-linux >> +osname=linux, osvers=2.4.20-2.48smp, archname=i386-linux-thread-multi > >> +uname='linux str' >> +config_args='-des -Doptimize=-O2 -march=i386 -mcpu=i686 -g >> -Dmyhostname=localhost [EMAIL PROTECTED] -Dcc=gcc -Dcf_by=Red Hat, >> Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux >> -Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 >> -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid >> -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm >> -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly >> -Dpager=/usr/bin/less -isr' > >I'm not quite following, why 5.6.1 was built with -Dusethreads -Duseithreads >but below it says: usethreads=undef use5005threads=undef useithreads=undef >usemultiplicity=undef When you run configure it makes config.sh that has many lines set to 'undef' I am not sure if this is at all related. > >> hint=recommended, useposix=true, d_sigactionÞfine >> -usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef >> -useperlio=undef d_sfio=undef uselargefilesÞfine usesocks=undef >> -use64bitint=undef use64bitall=undef uselongdouble=undef >> +usethreadsÞfine use5005threads=undef' useithreadsÞfine usemultiplicity> +useperlio= d_sfio=undef uselargefilesÞfine usesocks=undef >> +use64bitint=undef use64bitall=un uselongdouble> +usemymalloc=, bincompat5005=undef > >OK, so try building 5.8.0 with -Uusethreads (unless you are going to use ithreads) This is going to be the next thing I try. I am 99.9% sure we do not need ithreads. > >>Compiler: >> -cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include >> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITSd', >> -optimize='-O2', >> -cppflags='-fno-strict-aliasing -I/usr/local/include' >> -ccversion='', gccversion='egcs-2.91.66 19990314/Linux (egcs-1.1.2 >> release)', gccosandvers='' >> -intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder34 >> +cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS >> -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE >> -D_FILE_OFFSET_BITSd -I/usr/include/gdbm', > >Hmm, where did you get these perl from? did you build them yourself? Why >-DDEBUGGING is enabled? You certaintly don't want this to be enabled in >production. You have it in both perls. Both these perls where build from source downloaded from perl.org. I have no idea why -DDEBUGGING is enabled but I agree we do not need it. > >> +optimize='', >> +cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING >> -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm' >> +ccversion='', gccversion='3.2.2 20030213 (Red Hat Linux 8.0 3.2.2-1)', >> gccosandvers='' >> +gccversion='3.2.2 200302' >> +intsize=e, longsize= , ptrsize=p, doublesize=8, byteorder34 >> d_longlongÞfine, longlongsize=8, d_longdblÞfine, longdblsize >> -ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', >> lseeksize=8 >> -alignbytes=4, usemymalloc=n, prototypeÞfine >> +ivtype='long' >> +k', ivsize=4' >> +ivtype='long' >> +known_ext, nvtype='double' >> +o_nonbl', nvsize=, Off_t='', lseeksize=8 >> +alignbytes=4, prototypeÞfine >>Linker and Libraries: >> -ld='cc', ldflags =' -L/usr/local/lib' >> +ld='gcc' >> +l', ldflags =' -L/usr/local/lib' >> +ldf' >> libpth=/usr/local/lib /lib /usr/lib >> -libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil >> -perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil >> -libc=/lib/libc-2.1.3.so, so=so, useshrplibúlse, libperl=libperl.a >> +libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil >> +perllibs> +libc=/lib/libc-2.3.1.so, so=so, useshrplib=true, libperl=libper > >Your 5.6.1 is built as a static perl, whereas 5.8.0 as a dynamic. I build a static perl 5.8.0 last night, did not seem to change anything. > >> +gnulibc_version='2.3.1' >>Dynamic Linking: >> -dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' >> -cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' >> +dlsrc=dl_dlopen.xs, dlext=so', d_dlsymun=undef, ccdlflags='-rdynamic >> -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE' >> +cccdlflags='-fPIC' >> +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5', lddlflags
Re: Preloading modules and Perl 5.6.1 vs 5.8.0
[make sure to keep the replies on the list. Thank you!] e-mol Development Team wrote: diff -u 5.6.1.txt 5.8.0.txt The two builds are quite different, I have pointed out below at least a few major differences. [EMAIL PROTECTED] src]# diff -u 5.6.1.txt 5.8.0.txt --- 5.6.1.txt 2003-09-03 14:07:02.0 -0400 +++ 5.8.0.txt 2003-09-03 14:04:21.0 -0400 @@ -1,40 +1,58 @@ -Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration: +Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration: Platform: -osname=linux, osvers=2.4.2-2,archname=i686-linux +osname=linux, osvers=2.4.20-2.48smp, archname=i386-linux-thread-multi +uname='linux str' +config_args='-des -Doptimize=-O2 -march=i386 -mcpu=i686 -g -Dmyhostname=localhost [EMAIL PROTECTED] -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr' I'm not quite following, why 5.6.1 was built with -Dusethreads -Duseithreads but below it says: usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef hint=recommended, useposix=true, d_sigaction=define -usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef -useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef -use64bitint=undef use64bitall=undef uselongdouble=undef +usethreads=define use5005threads=undef' useithreads=define usemultiplicity= +useperlio= d_sfio=undef uselargefiles=define usesocks=undef +use64bitint=undef use64bitall=un uselongdouble= +usemymalloc=, bincompat5005=undef OK, so try building 5.8.0 with -Uusethreads (unless you are going to use ithreads) Compiler: -cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', -optimize='-O2', -cppflags='-fno-strict-aliasing -I/usr/local/include' -ccversion='', gccversion='egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)', gccosandvers='' -intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 +cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', Hmm, where did you get these perl from? did you build them yourself? Why -DDEBUGGING is enabled? You certaintly don't want this to be enabled in production. You have it in both perls. +optimize='', +cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm' +ccversion='', gccversion='3.2.2 20030213 (Red Hat Linux 8.0 3.2.2-1)', gccosandvers='' +gccversion='3.2.2 200302' +intsize=e, longsize= , ptrsize=p, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 -ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 -alignbytes=4, usemymalloc=n, prototype=define +ivtype='long' +k', ivsize=4' +ivtype='long' +known_ext, nvtype='double' +o_nonbl', nvsize=, Off_t='', lseeksize=8 +alignbytes=4, prototype=define Linker and Libraries: -ld='cc', ldflags =' -L/usr/local/lib' +ld='gcc' +l', ldflags =' -L/usr/local/lib' +ldf' libpth=/usr/local/lib /lib /usr/lib -libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil -perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil -libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a +libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil +perllibs= +libc=/lib/libc-2.3.1.so, so=so, useshrplib=true, libperl=libper Your 5.6.1 is built as a static perl, whereas 5.8.0 as a dynamic. +gnulibc_version='2.3.1' Dynamic Linking: -dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' -cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' +dlsrc=dl_dlopen.xs, dlext=so', d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE' +cccdlflags='-fPIC' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5', lddlflags='s Unicode/Normalize XS/A' __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: Preloading modules and Perl 5.6.1 vs 5.8.0
e-mol Development Team wrote: I have two servers running Apache 1.3.27 and mod_perl 1.27 both severs are running identical httpd.conf and startup.pl configurations. One is running Perl 5.8.0 the other is running 5.6.1. When I do the preloading of modules on the 5.6.1 system all seems well and shared memory goes up while unshared memory goes down. On the 5.8.0 only the unshared memory goes up, similar to if I did no preloading and just hit the pages that would cause the modules to get loaded. I am looking for ideas on why this may be. Does preloading not like new versions of perl? Am I being a bonehead? Thank you in advance for any assistance. Compare their build options? perl-5.6.1 -V > 5.6.1 perl-5.8.0 -V > 5.8.0 diff -u 5.6.1 5.8.0 __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html