On Fri, 27 Feb 2004, Leopold Toetsch wrote: > Peter Sinnott wrote: > > > I have downloaded the snapshot dated 27-Feb-2004 00:01 from > > http://cvs.perl.org/snapshots/parrot/ and tested it on hpux. > > > > I order to get it to compile I have to revert to using inet_aton > > at line 623 of io_unix.c. inet_pton was causing unsatisfied symbols > > at link time. > > We need a config test here.
Something like this ought to do the trick for now. Longer term, we need to build up some infrastructure for testing for functions on our own. We also need to centralize things more to avoid some of the duplication of code and information we're ending up with here. diff -r -u -N parrot-current/MANIFEST parrot-andy/MANIFEST --- parrot-current/MANIFEST 2004-02-27 03:00:34.000000000 -0500 +++ parrot-andy/MANIFEST 2004-02-27 09:36:23.000000000 -0500 @@ -78,6 +78,7 @@ config/auto/format.pl [] config/auto/funcptr.pl [] config/auto/funcptr/test_c.in [] +config/auto/functions.pl [] config/auto/gc.pl [] config/auto/gc/test_c.in [] config/auto/gcc.pl [] diff -r -u -N parrot-current/config/auto/functions.pl parrot-andy/config/auto/functions.pl --- parrot-current/config/auto/functions.pl 1969-12-31 19:00:00.000000000 -0500 +++ parrot-andy/config/auto/functions.pl 2004-02-27 09:36:56.000000000 -0500 @@ -0,0 +1,33 @@ +#! perl -w +# Copyright: 20004 The Perl Foundation. All Rights Reserved. +# $Id:$ + +=head1 NAME + +config/auto/functions.pl - Probe for Various Functions + +=head1 DESCRIPTION + +This command probes for the existence of various functions. +For the moment, it just pulls information from perl5's Configure; +in the future, it ought to go looking on its own. + +=cut + +package Configure::Step; + +use strict; +use vars qw($description @args); + +$description="Looking for various functions..."; + [EMAIL PROTECTED](); + +sub runstep { + # Do we have inet_aton() ? + Configure::Data->set( + d_inet_aton => $Config{d_inetaton}, + ); +} + +1; diff -r -u -N parrot-current/config/gen/feature_h/feature_h.in parrot-andy/config/gen/feature_h/feature_h.in --- parrot-current/config/gen/feature_h/feature_h.in 2004-01-08 19:01:00.000000000 -0500 +++ parrot-andy/config/gen/feature_h/feature_h.in 2004-02-27 09:36:23.000000000 -0500 @@ -96,6 +96,21 @@ print OUT <<EOP; +/* from config/auto/functions.pl */ +EOP +if (${d_inet_aton}) { + print OUT <<EOP; +#define PARROT_HAS_INET_ATON 1 +EOP +} +else { + print OUT <<EOP; +/* #undef PARROT_HAS_INET_ATON */ +EOP +} + +print OUT <<EOP; + /* from config/auto/inline */ EOP if (${inline} ne '') { diff -r -u -N parrot-current/io/io_unix.c parrot-andy/io/io_unix.c --- parrot-current/io/io_unix.c 2004-02-19 19:00:06.000000000 -0500 +++ parrot-andy/io/io_unix.c 2004-02-27 11:09:48.000000000 -0500 @@ -617,11 +617,16 @@ { struct sockaddr_in sa; /* Hard coded to IPv4 for now */ - int family = AF_INET; +#if !PARROT_HAS_INET_ATON + int family = AF_INET; /* for inet_pton() */ +#endif char * s = string_to_cstring(interpreter, addr); - /*if(inet_aton(s, &sa.sin_addr) != 0) {*/ +#if PARROT_HAS_INET_ATON + if(inet_aton(s, &sa.sin_addr) != 0) { +#else if(inet_pton(family, s, &sa.sin_addr) != 0) { +#endif /* Success converting numeric IP */ } else { diff -r -u -N parrot-current/lib/Parrot/Configure/RunSteps.pm parrot-andy/lib/Parrot/Configure/RunSteps.pm --- parrot-current/lib/Parrot/Configure/RunSteps.pm 2003-11-27 19:00:50.000000000 -0500 +++ parrot-andy/lib/Parrot/Configure/RunSteps.pm 2004-02-27 09:36:23.000000000 -0500 @@ -4,6 +4,8 @@ use vars qw(@steps); # EDIT HERE TO ADD NEW TESTS +# Also update the slightly different version of this list +# in Parrot::Configure::Docs:Section:Config.pm @steps=qw( init/manifest.pl init/data.pl @@ -23,6 +25,7 @@ auto/byteorder.pl auto/pack.pl auto/format.pl + auto/functions.pl auto/gcc.pl auto/isreg.pl auto/jit.pl diff -r -u -N parrot-current/lib/Parrot/Docs/Section/Config.pm parrot-andy/lib/Parrot/Docs/Section/Config.pm --- parrot-current/lib/Parrot/Docs/Section/Config.pm 2004-02-26 03:00:28.000000000 -0500 +++ parrot-andy/lib/Parrot/Docs/Section/Config.pm 2004-02-27 09:36:23.000000000 -0500 @@ -66,6 +66,7 @@ $self->new_item('', 'config/auto/byteorder.pl'), $self->new_item('', 'config/auto/pack.pl'), $self->new_item('', 'config/auto/format.pl'), + $self->new_item('', 'config/auto/functions.pl'), $self->new_item('', 'config/auto/gcc.pl'), $self->new_item('', 'config/auto/isreg.pl'), $self->new_item('', 'config/auto/jit.pl'), @@ -98,4 +99,4 @@ =cut -1; \ No newline at end of file +1; -- Andy Dougherty [EMAIL PROTECTED]