[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