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

[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:11
Subject:
[PATCH] Re: Smoke [5.9.2] 23566 FAIL(X) openbsd 3.6 (i386/1 cpu)
Message ID:
20041130151132.GA909@mccoy.peters.homeunix.org
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

Steve Peters
steve@fisharerojo.org


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