Subject: Re: pkg/28580: default pkgsrc perl58 won't build on 2.0
To: None <carl@bl.echidna.id.au>
From: Ertan Payci <ertan.payci@clpa.org>
List: pkgsrc-bugs
Date: 01/02/2005 15:26:38
On Tue, Dec 07, 2004 at 09:42:01PM +0000, carl@bl.echidna.id.au wrote:
> >Number:         28580
> >Category:       pkg
> >Synopsis:       default pkgsrc perl58 won't build on 2.0
> >Confidential:   no
> >Severity:       non-critical
> >Priority:       medium
> >Responsible:    pkg-manager
> >State:          open
> >Class:          sw-bug
> >Submitter-Id:   net
> >Arrival-Date:   Tue Dec 07 21:42:01 +0000 2004
> >Originator:     Carl Brewer
> >Release:        2.0
> >Organization:
> >Environment:
> NetBSD  2.0 NetBSD 2.0 (GENERIC) #0: Wed Dec  1 10:58:25 UTC 2004  builds@build:/big/builds/ab/netbsd-2-0-RELEASE/i386/200411300000Z-obj/big/builds/ab/netbsd-2-0-RELEASE/src/sys/arch/i386/compile/GENERIC i386
> 
> >Description:
> this is a dupe of 25427, but that dates back to May and it looks like it may have been forgotten.  With 2.0 on the doorstep, this probably
> wants fixing now.
> 
> a vanilla install of 2.0, with pkgsrc as of about 10 mins ago
> won't build perl58 (threaded).  Setting PERL5_USE_THREADS=No
> in /etc/mk.conf "fixes" it. The default is to build threaded perl58,
> which chokes - see 25427
> 
> 
> 
> >How-To-Repeat:
> generic install of 2.0(i386)
> grab pkgsrc
> cd /usr/pkgsrc/lang/perl58
> make
> 
> >Fix:
> Set PERL5_USE_THREADS=No in /etc/mk.conf
> Or change the default to unthreaded?
> 
> 

If that's the problem:

`sh  cflags "optimize='-O2 -pthread -I/usr/include'" scope.o` -DPIC -fPIC scope.c
          CCCMD =  cc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/pkg/include -O2 -pthread -I/usr/include  -Wall
`sh  cflags "optimize='-O2 -pthread -I/usr/include'" pp_ctl.o` -DPIC -fPIC pp_ctl.c
          CCCMD =  cc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/pkg/include -O2 -pthread -I/usr/include  -Wall
`sh  cflags "optimize='-O2 -pthread -I/usr/include'" pp_sys.o` -DPIC -fPIC pp_sys.c
          CCCMD =  cc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/pkg/include -O2 -pthread -I/usr/include  -Wall
pp_sys.c: In function `Perl_pp_gprotoent':
pp_sys.c:4890: warning: implicit declaration of function `getprotobyname_r'
pp_sys.c:4898: warning: implicit declaration of function `getprotobynumber_r'
pp_sys.c:4905: warning: implicit declaration of function `getprotoent_r'
pp_sys.c: In function `Perl_pp_gservent':
pp_sys.c:4982: warning: implicit declaration of function `getservbyname_r'
pp_sys.c:4998: warning: implicit declaration of function `getservbyport_r'
pp_sys.c:5005: warning: implicit declaration of function `getservent_r'
pp_sys.c: In function `Perl_pp_sprotoent':
pp_sys.c:5078: warning: implicit declaration of function `setprotoent_r'
pp_sys.c:5078: error: structure has no member named `_protoent_data'
pp_sys.c: In function `Perl_pp_sservent':
pp_sys.c:5089: warning: implicit declaration of function `setservent_r'
pp_sys.c:5089: error: structure has no member named `_servent_data'
pp_sys.c: In function `Perl_pp_eprotoent':
pp_sys.c:5124: warning: implicit declaration of function `endprotoent_r'
pp_sys.c:5124: error: structure has no member named `_protoent_data'
pp_sys.c: In function `Perl_pp_eservent':
pp_sys.c:5136: warning: implicit declaration of function `endservent_r'
pp_sys.c:5136: error: structure has no member named `_servent_data'
*** Error code 1

Stop.
make: stopped in /data/1/NetBSD/usr/pkgsrc/lang/perl58/work/perl-5.8.5
*** Error code 1

Stop.
make: stopped in /data/1/NetBSD/usr/pkgsrc/lang/perl58
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/lang/perl58

That seems to be the result of the hostname not being set. This is reproducible.
Unset the hostname, rebuild again and it breaks, very funny. 
Unfortunately the build breaks later but i didn't have the time to track that down.

Good Luck,
Ertan

-- 
Ertan Payci             ertan.payci@clpa.org
                         ertan.payci@gmx.net