All,

Another set of issues came up while compiling CollectD's SNMP plugin on Solaris 10 x64 with GCC, when using Solaris' build-in net-snmp libraries: net-snmp-config-(32|64) returns an invalid -R flag:

# /usr/sfw/bin/net-snmp-config-64 --libs
-R../lib/amd64 -xarch=amd64 -L/usr/sfw/lib/amd64 -lnetsnmp -lgen -lpkcs11 -lkstat -lelf -lm -ldl -lnsl -lsocket -ladm

However, "-R" paths must be absolute. This appears to be a long-standing known issue on the platform (at least since 2005):
http://comments.gmane.org/gmane.os.solaris.solarisx86/12708

A workaround would be to replace relative paths with /usr/sfw on Solaris 10 (at least when the -config binary is under /usr/sfw/bin/).

Rather than mess with the autoconf scripts (not my favorite thing to muck with), I created a wrapper bash script that fixes the --libs output: /usr/sfw/bin/net-snmp-config-${BITS} "$@" | sed -e 's/-R..\//-R\/usr\/sfw\//'



A second SNMP issue comes up when compiling for 64 bits on Solaris 10 with GCC - both --cflags and --libs return a GCC-incompatible architecture flag: -R../lib/amd64 -xarch=amd64 -L/usr/sfw/lib/amd64 -lnetsnmp -lgen -lpkcs11 -lkstat -lelf -lm -ldl -lnsl -lsocket -ladm

Again, the wrapper script/sed approach can be used for a workaround to strip it out (as I'm already specifying "-march=athlon64" in my CFLAGS:
/usr/sfw/bin/net-snmp-config-${BITS} "$@" | sed -e 's/-xarch=[^ ]* //'


These workaround wrappers can be combined:
#!/bin/bash
/usr/sfw/bin/net-snmp-config-${BITS} "$@" | sed -e 's/-R..\//-R\/usr\/sfw\//' -e 's/-xarch=[^ ]* //'


However, of course it would be best to integrate fixes for these Solaris 10-specific issues in the autoconf scripts - anyone up to the task?

Thanks,
Scott Severtson
Chief Architect
Digital Measures

_______________________________________________
collectd mailing list
[email protected]
http://mailman.verplant.org/listinfo/collectd

Reply via email to