Hi,

I'm assuming this goes to the "users" list, if not, please tell me otherwise.

I need to build net-snmp with embedded perl support for distribution
to Solaris 10 boxes (starting with Sparc, but later for x86 too).
Using Solaris Studio CC.

Following the instructions in README.solaris, section 12, I need to
build my own Perl without large file support in order to make this
possible. After configuring Perl, I get this output:
# grep cppsymbols config.sh
cppsymbols='_BIG_ENDIAN= _FILE_OFFSET_BITS=32 _ILP32=
_LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 __STDC__=0 __SVR4=1 sparc=1
__sparc=1 sun=1 __sun=1 unix=1 __unix=1'


Certainly looks like it doesn't have large file support, right? Perl
-V gives me:

Characteristics of this binary (from libperl):
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV PERL_USE_SAFE_PUTENV USE_PERLIO
                        USE_PERL_ATOF
  Built under solaris
  Compiled at Jan 16 2012 16:07:17

Net-snmp goes through configure OK after that:

# tcsh
# env PERLPROG=<myperlpath/bin/per>l ./configure --prefix=<myprefix>
--enable-embedded-perl --with-perl-modules --disable-manuals
--disable-agent --disable-mib-loading --disable-mibs --with-cc=cc
--with-openssl=/usr/local/ssl/ --with-default-snmp-version=2
--with-sys-contact=joel.hans...@gmail.com
--with-sys-location="somewhere" --with-logfile=/var/log/snmpd.log
--with-persistent-directory=/opt/ericsson/prmc_netsnmp/etc/


---------------------------------------------------------
            Net-SNMP configuration summary:
---------------------------------------------------------

  SNMP Versions Supported:    1 2c 3
  Building for:               solaris2
  Net-SNMP Version:           5.7.1
  Network transport support:  Callback Unix Alias TCP UDP IPv4Base
SocketBase TCPBase UDPIPv4Base UDPBase
  SNMPv3 Security Modules:     usm
  Agent MIB code:             mibII/vacm_vars mibII/vacm_conf
utilities/execute =>  util_funcs/header_generic mibII/vacm_context
mibII/vacm_conf
  MYSQL Trap Logging:         unavailable
  Embedded Perl support:      enabled
  SNMP Perl modules:          building -- embeddable
  SNMP Python modules:        disabled
  Crypto support from:        crypto
  Authentication support:     MD5 SHA1
  Encryption support:         DES AES
  Local DNSSEC validation:    disabled

---------------------------------------------------------


However, when running "make" I get the below sequence of errors and
the build terminates.

It built fine when I didn't have the --with-embedded-perl option enabled.

Is this a bug in the configure environment for Solaris, or am I doing
something wrong with my config flags? Would a switch to GCC help? (I'd
rather avoid that though.)

By the way, can anyone explain (or link to an explanation) of why
embedded perl support and large files are mutually exclusive on
Solaris? This procedure is unwieldy to say the least, since every Perl
build imaginable has large file support these days.

Best regards,
Joel Hansell

----------------

cp OID.pm ../blib/lib/NetSNMP/OID.pm
AutoSplitting ../blib/lib/NetSNMP/OID.pm (../blib/lib/auto/NetSNMP/OID)
/opt/ericsson/prmc_netsnmp/perl/bin/perl
/opt/ericsson/prmc_netsnmp/perl/lib/5.14.2/ExtUtils/xsubpp -prototypes
-typemap /opt/ericsson/prmc_netsnmp/perl/lib/5.14.2/ExtUtils/typemap
-typemap typemap  OID.xs > OID.xsc && mv OID.xsc OID.c
cc -c    -I../../include -g -Dsolaris2=solaris2 -I/usr/local/include
-DPERL_USE_SAFE_PUTENV
-I/opt/ericsson/prmc_netsnmp/perl/lib/5.14.2/sun4-solaris/CORE
-I/usr/local/ssl//include -I. -I/opt/ericsson/prmc_netsnmp/include
-I/usr/local/include -DPERL_USE_SAFE_PUTENV -O    -DVERSION=\"5.0701\"
 -DXS_VERSION=\"5.0701\" -KPIC
"-I/opt/ericsson/prmc_netsnmp/perl/lib/5.14.2/sun4-solaris/CORE"
OID.c
"/opt/ericsson/prmc_netsnmp/perl/lib/5.14.2/sun4-solaris/CORE/regexp.h",
line 329: warning: statement not reached
"OID.xs", line 69: undefined struct/union member: enums
"OID.xs", line 69: warning: improper pointer/integer combination: op "="
"OID.xs", line 69: improper member use: next
"OID.xs", line 69: warning: assignment type mismatch:
        pointer to struct enum_list {} "=" pointer to struct usmUser
{pointer to unsigned char engineID, unsigned int engineIDLen, pointer
to char name, pointer to char secName, pointer to unsigned long
cloneFrom, unsigned int cloneFromLen, pointer to unsigned long
authProtocol, unsigned int authProtocolLen, pointer to unsigned char
authKey, unsigned int authKeyLen, pointer to unsigned long
privProtocol, unsigned int privProtocolLen, pointer to unsigned char
privKey, unsigned int privKeyLen, pointer to unsigned char
userPublicString, unsigned int userPublicStringLen, int userStatus,
int userStorageType, pointer to void usmDHUserAuthKeyChange, pointer
to void usmDHUserPrivKeyChange, pointer to struct usmUser {..} next,
pointer to struct usmUser {..} prev}
"OID.xs", line 70: improper member use: value
"OID.xs", line 71: improper member use: label
"OID.xs", line 278: improper member use: parent
"OID.xs", line 278: warning: assignment type mismatch:
        pointer to struct tree {} "=" pointer to struct
