List Info

Thread: embedded Perl (5.8.2) build problems on AIX 5.3




embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 03:29:48
Over at The Net-SNMP Project, we're suffering from build
problems when
using embedded Perl on AIX 5.3 with the OS-supplied Perl
5.8.2 and the
IBM C compiler:

/usr/vac/bin/xlc -I../include
-I/home/anders/src/net-snmp-5.4svn/include -I.
-I../agent -I/home/anders/src/net-snmp-5.4svn/agent
-I../agent/mibgroup
-I/home/anders/src/net-snmp-5.4svn/agent/mibgroup
-I../snmplib
-I/home/anders/src/net-snmp-5.4svn/snmplib
-I/my/libopenssl097/include
-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE
-qmaxmem=16384 -qnoansialias
-DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES
-qlonglong
-I/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE
-DNETSNMP_ENABLE_IPV6
-O2 -qro
-qroconst -qmaxmem=-1 -qarch=ppc -Daix5=aix5 -c
/home/anders/src/net-snmp-5.4svn/agent/snmp_perl.c  -DPIC
-o
.libs/snmp_perl.o
"/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/reentr.
h", line 619.16:
1506-007
(S) "struct drand48_data" is undefined.
"/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/reentr.
h", line 727.16:
1506-007
(S) "struct random_data" is undefined.
"/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/reentr.
h", line 775.16:
1506-007
(S) "struct random_data" is undefined.
"/home/anders/src/net-snmp-5.4svn/agent/snmp_perl.c&quo
t;, line 20.23: 1506-280
(W) Function argument assignment between types
"void(*)(struct
interpreter*,struct cv*)" and "void(*)(struct
cv*)" is not allowed.
"/home/anders/src/net-snmp-5.4svn/agent/snmp_perl.c&quo
t;, line 50.29: 1506-280
(W) Function argument assignment between types
"void(*)(struct
interpreter*)"
and "void(*)(void)" is not allowed.
gmake[1]: *** [snmp_perl.lo] Error 1
gmake[1]: Leaving directory
`/home/anders/build/5.4svn/agent'

The snmp_perl.c code is here:

http://net-snmp.svn.sourceforge.net/viewvc/net-snmp/trunk
/net-snmp/agent/snmp_perl.c?revision=15040&view=markup

Further details can be found in the corresponding bug
report:

  http://
sf.net/support/tracker.php?aid=1600099

Similar configurations build and work fine on at least
Linux, Solaris,
HP-UX and others with different versions of Perl.

Are there any known problems in this regard with the
system-supplied
Perl 5.8.2 on AIX 5.3?

Any thoughts on how to fix this? (We're ramping up for the
5.4.1 release
and like to get this resolved.)


Cheers,
+Thomas

-- 
Thomas Anders (thomas.anders at blue-cable.de)
Net-SNMP Project Core Developer -- http://www.net-snmp.org

Wanted: Perl Developer in Berlin/Germany
http://www.it-jobs.stepstone.de/it-jobs.cfm?id=648372

Re: embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 03:38:06
On Wed, May 30, 2007 at 10:29:48AM +0200, Thomas Anders
wrote:
> Over at The Net-SNMP Project, we're suffering from
build problems when
> using embedded Perl on AIX 5.3 with the OS-supplied
Perl 5.8.2 and the
> IBM C compiler:

Well, one of its variants - xlc

> /usr/vac/bin/xlc -I../include
-I/home/anders/src/net-snmp-5.4svn/include -I.
> -I../agent -I/home/anders/src/net-snmp-5.4svn/agent
-I../agent/mibgroup
> -I/home/anders/src/net-snmp-5.4svn/agent/mibgroup
-I../snmplib
> -I/home/anders/src/net-snmp-5.4svn/snmplib
-I/my/libopenssl097/include
> -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE
-qmaxmem=16384 -qnoansialias
> -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32
-D_LARGE_FILES -qlonglong
> -I/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE
-DNETSNMP_ENABLE_IPV6
> -O2 -qro
> -qroconst -qmaxmem=-1 -qarch=ppc -Daix5=aix5 -c
> /home/anders/src/net-snmp-5.4svn/agent/snmp_perl.c 
-DPIC -o
> .libs/snmp_perl.o
>
"/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/reentr.
h", line 619.16:
> 1506-007
> (S) "struct drand48_data" is undefined.
>
"/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/reentr.
h", line 727.16:
> 1506-007
> (S) "struct random_data" is undefined.
>
"/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/reentr.
h", line 775.16:
> 1506-007
> (S) "struct random_data" is undefined.
>
"/home/anders/src/net-snmp-5.4svn/agent/snmp_perl.c&quo
t;, line 20.23: 1506-280
> (W) Function argument assignment between types
"void(*)(struct
> interpreter*,struct cv*)" and "void(*)(struct
cv*)" is not allowed.
>
"/home/anders/src/net-snmp-5.4svn/agent/snmp_perl.c&quo
t;, line 50.29: 1506-280
> (W) Function argument assignment between types
"void(*)(struct
> interpreter*)"
> and "void(*)(void)" is not allowed.
> gmake[1]: *** [snmp_perl.lo] Error 1
> gmake[1]: Leaving directory
`/home/anders/build/5.4svn/agent'
> 
> The snmp_perl.c code is here:
> 
> http://net-snmp.svn.sourceforge.net/viewvc/net-snmp/trunk
/net-snmp/agent/snmp_perl.c?revision=15040&view=markup
> 
> Further details can be found in the corresponding bug
report:
> 
>   http://
sf.net/support/tracker.php?aid=1600099
> 
> Similar configurations build and work fine on at least
Linux, Solaris,
> HP-UX and others with different versions of Perl.
> 
> Are there any known problems in this regard with the
system-supplied
> Perl 5.8.2 on AIX 5.3?

