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!!

Reply via email to