[Grr, I was just done writing this when my mail client decided to crash.]

Hi Philippe,

I haven't been able to build a 32bit perl on my 64bit ubuntu because I seem to be missing various 32bit libraries. Couldn't easily find them using aptitude either, so I'll just compare the result of your make with mine (on the working 64bit system and perl).

Philippe Schaffnit schrieb:
Your fix helps under Irix, in the sense that it that the warning is now
gone, but the tests still fail in a similar way.

Well, it was just a warning then. I'll commit the fix in the hope it stays silent.

I also committed a fix for the warning in internals.c which shouldn't come back now.

Additionally, I committed a fix for myldr/Makefile.PL which amends "make clean". It's probably a really good idea to run make clean before rebuilding, by the way.

I'll go through this step-by-step, add what I think it does (or should do) and what my machine does in the same place.

sunfire /WORK/philippe/Temp/PAR/trunk> perl Makefile.PL
[normal Makefile.PL operation]

make[1]: Entering directory `/WORK/philippe/Temp/PAR/trunk/myldr'
/WORK/philippe/Tools/Perl/bin/perl sha1.c.PL sha1.c

Generate sha1.c from sha1.c.PL.
/usr/bin/perl sha1.c.PL sha1.c

gcc -m32 -c -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/WORK/philippe/Tools/Perl/lib/perl5/5.8.8/x86_64-linux/CORE sha1.c

Compile it.
cc -c -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib/perl/5.8/CORE sha1.c

Now, here is a step which is missing from your log:
/usr/bin/perl ./file2c.pl /usr/lib/libperl.so.5.8 my_perl.c load_me_0 1 30000

This basically just takes the shared perl lib and writes it as binary data to my_perl.c. This is crucial for the process. My money is on that if this fails, (or isn't even tried at all!), the build is effectively doomed.

Probably, Makefile.PL didn't find the shared perl lib and thus skipped the step.

Please attempt the following: In myldr/Makefile.PL around line 130, you can find a commented out guard against not finding the libperl:
    # die "Can't find $file in (@paths) -- please contact the author!"
    #   unless -e $libperl;
Please enable that and retry. It should die with that error. I don't know why this is commented out nor why it can't be found. But I'm rather sure this is the culprit!

Perhaps this is related to the distinction of static and dynamic perl's. I just don't have a clue. :(

gcc -m32 -c -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/WORK/philippe/Tools/Perl/lib/perl5/5.8.8/x86_64-linux/CORE main.c
In file included from main.c:57:
internals.c: In function 'XS_Internals_PAR_BOOT':
internals.c:34: warning: ignoring return value of 'Perl_av_shift',
declared with attribute warn_unused_result

This warning should be gone now if you resync from svn. Anyhow, this compiles main.c to main.o.

I'll skip the rest until the file2c.pl run works.

Steffen

Reply via email to