I'm not an expert on AIX, and it's 2 years since I've been
near it, but

a: could you send the output of perl -V for the system perl
b: is it compiled with cc_r ?

Nicholas Clark

Re: embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 03:47:12
Nicholas Clark wrote:
> I'm not an expert on AIX, and it's 2 years since I've
been near it, but
> 
> a: could you send the output of perl -V for the system
perl

It's in the bug report I've mentioned. From
http://
sf.net/support/tracker.php?aid=1600099 :

Summary of my perl5 (revision 5.0 version 8 subversion 2)
configuration:
  Platform:
    osname=aix, osvers=5.2.0.0, archname=aix-thread-multi
    uname='aix animals 2 5 000709cf4c00 '
    config_args=''
    hint=previous, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef
useithreads=define
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define
usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc_r', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE
-qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT
-q32 -D_LARGE_FILES -qlonglong',
    optimize='-O',
    cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE
-qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT
-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE
-qmaxmem=16384
-qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32
-D_LARGE_FILES -qlonglong -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE
-qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT
-q32 -D_LARGE_FILES -qlonglong -D_ALL_SOURCE
-D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias
-DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong
-D_ALL_SOURCE
-D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384
-qnoansialias
-DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES
-qlonglong
-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE
-qmaxmem=16384
-qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32
-D_LARGE_FILES -qlonglong -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE
-qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT
-q32 -D_LARGE_FILES -qlonglong'
    ccversion='5.0.2.0', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8,
byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define,
longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8,
Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='ld', ldflags =' -brtl -b32 -bmaxdata:0x80000000'
    libpth=/lib /usr/lib /usr/ccs/lib
    libs=-lbind -lnsl -ldbm -ldl -lld -lm -lpthreads -lc_r
-lcrypt -lbsd
-lPW
    perllibs=-lbind -lnsl -ldl -lld -lm -lpthreads -lc_r
-lcrypt -lbsd -lPW
    libc=/lib/libc.a, so=a, useshrplib=true,
libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef,
ccdlflags='-bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/COR
E/perl.exp
-bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp
-bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp
-bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp'

    cccdlflags=' ', lddlflags='-bhalt:4 -bM:SRE
-bI:$(PERL_INC)/perl.exp
-bE:$(BASEEXT).exp -bnoentry -lpthreads -lc_r'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY USE_ITHREADS
USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
  Locally applied patches:
        SUIDPERLIO1 - fix PERLIO_DEBUG buffer overflow
(CAN-2005-0156)
        SPRINTF0 - fixes for sprintf formatting issues -
CVE-2005-3962
  Built under aix
  Compiled at Jan 26 2006 14:30:41
  INC:
    /usr/opt/perl5/lib/5.8.2/aix-thread-multi
    /usr/opt/perl5/lib/5.8.2
    /usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi
    /usr/opt/perl5/lib/site_perl/5.8.2
    /usr/opt/perl5/lib/site_perl
    .

