Well that's handy then :) Tim.
On Mon, Feb 25, 2002 at 04:43:24PM -0500, [EMAIL PROTECTED] wrote: > That *is* the current version. > > -----Original Message----- > From: Tim Bunce [mailto:[EMAIL PROTECTED]] > Sent: Monday, February 25, 2002 4:04 PM > To: Tim Bunce > Cc: Jay Strauss; Singh, Kiranjit; [EMAIL PROTECTED] > Subject: Re: Installing DBI on HP-UX > > On Mon, Feb 25, 2002 at 05:49:57PM +0000, Tim Bunce wrote: > > On Mon, Feb 25, 2002 at 08:46:48AM -0600, Jay Strauss wrote: > > > Yes, yes > > > > > > Download and install DBI, DBD-Oracle (from perl.com) and request the > latest > > > version of the README.hpux > > > > But that's not really the latest as there's not been a DBD::Oracle release > > for a while. > > > > So also check the dbi-user archives etc. > > > http://www.google.com/search?as_q=+README-hpux&num=50&btnG=Google+Search&as_ > epq=DBD+Oracle+&as_oq=&as_eq=&lr=lang_en&as_ft=i&as_filetype=&as_qdr=all&as_ > occt=any&as_dt=i&as_sitesearch=&safe=off > > In fact, here's the (probably) lastest one. > > Tim. > > > =head1 INTRODUCTION > > Building a working dynamically linked version of the Oracle DBD driver > on HPUX (11.00) has been a challenge for many. For months after taking a > new job, where HPUX was the standard server environment, I had only been > able to build a statically linked version of perl and the DBD-Oracle > module on HPUX 11.00. > > Then Roger Foskett posted instructions for what turned out to be dynamic > build. Rogers's post got me farther than I had previously gotten. In fact, > > after resolving some undefined symbol errors, I succeeded where for I had > previously despaired of finding the time to hack out the right > incantation. > > This F<README.hpux> describes the combined knowledge of a number of > folks who invested many hours discovering a working set of build options. > The instructions in this file, which include building perl from > sources, will produce a working dynamically linked DBD-Oracle that can > be used with mod_perl and Apache. > > Both Roger Foskett and I have been using the HP softbench c compiler > normally installed in: > > /opt/softbench/bin/cc. > > F<Makefile.PL> has been modified to check for some of the > conditions which, when met, we know will produce a working build. > However, there are many variations of Oracle installations and > features. Not all of these can be tested by any one of us, > if you discover a way to make a variation which did not previous > work, please submit patches to Makefile.PL to Tim Bunce, and > patches to this README to Tim Bunce or me. > > The instructions herein, have compiled, linked cleanly, and tested > cleanly using the HP softbench compiler, and Oracle 8.0.5 (32bit), and > Oracle 8.1.6, 8.1.7 (64 bit). Oracle 8.1.5 will probably work as well. > > See appendices for my exact build configuration. > > =head1 First things First > > The reason you are even reading this file is because you want to connect > to an Oracle database from your perl program. So before you start, install > the Oracle client software (SQL*Net, Pro*C, SQL*Plus) upon the machine you > intend to install Perl/DBI/DBD-Oracle. You DO NOT, I repeat, DO NOT need > to install the Oracle database server on this machine. > > After you have installed the client software, TEST it: make sure you can > connect to the target database using sqlplus (or any other Oracle supplied > tool). The (gory) details of the install are beyond the scope of this > document, some information can be found in the section "Compiling on > a Client Machine" later in this document, or see your Oracle DBA. > > =head1 Build perl > > =head2 HP's default perl (probably no good) > > By default, HPUX 11.00 delivers perl 5.00503. This version of perl will > probably not work. If you are reading this, you have probably > discovered that something did not work. To get good version of the > DBD-Oracle driver, we have to start with a perl that as been built with > the correct compiler flags and shared libraries. > > =head2 Build and Install the right Perl > > Generally, in order to get a version of the DBD-Oracle driver that > works on HPUX you need to build your own version of perl from > sources. > > These instructions have been used to building a dynamically linked > working DBD-Oracle driver that works with mod_perl and Apache. These > instructions are based on perl 5.6.0 and 5.6.1. To this author's knowledge, > they have not be tested on earlier versions of perl. > > It is important to build a B<non>-threaded perl, but linked with > -lcl and -lpthread. Since Oracle on HP uses libpthread, everything that > dynamically loads it (such as DBD-Oracle) must be built/linked > with '-lpthread -lcl'. (When used with Apache, it and any associated > modules these must also be built this way - otherwise all it does is core > dump when loading DBD::Oracle). > > A good link that explains thread local storage problems is > http://my1.itrc.hp.com/cm/QuestionAnswer/1,1150,0x0d0a6d96588ad4118fef009027 > 9cd0f9!0,00.html > > > =head2 Configure > > Once you have downloaded and unpacked the perl sources > (version 5.6.0 assumed here), you must configure Perl. For those of you new > to > building Perl from source, the Configure program will ask you a series of > questions > about how to build Perl. You may supply default answers to the questions > when you > invoke the Configure program by command line flags. > > We want to build a Perl that understands large files (over 2GB), > and that is incompatible with v5.005 perl scripts (compiling with v5.005 > compatibility causes mod_perl to complain about malloc pollution). At the > command prompt type: > > cd Perl-5.6.0/ > ./Configure -Ubincompat5005 -Duselargefiles > > As described in section "Building the right Perl", there are some > modifications you must make during the Configure process > When asked the question: > > What libraries to use? - Answer by prepending (i.e. at the beginning): > -lcl -lpthread > > For example: > What libraries to use? [-lnsl -lnm -lndbm -lmalloc -ldld -lm -lc -lndir > -lcrypt -lsec] -lcl -lpthread -lnsl -lnm -lndbm -lmalloc -ldld -lm -lc > -lndir -lcrypt -lsec > > When asked: > > Any additional cc flags? - Answer by prepending: +z > > For example: > Any additional cc flags? [-D_HPUX_SOURCE -Aa] +z -D_HPUX_SOURCE -Aa > > Lastly, and this is optional, when asked: > > Do you want to install perl as /usr/bin/perl? [y] n > > You may or may not want to install directly in /usr/bin/perl, many > persons > on HP install Perl in /opt/perl<version>/bin/perl and put a symbolic > link to /usr/bin/perl. > Furthermore, you can supply the answer to this question by adding an > additional > switch to the invokation of Configure such as: Configure > -Dprefix=/opt/perl > > After you have answered the above questions, accept the default values for > all > of the remaining questions. You may press <Enter> for each remaining > question, or you may enter "& -d" (good idea) at the next question and > the Configure will go into auto-pilot and use the Perl supplied defaults. > > BTW: If you add -lcl and -lpthread to the end of the list it will not > work. I wasted a day and a half trying to figure out why I had lost the > recipe, before I realized that this was the problem. The symptom will > be that > > make test > > of perl itself will fail to load dynamic libraries. > > You can check in the generated 'config.sh' that the options you selected > are correct. If not, modify config.sh and then re-run ./Configure with > the '-d' option to process the config.sh file. > > =item Build & Install > > > make > make test > make install > > If you are going to build mod_perl and Apache it as beed suggested > that you modify Config.pm to the change the HPUX ldflags & ccdlflags in > F</your/install/prefix/lib/5.6.0/PA-RISC2.0/Config.pm> as follows: > > ccdlflags='' > cccdlflags='+z' > ldflags=' -L/usr/local/lib' > > This is not necessary if you are not using mod_perl and Apache. > > =head1 Build and Install DBI > > > cd DBI-1.18/ > perl Makefile.PL > make > make test > make install > > =head1 Build and Install DBD-Oracle-1.07 and later > > It is critical to setup your Oracle environmental variables. Many people > do this incorrectly and spend days trying to get a working version of > DBD-Oracle. Below are examples of a local database and a remote database > (i.e. the database is on a different machine than your Perl/DBI/DBD > installation) environmental variable setup. > > Example (local database): > > export ORACLE_USERID=<validuser/validpasswd> > export ORACLE_HOME=<path to oracle> > export ORACLE_SID=<a valid instance> > export ORACLE_USERID=<validuser/validpasswd> > export SHLIB_PATH=$ORACLE_HOME/lib > > Example (remote database): > > export ORACLE_USERID=<validuser/validpasswd> > export ORACLE_HOME=<path to oracle> > export ORACLE_SID=<a valid instance>@<valid tnsnames.ora entry> > export ORACLE_USERID=<validuser/validpasswd> > export SHLIB_PATH=$ORACLE_HOME/lib > > The standard mantra now works out of the box on HPUX: > > cd DBD-1.07/ #or more recent version > perl Makefile.PL > make > make test > make install # if all went smoothly > > If you have trouble, go though the instructions below, for hints > of what might be wrong... and send me a note, describing your > configuration, and what you did to fix it. > > =head1 Trouble Shooting > > > =head2 "Unresolved symbol" > > > In general, find the symbols, edit the Makefile, and make test. > > You'll have to modify the recipe accordingly, in my case the symbol > "LhtStrCreate" was unresolved. > > 1) Find the symbols. > > a) The following ksh/bash code (courtesy of Roger) will search > from $ORACLE_HOME and below for Symbols in files in lib directories. > Save the following to a file called "findSymbol". > > >>>> CUT HERE <<<<< > cd $ORACLE_HOME > > echo "\nThis takes a while, grepping a lot of stuff" > echo " ignore the \"no symbols\" warnings\n" > > sym=$1; shift; > libs="*.sl" > > for lib in $(find . -name $libs -print); do > if nm -p $lib | grep -q $sym; then > echo "found \"$sym\" in $lib" > fi > done > >>>>> CUT HERE <<<< > > b) Run it (replace "LhtStrCreate" with your "Unresolved symbol"). For > example, at my installation, findSymbols produced the following > output: > > # chmod 755 findSymbols > # ./findSymbol LhtStrCreate > > found "LhtStrCreate" in ./lib/libagtsh.sl > found "LhtStrCreate" in ./lib/libclntsh.sl > found "LhtStrCreate" in ./lib/libwtc8.sl > > 2) Edit the Makefile > > > In the previous step your unresolved symbol was found in one or more > library files. You will need to edit the OTHERLDFLAGS makefile macro, > and add the missing libraries. > > When you add those library files to OTHERLDFLAGS you must convert the > name from the actual name to the notation that OTHERLDFLAGS uses. > > libclntsh.sl becomes => -lclntsh > libagtsh.sl becomes => -lagtsh > libwtc8.sl becomes => -lwtc8 > > That is, you replace the "lib" in the name to "-l" and remove the ".sl" > > You can edit the Makefile in 2 ways: > > a) Do this: > > cat Makefile | sed 's/\(OTHERLDFLAGS.*$\)/\1 -lclntsh/' > Makefile.tmp > mv Makefile.tmp Makefile > > b) Using vi, emacs... edit the file, find OTHERLDFLAGS, and add the > above "-l" entries to the end of the line. > > For example the line: > OTHERLDFLAGS = -L/opt/oracle/product/8.1.6/lib/... -lqsmashr > > Becomes: > OTHERLDFLAGS = -L/opt/oracle/product/8.1.6/lib/... -lqsmashr -lclntsh > > 3) make test > > Perform a make test, if symbols are still unresolved repeat the editing of > the Makefile and make test again. > > =head1 DBD-Oracle-1.06 > > You are strongly urged to upgrade. However here is what you may > need to know to get it or work, if you insist on using an earlier > version. > > Check the output that above command produces, to verify that > > -Wl,+n > -W1,+s > > is b<NOT> present. and that > > -lqsmashr > > B<is> present. > > If the version of Makefile.PL does not include the patch produced at the > time > of this README.hpux, then the above conditions will likely not be met. > You can fix this as follows: > > cat Makefile | sed 's/-Wl,+[sn]//' > Makefile.tmp > mv Makefile.tmp Makefile > > > =head1 Building on a Oracle Client Machine > > If you need to build or deliver the DBD-Oracle interface on or to > a machine on which Oracle has not been installed you need take into > consideration the following: > > =over > > =item 1) Oracle files are needed for DBD::Oracle to compile > > =item 2) Oracle files are needed for the compiled DBD to connect > > =item 3) ORACLE_HOME environment variable must be set > > =item 4) SHLIB_PATH environment variable must be set > > =back > > =head2 Compiling on a Client Machine > > > This may seem obvious to some, but the Oracle software has to be > present to compile and run DBD-Oracle. The best way to compile and > install on a client machine, is to use the to use the oracle installer > to install the oracle (client) software locally. Install SQL*Net, Pro*C > and SQL*Plus. After this some tests with SQL*Net (tnsping at a minimum) > are an good idea. Make sure you can connect to your remote database, > and everything works with Oracle before you start bashing your head into > the wall trying to get DBD-Oracle to work. > > If you do not have the Oracle installer handy, the follow hack has been > know to work: > > Either open an NFS share from the oracle installation directory on the > machine that has Oracle and point both of the above-mentioned env vars to > that share, or alternatively copy the following four directories from your > Oracle installation over to the machine on which you are compiling the DBD: > > drwxr-xr-x 3 oracle dba 3072 Jul 3 09:36 lib > drwxr-xr-x 13 oracle dba 512 Jul 3 09:38 network > drwxr-xr-x 7 oracle dba 512 Jul 2 19:25 plsql > drwxr-xr-x 12 oracle dba 512 Jul 3 09:38 rdbms > > then point the above-mentioned env vars to the containing directory (good > place to put them, if copying locally, is /usr/lib/oracle) > > In any case, the compiler needs to be able to find files in the above four > directories from Oracle in order to get all the source code needed to > compile properly. > > =head2 Required Runtime environment > > Again, use the Oracle installer to install the Oracle Client on the machine > where your scripts will be running. If the Oracle installer is not > available, > the following hack should suffice: > > For running the compiled DBD in perl and connecting, you need only the > files in the 'lib' folder mentioned above, either connecting to them through > an NFS share on the Oracle machine, or having copied them directly onto the > local machine, say, in /usr/lib/oracle . Make sure the env variable for > ORACLE_HOME = /usr/lib/oracle and LD_LIBRARY_PATH includes /usr/lib/oracle . > You can set the env var in your perl script by typing > > $ENV{'ORACLE_HOME'} = '/usr/lib/oracle'; > =head1 Apache and mod_perl > > If you are not building this version of perl for Apache you can go on > to build what ever other modules you require. The following instructions > describe how these modules were built with the perl/DBD-Oracle built above: > The following is what worked for Roger Foskett: > > > =head1 Apache Web server > > cd apache_1.3.14/ > LDFLAGS_SHLIB_EXPORT="" \ > LDFLAGS="-lm -lpthread -lcl" \ > CC=/usr/bin/cc \ > CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \ > ./configure \ > --prefix=/opt/www/apache \ > --enable-shared=max \ > --disable-rule=EXPAT \ > --enable-module=info \ > --enable-rule=SHARED_CORE > > The Expat XML parser is disabled as it conflicts with the Perl > XML-Parser module causing core dumps. -lcl is needed to ensure that Apache > does > not coredump complaining about thread local storage > > make > make install > > Once installed, ensure that the generated httpd.conf is properly > configured, change the relvant lines to below (the default user/group > caused problems on HP (the user 'www' may need to be created) > > User www > Group other > port 80 > > =head2 mod_perl > > cd mod_perl-1.24_01/ > perl Makefile.PL \ > NO_HTTPD=1 \ > USE_APXS=1 \ > WITH_APXS=/opt/www/apache/bin/apxs \ > EVERYTHING=1 > make > make install > > =head2 htdig intranet search engine > > cd htdig-3.1.5/ > CC='cc' CPP='aCC' \ > ./configure \ > --prefix=/opt/www/htdig \ > --with-cgi-bin-dir=/opt/www/htdig/cgi-bin \ > --with-image-dir=/opt/www/htdig/images > > =head1 CONTRIBUTORS > > The following folks contributed to this README: > > Lincoln A. Baxter <[EMAIL PROTECTED] or [EMAIL PROTECTED]> > Jay Strauss <[EMAIL PROTECTED]> > Roger Foskett <[EMAIL PROTECTED]> > Weiguo Sun <[EMAIL PROTECTED]> > Tony Foiani <[EMAIL PROTECTED]> > Hugh J. Hitchcock <[EMAIL PROTECTED]> > Heiko Herms <[EMAIL PROTECTED]> > > And probably others unknown to me. > > =head1 AUTHOR > > Lincoln A. Baxter > IT Solutions Delivery, Fleet Credit Card Services > [EMAIL PROTECTED] or [EMAIL PROTECTED] > Office: 215.444.7973 > > =head1 Appendix A (Miscellaneous links which might be usefull) > > Thanks to Tony Foiani for these references: > > =head2 http://marc.theaimsgroup.com/?l=perl-dbi&m=96040350416305&w=2 > > This link discusses older version of the DBI/DBD interface, so most of > the code examples are probably no longer relevant. This was written > by Jeff Okamoto at HP (the author of the README.hpux in the perl > sources). And has some useful insights. > > =head2 http://www.sas.com/service/techsup/unotes/SN/001/001875.html > > This is a not from from the SAS support people documenting the > LhtStrInsert() > and LhtStrCreate() undefined symbols errors, and how to fix them in the > Oracle makefiles. > > =head2 http://www.mail-archive.com/dbi-users%40isc.org/msg13967.html > > My employers web sniffer does not allow me browser this link (www.mail) in > the > URL. So I have no idea how helpful this might be. It might even be a link > to my own posts. > > =head1 Appendix B (Perl Configuration Dumps) > > The following to sections provide full dumps of perl -V for three > versions of perl that were successfully built and linked on > HPUX 11.00. > > =head2 Lincoln Baxter's DBD-Oracle-1.07 Configuration > > Platform: > osname=hpux, osvers=11.00, archname=PA-RISC2.0 > uname='hp-ux dhdb108 b.11.00 u 9000800 612309363 unlimited-user > license ' > config_args='' > hint=previous, 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 > Compiler: > cc='cc', ccflags ='-D_HPUX_SOURCE -Aa -I/usr/local/include > -DDEBUGGING -z', > optimize='-O', > cppflags='-D_HPUX_SOURCE -Aa -I/usr/local/include -DDEBUGGING -z' > ccversion='', gccversion='', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 > d_longlong=undef, longlongsize=, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=4 > alignbytes=8, usemymalloc=y, prototype=define > Linker and Libraries: > ld='ld', ldflags =' -Wl,+vnocompatwarnings -L/usr/local/lib' > libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib > libs=-lcl -lpthread -lnsl -lnm -lndbm -ldld -lm -lc -lndir -lcrypt > -lsec > perllibs=-lcl -lpthread -lnsl -lnm -ldld -lm -lc -lndir -lcrypt -lsec > libc=, so=sl, useshrplib=false, libperl=libperl.a > Dynamic Linking: > dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E > -Wl,-B,deferred ' > cccdlflags='+z', lddlflags='-b +vnocompatwarnings -L/usr/local/lib' > > Characteristics of this binary (from libperl): > Compile-time options: DEBUGGING USE_LARGE_FILES > Built under hpux > Compiled at Jul 15 2001 16:01:33 > @INC: > /home/baxtlinc/perl/lib > /opt/perl/5.6.1-fccs-01/lib/5.6.1/PA-RISC2.0 > /opt/perl/5.6.1-fccs-01/lib/5.6.1 > /opt/perl/5.6.1-fccs-01/lib/site_perl/5.6.1/PA-RISC2.0 > /opt/perl/5.6.1-fccs-01/lib/site_perl/5.6.1 > /opt/perl/5.6.1-fccs-01/lib/site_perl > > > =head2 Lincoln Baxter's DBD-Oracle-1.06 Configuration > > Platform: > osname=hpux, osvers=11.00, archname=PA-RISC2.0 > uname='hp-ux dhdb108 b.11.00 u 9000800 612309363 unlimited-user > license ' > config_args='-Dprefix=/temp_data/baxtlinc/perl -Ubincompat5005' > hint=previous, useposix=true, d_sigaction=define > usethreads=undef use5005threads=undef useithreads=undef > usemultiplicity=undef > useperlio=undef d_sfio=undef uselargefiles=define > use64bitint=undef use64bitall=undef uselongdouble=undef > usesocks=undef > Compiler: > cc='cc', optimize='-O', gccversion= > cppflags='-D_HPUX_SOURCE -I/usr/local/include +z -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -Ae' > ccflags ='-D_HPUX_SOURCE -I/usr/local/include +z -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -Ae' > stdchar='unsigned char', d_stdstdio=define, usevfork=false > intsize=4, longsize=4, ptrsize=4, doublesize=8 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=8, usemymalloc=y, prototype=define > Linker and Libraries: > ld='ld', ldflags =' -Wl,+vnocompatwarnings' > libpth=/lib /usr/lib /usr/ccs/lib > libs=-lnsl -lnm -lndbm -ldld -lm -lc -lndir -lcrypt -lsec -lcl > -lpthread > libc=, so=sl, useshrplib=true, libperl=libperl.sl > Dynamic Linking: > dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E > -Wl,-B,deferred ' > cccdlflags='+z', lddlflags='-b +vnocompatwarnings' > > Characteristics of this binary (from libperl): > Compile-time options: USE_LARGE_FILES > Built under hpux > Compiled at Jan 9 2001 17:36:00 > @INC: > /temp_data/baxtlinc/perl/lib/5.6.0/PA-RISC2.0 > /temp_data/baxtlinc/perl/lib/5.6.0 > /temp_data/baxtlinc/perl/lib/site_perl/5.6.0/PA-RISC2.0 > /temp_data/baxtlinc/perl/lib/site_perl/5.6.0 > /temp_data/baxtlinc/perl/lib/site_perl > . > > > =head2 Roger Foskett's Configuration (works with Apache and mod_perl) > > Platform: > osname=hpux, osvers=11.00, archname=PA-RISC2.0 > uname='hp-ux titan b.11.00 u 9000800 103901567 unlimited-user license > ' > config_args='-Ubincompat5005' > hint=recommended, useposix=true, d_sigaction=define > usethreads=undef use5005threads=undef useithreads=undef > usemultiplicity=undef > useperlio=undef d_sfio=undef uselargefiles=define > use64bitint=undef use64bitall=undef uselongdouble=undef > usesocks=undef > Compiler: > cc='cc', optimize='-O', gccversion= > cppflags='-D_HPUX_SOURCE -Aa -I/usr/local/include' > ccflags =' +z -D_HPUX_SOURCE -I/usr/local/include -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -Ae ' > stdchar='unsigned char', d_stdstdio=define, usevfork=false > intsize=4, longsize=4, ptrsize=4, doublesize=8 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=8, usemymalloc=y, prototype=define > Linker and Libraries: > ld='ld', ldflags =' -L/usr/local/lib' > libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib > libs=-lnsl -lnm -lndbm -lgdbm -ldld -lm -lc -lndir -lcrypt -lsec -lcl > -lpthread > libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a > Dynamic Linking: > dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags=' ' > cccdlflags='+z', lddlflags=' -b +vnocompatwarnings -L/usr/local/lib' > > Characteristics of this binary (from libperl): > Compile-time options: USE_LARGE_FILES > Built under hpux > Compiled at Dec 19 2000 19:17:00 > @INC: > /opt/www/perl5/lib/5.6.0/PA-RISC2.0 > /opt/www/perl5/lib/5.6.0 > /opt/www/perl5/lib/site_perl/5.6.0/PA-RISC2.0 > /opt/www/perl5/lib/site_perl/5.6.0 > /opt/www/perl5/lib/site_perl > . > > > Roger also provides a link to some threads containing some of his > DBD-Oracle and HPUX11 trials... > L<http://www.geocrawler.com/search/?config=183&words=Roger+Foskett> > > > =head1 Appendix C (Why Dynamic Linking) > > Some one posted to the DBI email list the following question: > > What are the advantages of building a dynamically linked version? > Being able to use threads? Or something besides that? > > The answer is there are too many to count, but here are several big > ones: > > =item 1 Much smaller executables > > Only the code referenced gets loaded... this > means faster execution times, and less machine resources (VM) used) > > =item 2 Modular addition and updating of modules. > > This is HUGE. One does not relink B<EVERYTHING, EVERY time> one changes > or updates a module. > > =item 3 It eliminates Dynaloader warning (multiply defined). > > This occurs with the static build when perl is run with -w. I fixed > this by removing -w from my #! lines, converting the the pragam "use > warnings;". However, it was annoying, since all my scripts had -w in the > #! line. > > =item 4 Its the default build > > Since almost every OS now supports dynamic linking, I believe that > static linking is NOT getting the same level of vetting it maybe used > to. Dynamicly linking is what you get by default, so its way better > tested. > > =item 5 Its required for Apache and mod_perl. > >
