Please let me know if I'm being too dense or too, er, flippant here, I've just gotten sucked, er, just joined the parrot world (dang O'Reilly books ;-) and I'm not sure how formal this list is or how much detail you'll want off the bat. If these issues are too picayune at this point, I'll desist. I can give the full perl/OS details too but don't know if that's (pthreads oops aside) necessary yet. Most of the msgs I've seen so far are a little higher level than this, though the archives do have some similar sort of nigglings so ... I can help w/ the Sol x86 test beds, as I've got 2.5.1 2.7 and 2.8 available. Too much junk below but I've got the msg written. Sorry.
>> I managed to finagle past the asctime_r errors by sticking: >> print OUT <<'END'; >> #define _POSIX_PTHREAD_SEMANTICS >> END >> in: >> parrot/config/gen/config_h/feature_h.in > Does it harm, if we unconditionally include this define or should it be > defined just for this solaris version? I've since tried the compile on Sol x86 2.7 and that ifdef was unneeded - thinking harder, the 2.5.1 box in question has pthreads installed (PTHREAD - D'oh!) which seems to say Configure is recognizing that but not setting this obscure ifdef? >> if ( $libs !~ /-lrt\b/ ) { >> $libs .= ' -lrt'; >>} > ... obviously have to follow the scheme used in perl/hints/solaris_2.sh, > i.e.: > add -lrt for solaris >= 2.7 and remove it for lower versions. I did have to comment that out for 2.7 also. My understanding is that < Sol 2.7 you don't get a snprintf. That's where the next attempt failed on the 2.5.1 box along w/: : blib/lib/libparrot.a gcc -o parrot -L/usr/local/lib -L/usr2/local/lib -g imcc/main.o blib/lib/libparrot.a -lsocket -lnsl -ldl -lm -lposix4 -lpthread -lcrypt -lsec Undefined first referenced symbol in file inet_pton blib/lib/libparrot.a(io_unix.o) ld: fatal: Symbol referencing errors. No output written to parrot io_unix.c has: STRING * PIO_sockaddr_in(theINTERP, unsigned short port, STRING * addr) { struct sockaddr_in sa; /* Hard coded to IPv4 for now */ int family = AF_INET; char * s = string_to_cstring(interpreter, addr); #ifdef PARROT_DEF_INET_ATON if(inet_aton(s, &sa.sin_addr) != 0) { #else if(inet_pton(family, s, &sa.sin_addr) != 0) { #endif As it happens, 2.5.1 has neither inet_aton or inet_pton comment in the above: XXX: We can probably just write our own routines (C<htons()>, C<inet_aton()>, etc.) and take this out of platform specific compilation parrot/config/auto/snprintf/test.in The 2.7 doesn't have Sun's cc/CC (too expensive) and so (config/init/hints/solaris.pl): my $link = Configure::Data->get('link'); # Going to assume Sun's compiler # In which case we need to link with the C++ compiler (CC) rather than the # C compiler (cc) $link =~ s/\bcc\b/CC/; Configure::Data->set('link', $link); ... choked early on: Determining what C compiler and linker to use.........................done. Determining if your C compiler is actually gcc......Linker failed (see test.ldo) test.ldo Can't exec "CC": No such file or directory at lib/Parrot/Configure/Step.pm line 279. which seems to say its not doing whatever that link stuff is doing, its not working for the CC/g++ switch. Changing that subst: # C compiler (cc) #$link =~ s/\bcc\b/CC/; # YAassumption - g++ $link =~ s/\bcc\b/g++/; Configure::Data->set('link', $link); whch gets us as far as: : blib/lib/libparrot.a g++ -o parrot -L/usr/local/lib -g imcc/main.o blib/lib/libparrot.a blib/lib/libicuuc.a blib/lib/libicudata.a -lsocket -lnsl -ldl -lm -lpthread -lsched Undefined first referenced symbol in file sched_yield blib/lib/libparrot.a(thread.o) ld: fatal: Symbol referencing errors. No output written to parrot 2.7 (Sol. native threads?) does have sched_yield (in sched.h) but I dunno how to best tell it which to use (posix or sun) or which is better. a Andy Bach, Sys. Mangler Internet: [EMAIL PROTECTED] VOICE: (608) 261-5738 FAX 264-5932 Call out Gouranga be happy!!! Gouranga Gouranga Gouranga .... That which brings the highest happiness!!