> b: is it compiled with cc_r ?

I think so (see above).


+Thomas

-- 
Thomas Anders (thomas.anders at blue-cable.de)
Net-SNMP Project Core Developer -- http://www.net-snmp.org

Wanted: Perl Developer in Berlin/Germany
http://www.it-jobs.stepstone.de/it-jobs.cfm?id=648372

Re: embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 03:53:32
On Wed, May 30, 2007 at 10:47:12AM +0200, Thomas Anders
wrote:

> It's in the bug report I've mentioned. From
> http://
sf.net/support/tracker.php?aid=1600099 :

Sorry, I missed that.

> > b: is it compiled with cc_r ?
> 
> I think so (see above).

Yes. Thanks

I suspect that compiling against the system perl using xlc
isn't going to
work. xlc and cc_r behave sufficiently differently that the
aren't the same
compiler, even thought they're hardlinked to the same front
end driver
program. A patch I sent related to this was accepted for
ccache:

  http://ccache.samba.org/


  The latest release is ccache 2.4.

    ...
    * fixed handling of hard-linked compilers on AIX
    ...


If the code really needs to compile with xlc, then Perl is
also going to have
to be compiled with xlc.

Nicholas Clark

Re: embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 05:31:44
Nicholas Clark wrote:
> I suspect that compiling against the system perl using
xlc isn't going to
> work. xlc and cc_r behave sufficiently differently that
the aren't the same
> compiler, even thought they're hardlinked to the same
front end driver
> program. 

That indeed seems to be the problem here.
I'll see whether we can come up with an appropriate
configure check.

Thanks for the suggestions.


+Thomas

-- 
Thomas Anders (thomas.anders at blue-cable.de)
Net-SNMP Project Core Developer -- http://www.net-snmp.org

Wanted: Perl Developer in Berlin/Germany
http://www.it-jobs.stepstone.de/it-jobs.cfm?id=648372

Re: embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 05:42:09
On Wed, May 30, 2007 at 12:31:44PM +0200, Thomas Anders
wrote:
> Nicholas Clark wrote:
> > I suspect that compiling against the system perl
using xlc isn't going to
> > work. xlc and cc_r behave sufficiently differently
that the aren't the same
> > compiler, even thought they're hardlinked to the
same front end driver
> > program. 
> 
> That indeed seems to be the problem here.
> I'll see whether we can come up with an appropriate
configure check.

You might find the output of perl -V:cc and perl -V:ccname
helpful.
Also, see man perlrun and the entry on -V for how to tweak
the output.
(Not sure if all the features we now have were available
back in 5.8.2)

> Wanted: Perl Developer in Berlin/Germany
> http://www.it-jobs.stepstone.de/it-jobs.cfm?id=648372

That's not advertised on http://jobs.perl.org/ is
it?

Nicholas Clark

Re: embedded Perl (5.8.2) build problems on AIX 5.3
user name
2007-05-30 05:56:01
On Wed, 30 May 2007 12:31:44 +0200, Thomas Anders
<thomas.andersblue-cable.de> wrote:

> Nicholas Clark wrote:
> > I suspect that compiling against the system perl
using xlc isn't going to
> > work. xlc and cc_r behave sufficiently differently
that the aren't the same
> > compiler, even thought they're hardlinked to the
same front end driver
> > program. 
> 
> That indeed seems to be the problem here.
> I'll see whether we can come up with an appropriate
configure check.

Not in Configure, but please look in hints/aix.sh

That already goes through a lot of trouble to detect what C
compiler is
installed and/or used. Warning: it is a snake pit on AIX. To
use rgs'
words: Hic sunt leones

> Thanks for the suggestions.

-- 
H.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/
)
using & porting perl 5.6.2, 5.8.x, 5.9.x   on HP-UX
10.20, 11.00, 11.11,
& 11.23, SuSE 10.0 & 10.2, AIX 4.3 & 5.2, and
Cygwin. http://qa.perl.org
http://mirrors.de
velooper.com/hpux/            http://www.test-smoke.org
                        http
://www.goldmark.org/jeff/stupid-disclaimers/

[1-7]

about | contact  Other archives ( Real Estate discussion Medical topics )