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