netsnmp_oid_stash_node_s {unsigned long value, pointer to pointer to
struct netsnmp_oid_stash_node_s {..} children, unsigned int
children_size, pointer to struct netsnmp_oid_stash_node_s {..}
next_sibling, pointer to struct netsnmp_oid_stash_node_s {..}
prev_sibling, pointer to struct netsnmp_oid_stash_node_s {..} parent,
pointer to void thedata}
"OID.xs", line 283: improper member use: label
"OID.xs", line 284: improper member use: label
"OID.xs", line 284: improper member use: label
"OID.xs", line 299: undefined struct/union member: augments
"OID.xs", line 299: improper member use: augments
"OID.xs", line 299: warning: improper pointer/integer combination: arg #1
"OID.xs", line 301: improper member use: augments
"OID.xs", line 301: warning: improper pointer/integer combination: arg #1
"OID.xs", line 312: undefined struct/union member: indexes
"OID.xs", line 312: warning: improper pointer/integer combination: op "="
"OID.xs", line 312: improper member use: next
"OID.xs", line 312: warning: assignment type mismatch:
        pointer to struct index_list {} "=" pointer to struct usmUser
{pointer to unsigned char engineID, unsigned int engineIDLen, pointer
to char name, pointer to char secName, pointer to unsigned long
cloneFrom, unsigned int cloneFromLen, pointer to unsigned long
authProtocol, unsigned int authProtocolLen, pointer to unsigned char
authKey, unsigned int authKeyLen, pointer to unsigned long
privProtocol, unsigned int privProtocolLen, pointer to unsigned char
privKey, unsigned int privKeyLen, pointer to unsigned char
userPublicString, unsigned int userPublicStringLen, int userStatus,
int userStorageType, pointer to void usmDHUserAuthKeyChange, pointer
to void usmDHUserPrivKeyChange, pointer to struct usmUser {..} next,
pointer to struct usmUser {..} prev}
"OID.xs", line 321: undefined struct/union member: indexes
"OID.xs", line 321: warning: improper pointer/integer combination: op "="
"OID.xs", line 321: improper member use: next
"OID.xs", line 321: warning: assignment type mismatch:
        pointer to struct index_list {} "=" pointer to struct usmUser
{pointer to unsigned char engineID, unsigned int engineIDLen, pointer
to char name, pointer to char secName, pointer to unsigned long
cloneFrom, unsigned int cloneFromLen, pointer to unsigned long
authProtocol, unsigned int authProtocolLen, pointer to unsigned char
authKey, unsigned int authKeyLen, pointer to unsigned long
privProtocol, unsigned int privProtocolLen, pointer to unsigned char
privKey, unsigned int privKeyLen, pointer to unsigned char
userPublicString, unsigned int userPublicStringLen, int userStatus,
int userStorageType, pointer to void usmDHUserAuthKeyChange, pointer
to void usmDHUserPrivKeyChange, pointer to struct usmUser {..} next,
pointer to struct usmUser {..} prev}
"OID.xs", line 324: undefined struct/union member: ilabel
"OID.xs", line 324: warning: improper pointer/integer combination: arg #1
"OID.xs", line 332: improper member use: type
"OID.xs", line 332: warning: improper pointer/integer combination: arg #1
"OID.xs", line 342: undefined struct/union member: ranges
"OID.xs", line 342: improper member use: ranges
"OID.xs", line 342: non-unique member requires struct/union pointer: next
"OID.xs", line 342: left operand of "->" must be pointer to struct/union
"OID.xs", line 343: improper member use: ranges
"OID.xs", line 343: left operand of "->" must be pointer to struct/union
"OID.xs", line 343: improper member use: ranges
"OID.xs", line 343: left operand of "->" must be pointer to struct/union
"OID.xs", line 344: improper member use: ranges
"OID.xs", line 344: left operand of "->" must be pointer to struct/union
"OID.xs", line 349: undefined struct/union member: isimplied
cc: acomp failed for OID.c
*** Error code 2
make: Fatal error: Command failed for target `OID.o'
Current working directory /home/ejoehan/netsnmp/sparc/net-snmp-5.7.1/perl/OID
*** Error code 1
The following command caused the error:
cd OID && make -f Makefile all LIBPERL_A="libperl.a"
LINKTYPE="dynamic" OPTIMIZE="-O"
PREFIX="/opt/ericsson/prmc_netsnmp/perl"
make: Fatal error: Command failed for target `subdirs'
Current working directory /home/ejoehan/netsnmp/sparc/net-snmp-5.7.1/perl
*** Error code 1
The following command caused the error:
(cd perl ; make
LD_RUN_PATH="/opt/ericsson/prmc_netsnmp/lib:`/opt/ericsson/prmc_netsnmp/perl/bin/perl
-e 'use Config; print qq($Config{archlibexp}/CORE);'`") ; \
        if test $? != 0 ; then \
           exit 1 ; \
        fi
make: Fatal error: Command failed for target `perlmodules'
root@uranus>

------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to