Perl5.8.6 AIX 4.3.3 VAC4.4.0.3 - Undefined Symbols

T

teodell

Perl: 5.8.6
OS: AIX4.3.3 ML11
Compiler: vac.C 4.4.0.3

I'm wanting to compile 5.8.6 w/ thread support. I'm failing on in make
test on ext/threads/t/libc.t. If I run it directly I get this:
1..11
ok 1
not ok 2 # not a safe localtime
not ok 3 # not a safe localtime
not ok 4 # not a safe localtime
not ok 5 # not a safe localtime
ok 6
not ok 7 # not a safe localtime
not ok 8 # not a safe localtime
not ok 9 # not a safe localtime
not ok 10 # not a safe localtime
ok 11

I noticed it will fail different ones each time I run it.

I was compiling with AIX default except enabling thread support for the
ithreads. So far after having problems with make failing on Undefined
symbols on various pthread names I saw that Configure was finding
pthread as shared but was not including it with the libraries. After
including pthread make seems happy except for two sections.

cc -o miniperl -brtl -L/usr/local/lib -b32 `echo gv.o toke.o
perly.o o
p.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o run.o
pp_hot.o sv.o pp
..o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o
deb.o univer
sal.o xsutils.o globals.o perlio.o perlapi.o numeric.o locale.o
pp_pack.o pp_sor
t.o | sed 's/ op.o / /'` miniperlmain.o opmini.o perl.o -lbind -lnsl
-ldl -lld
-lm -lcrypt -lc -lbsd -lpthread
./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
make: 1254-004 The error code from the last command is 1.
make: 1254-005 Ignored error code 1 from last command.
./miniperl -Ilib configpm configpm.tmp
sh mv-if-diff configpm.tmp lib/Config.pm
./miniperl -Ilib lib/lib_pm.PL

At the end of make
Making Errno (nonxs)
Writing Makefile for Errno
../../miniperl "-I../../lib" "-I../../lib" "-I../../lib"
"-I../../lib" E
rrno_pm.PL Errno.pm
cp Errno.pm ../../lib/Errno.pm
make: 1254-004 The error code from the last command is 1.
make: 1254-005 Ignored error code 1 from last command.

Everything is up to date. Type 'make test' to run test suite.

The only other issue was with make test on lib/ExtUtils/t/Embed.t. It
failed initially seemingly because it was looking for the perl.exp file
to be in the future install location versus in the source directory. I
copied the file where it was expected and now ld simply warns about a
lot of Symbol * is already exported.
 
T

teodell

Update:
After looking over the libc.t it looks like it is calling localtime
which I'm not sure is thread safe. ??? It contains a sub localtime_r
which looks like it might be thread-safe. Not sure with my lack of
experience here. But if I use localtime_r inside the thread instead of
localtime it passes. Takes about twice as long.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top