I'm working on a Fujitsu-Siemens PrimePower platform (SPARC64), running SunOS5.8. I've downloaded the SUNWsasdk 1.0.3 development kit and have built a subagent.
When compiled without any particular options, my subagent is a 32bits executable. A "get" operation works perfectly for all types of MIB objects it handles (single variables or tables, integers or strings).
But when I compile it in 64 bits ("-KV9" option for CFLAGS & LDFLAGS), "get" operations fail for tables-type MIB objects defined as a string. A core dump is created, from which I show the backtrace below:
(__align_cpy_1 + 0x1a4) ldub [%o1+%g5],%o4
#0 0xffffffff7de3b688 (__align_cpy_1 + 0x1a4) (0x105df0,0xffefa210,0x7,0x0,0x3,
#1 0xffffffff7f20a464 (agent_get_next_loop + 0xac4) (0x1088f0,0x10,0x1088e0,
#2 0xffffffff7f20a1f8 (agent_get_next_loop + 0x858)
#3 0xffffffff7f209950 (agent_get_next + 0xe8)
#4 0xffffffff7f209740 (agent_process + 0x214)
#5 0xffffffff7f20bc08 (snmpd_loop + 0x220)
#6 0xffffffff7f20c2ec (sap_main + 0x4d8)
#7 0x0000000100001074 (main + 0x34)
Have you got any idea of why this doesn't work in 64 bits? The "libssagent.so" and "libssasnmp.so" libraries used are the 64bits ones, as well as all the other libraries dynamically linked to the subagent executable. I've noticed that the master agent "snmpdx" is a 32-bits executable.
Thanks for your help!