I have an issue building net-snmp v5.6. It appears that there are some
incompatible files in the source tree where one file defines a macro as a
constant and another file uses the same name as a struct field name. Here are
my configure arguments:
CONFIGURE_ARGS="--enable-ipv6 --enable-shared --enable-manuals
--disable-embedded-perl --without-perl-modules
--with-mibs=\"SNMP-VIEW-BASED-ACM-MIB:SNMP-USER-BASED-SM-MIB:NOTIFICATION-LOG-MIB:ALARM-MIB:DISMAN-EXPRESSION-MIB:DISMAN-EVENT-MIB:IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB:HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES:EtherLike-MIB:MAU-MIB:RMON-MIB:ENTITY-SENSOR-MIB:ENTITY-MIB:SNMP-TARGET-MIB:SNMP-NOTIFICATION-MIB:ITU-ALARM-TC-MIB:UCD-SNMP-MIB:NET-SNMP-AGENT-MIB:NET-SNMP-MIB:NET-SNMP-TC:SNMP-MPD-MIB:SANDVINE-MIB\"
--with-mib-modules=\"mibII/ifmib mibII/ipv6 ucd-snmp/diskio \"
--with-out-mib-modules=\"if-mib/ifmib notification-log-mib
notification/snmpNotifyTable notification target\" --with-cflags=\"$USE_DEBUG
-O2 -I$BUILD_DIR_INCLUDE\" --with-gnu-ld --with-transports=\"UDP TCP UDPIPv6
TCPIPv6 Unix\" --with-install-prefix=\"$BUILD_DIR_INSTALL\" --with-libs=\"-lkvm
-ldevstat -lm\" --disable-local-smux --with-libwrap
--with-openssl=\"/usr/local/openssl\" --with-logfile=\"\" --with-defaults"
The issue occurs when I add in mibII/ifmib or mibII/ipv6 using
-with-mib-modules. If I don't include those modules everything builds fine. You
will find below the output of a grep I did for the macro/struct-fields in
question. I also included some output from gcc -E to illustrate the issue.
mibgroup/mibII/ifmib.h:#define ifLinkUpDownTrapEnable 14
mibgroup/mibII/ifmib.c: {ifLinkUpDownTrapEnable, ASN_INTEGER, RWRITE,
var_ifXEntry, 3, {1,1,14}},
mibgroup/mibII/ifmib.c: case ifLinkUpDownTrapEnable:
mibgroup/if-mib/ifTable/ifTable_data_access.c: if
(rowreq_ctx->data.ifLinkUpDownTrapEnable == 1) {
mibgroup/if-mib/ifTable/ifTable.h: *
ifLinkUpDownTrapEnable(14)/INTEGER/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
mibgroup/if-mib/ifTable/ifTable.h: unsigned long ifLinkUpDownTrapEnable;
mibgroup/mibII/ifmib.h:#define ifAlias 18
mibgroup/mibII/ifmib.h:extern WriteMethod write_ifAlias;
mibgroup/mibII/ifmib.c: {ifAlias, ASN_OCTET_STR, RWRITE,
var_ifXEntry, 3, {1,1,18}},
mibgroup/mibII/ifmib.c:/* ifAlias char array */
mibgroup/mibII/ifmib.c: case ifAlias:
mibgroup/mibII/ifmib.c: *write_method = write_ifAlias;
mibgroup/mibII/ifmib.c:write_ifAlias(int action,
When building with -E flag you can see that some of the struct members have
been preprocessed to the macro definitions above:
# 41 "./mibgroup/if-mib/ifTable/ifTable.h" 2
void init_ifTable(void);
void shutdown_ifTable(void);
# 76 "./mibgroup/if-mib/ifTable/ifTable.h"
typedef netsnmp_data_list ifTable_registration;
# 87 "./mibgroup/if-mib/ifTable/ifTable.h"
typedef struct ifTable_data_s {
# 236 "./mibgroup/if-mib/ifTable/ifTable.h"
unsigned long 14;
# 253 "./mibgroup/if-mib/ifTable/ifTable.h"
char 18[64];
unsigned long ifAlias_len;
unsigned long 19;
netsnmp_interface_entry *ifentry;
} ifTable_data;
The compiler error:
/bin/bash ../libtool --mode=compile gcc -I../include -I. -I../agent
-I../agent/mibgroup -I../snmplib -DNETSNMP_ENABLE_IPV6 -g -O2
-I/tmp/snmp.dave/include -Ufreebsd6 -Dfreebsd6=freebsd6 -c -o agent_index.lo
agent_index.c
libtool: compile: gcc -I../include -I. -I../agent -I../agent/mibgroup
-I../snmplib -DNETSNMP_ENABLE_IPV6 -g -O2 -I/tmp/snmp.dave/include -Ufreebsd6
-Dfreebsd6=freebsd6 -c agent_index.c -fPIC -DPIC -o .libs/agent_index.o
In file included from ../agent/mibgroup/mib_module_includes.h:92,
from agent_index.c:44:
./mibgroup/if-mib/ifTable/ifTable.h:236: error: syntax error before numeric
constant
./mibgroup/if-mib/ifTable/ifTable.h:259: error: syntax error before numeric
constant
*** Error code 1
Stop in /tmp/snmp.dave/code/agent.
*** Error code 1
Does anyone have any idea on how to get around this issue? Is it a bug or am I
perhaps trying to use an invalid mib module configuration?
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders