develooper Front page | perl.perl5.porters | Postings from December 2004

Re: Static linking notes --- perl5.8.6 and uClibc

Thread Previous | Thread Next
Bennett Todd
December 28, 2004 06:30
Re: Static linking notes --- perl5.8.6 and uClibc
Message ID:
2004-12-28T10:42:51 Nicholas Clark:
> On Mon, Dec 27, 2004 at 09:45:19PM +0000, Bennett Todd wrote:
> > Gotta rename the dir the tarballs extract to something resembling
> > the install path. E.g., after extracting Text-CSV_XS-0.23.tar.gz in
> > ext/, you need to mkdir Text; mv Text-CSV_XS-0.23 Text/CSV_XS.
> > 
> > That seems to suffice.

Well, it seemed to suffice until I got to XML::Parser, so far I've
failed to get it to notice both the nonxs_ext Parser and the
static_ext Expat in the same tree. If anybody's got any ideas for
that pkg I'd love to hear 'em. I can -A static_ext=XML/Parser/Expat,
but then it loses the normal builtins and the build fails.

> This may seem like a kludge, but I believe that the intended way of making
> perl with statically linked extensions is as follows:
> 0: Build and install perl from the distribution tarball
> for each extension
> 1: Unpack it
> 2: Run perl Makefile.PL
> 4: make all test
> 5: make install

I noticed that option, but I'd hoped not to have to use it. I use
software packaging. So I run a package build command as non-root,
then install the resulting created package as root. This got a lot
cleaner lately; make DESTDIR=... install-strip is nice:-).

I like to have one clearly identified source package, that will
reliably automatically reconstruct the installable binary package.
Gives me an illusion that I'm in control:-).

I can create packages using this approach, but it'd lose me the
pleasing ability to install packages in any order without changing
semantics, and do a clean rebuild of the world by rebuilding all the
packages, installing them all, then repeating once to make sure it's
cleanly reproduceable.

But I'll give this approach a try for XML::Parser, see if it works.

When using this approach, do the add-ons get bunged into libperl.a,
or deployed separately? I.e. does the static module "make install"
modify anything installed by the perl make install other than the
perl binary itself? And when using this approach, does it Do The
Right Thing if you re-run the make install with a newer version of
the same module, or do you have to rewind the perl to "everything
but this module" then rebuild?


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About