Fri Aug 06 06:33:08 2010: Request 59224 was acted upon.
Transaction: Correspondence added by RSCHUPP
Queue: PAR-Packer
Subject: make error with version 1.006 on aix 5.3
Broken in: (no value)
Severity: (no value)
Owner: RSCHUPP
Requestors: [email protected]
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=59224 >
On 2010-08-05 09:28:05, ogv wrote:
> I hope this is what you need.
> the output: env - truss -f -a -e par
Yes, that confirms that the E2BIG for execve() is caused
by too large args+env passed to the program.
According to IBM docs, AIX 5 has a ridiculous, non-configurable
limit of 24K for args.
The main culprit here is PAR::Packer: it calls par with one
argument that is already 23K long (it's a "perl -e ..." type
command). Maybe I can eliminate that, but that's a bit of work
and I want to make sure beforehand that this the only reason
why PAR::Packer doesn't work on AIX 5.
Hence, are you ready for a little experiment?
(1) Run "make clean" to start with a clean slate
(2) Try to shrink your process enviroment by unsetting all
environment variables that are not absolutely necessary
(3) Strip non-functional whitespace from script/par.pl
(saves ~4K) by running
$ perl -i -p -e 's/^\s+// if /^=cut/../^1;/' script/par.pl
(4) Save some more environmental bytes by reducing the array
ld_path_keys in function par_setup_libpath in myldr/mktmpdir.c
like this
const char *ld_path_keys[3] = {
"LIBPATH", "PATH", ""
};
(note the empty string as last element)
(5) Now try a normal build
$ perl Makefile.PL
$ make
$ make test
Cheers, Roderich