develooper Front page | perl.perl5.porters | Postings from November 2004

Re: [PATCH] Re: Smoke [5.9.2] 23566 FAIL(X) openbsd 3.6 (i386/1 cpu)

Thread Previous | Thread Next
From:
Steve Peters
Date:
November 30, 2004 07:29
Subject:
Re: [PATCH] Re: Smoke [5.9.2] 23566 FAIL(X) openbsd 3.6 (i386/1 cpu)
Message ID:
20041130152906.GA555@mccoy.peters.homeunix.org
On Tue, Nov 30, 2004 at 09:11:32AM -0600, Steve Peters wrote:
> On Tue, Nov 30, 2004 at 03:28:14PM +0100, H.Merijn Brand wrote:
> > On Tue 30 Nov 2004 15:22, Steve Peters <steve@fisharerojo.org> wrote:
> > > On Tue, Nov 30, 2004 at 02:54:00PM +0100, Rafael Garcia-Suarez wrote:
> > > > Steve Peters wrote:
> > > > > I looked into these failures a bit last night.  The problem is that the 
> > > > > function getservbyname_r() is defined within the OpenBSD library, but no 
> > > > > prototype is defined in any .h file.  The smoke test, by default, assumes
> > > > > getservbyname_r() is available, but never comes up with a proper prototype
> > > > > to use for the function.  This leads to the test failures.   Configuring by
> > > > > hand with -Duseithreads leads to a clean compile and no test failures.
> > > > 
> > > > So maybe should it be disabled in a hints file ?
> > > > What do you mean, Configuring by hand ? what's different in the smoke process ?
> > > 
> > > When running Configure -Duseithreads, when it reaches the tests for
> > > getservbyname_r(), Configure attempts to find the prototype and fails.  It 
> > > then asks whether to use the default, which is to define getservbyname_r(), or
> > > to override that.  It appears that the smoke test just assumes
> > > getservbyname_r without confirming the prototype.
> > 
> > Correct. smoke runs Configure -des
> > -s is silent, -d is default answer
> > so it newer stops for a question (which
> > would make smoke runs last indefinitely)
> > 
> > > It does raise a bigger question of why getservbyname_r() is used if no 
> > > prototype is found, since the prototype can vary by libc implementation.
> > 
> > Hairy code from Jarkko. I still don't want to understand that bit
> >
> 
> That's OK, Rafael gave me a great pointer on the hint file.  There is a hint
> to not define getservebyname_r() through OpenBSD 3.5.  Since I'm running 
> OpenBSD 3.6, the hint gets ignored.  Below is a patch to fix this through
> 3.7 at least.
> 
> --- /home/steve/perl-current/hints/openbsd.sh   Thu Apr 29 12:58:37 2004
> +++ ./hints/openbsd.sh  Tue Nov 30 08:49:58 2004
> @@ -118,8 +118,8 @@
>         ;;
>         esac
>         case "$osvers" in
> -       [012].*|3.[0-5])
> -               # Broken at least up to OpenBSD 3.5, we'll see about 3.6
> +       [012].*|3.[0-7])
> +               # Broken at least up to OpenBSD 3.6, we'll see about 3.8
>                 d_getservbyname_r=$undef ;;
>         esac
>  esac
>

Scratch the previous patch.  OpenBSD appears to be headed towards adding 
getservbyname_r() in 3.7.  The following patch is correct then.

--- /home/steve/perl-current/hints/openbsd.sh   Thu Apr 29 12:58:37 2004
+++ ./hints/openbsd.sh  Tue Nov 30 08:49:58 2004
@@ -118,8 +118,8 @@
        ;;
        esac
        case "$osvers" in
-       [012].*|3.[0-5])
-               # Broken at least up to OpenBSD 3.5, we'll see about 3.6
+       [012].*|3.[0-6])
+               # Broken at least up to OpenBSD 3.6, we'll see about 3.7
                d_getservbyname_r=$undef ;;
        esac
 esac
 

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About