[Nagiosplug-help] Problems with check_procs/pst3 on Solaris

Michael Beachler michaelbeachler at aol.com
Fri Oct 6 17:33:04 CEST 2006


Hello,

I am currently having problems getting check_procs/pst3 to work properly 
on both Solaris 7 and Solaris 8 boxes.

It appears that my box is running in 64-bit mode:

isainfo -v
64-bit sparcv9 applications
32-bit sparc applications

Here is the error that I receive:

check_procs -vvvv
CMD: /opt/bcs/packages/nagios-2.3.1/libexec/pst3
CRITICAL - Plugin timed out after 10 seconds

/opt/bcs/packages/nagios-2.3.1/libexec/pst3
/opt/bcs/packages/nagios-2.3.1/libexec/pst3: /dev/ksyms is not a 32-bit 
kernel namelist
pst3: Failed to open kernel memory: Error 0

Thinking that this was a 32-bit vs. 64-bit problem I decided to play 
around with pst3 a bit.  I downloaded the latest nagios-plugins-HEAD 
tarball.  I located the pst3.c file within the plugins-root dir and 
tried to compile it manually.

I am able to build the file manually by doing the following:

gcc -DLOCALEDIR=\"/usr/local/nagios/share/locale\" -DHAVE_CONFIG_H -I. 
-I. -I.. -I.. -I../lib -I../intl -I../plugins -I/usr/lib 
-I/usr/local/include  -I/usr/local/include  -g -O2 -c pst3.c

gcc -o pst3 pst3.o /usr/lib/libkvm.so.1

Now I have a pst3 executable and I can reproduce the error listed earlier:

bash-3.00# ./pst3
./pst3: /dev/ksyms is not a 32-bit kernel namelist
pst3: Failed to open kernel memory: Error 0

I attempted to build a 64 bit executable via the following command:

gcc -m64 -o pst3 pst3.o /usr/lib/libkvm.so.1

I get this error:

/usr/lib/libkvm.so.1: could not read symbols: File in wrong format
collect2: ld returned 1 exit status

I "think" the reason I get this error is due to the shared object file 
being a 32 bit file:

/usr/lib/libkvm.so.1:   ELF 32-bit MSB dynamic lib SPARC Version 1, 
dynamically linked, not stripped

I found a 64 bit shared object for libkvm located in /usr/lib/sparcv9:

/usr/lib/sparcv9/libkvm.so:     ELF 64-bit MSB dynamic lib SPARCV9 
Version 1, dynamically linked, not stripped

When I try to compile pst3 with the 64 bit shared object using this command:

gcc -m64 -o pst3 pst3.o /usr/lib/sparcv9/libkvm.so.1

I now get this error:

/opt/bcs/bin/ld: warning: sparc architecture of input file `pst3.o' is 
incompatible with sparc:v9 output
pst3.o:(.debug_aranges+0x10): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x10): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x14): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x280e): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x2812): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x2862): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x2866): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x28a0): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x28a4): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x28b3): relocation truncated to fit: R_SPARC_UA32 
against `.text'
pst3.o:(.debug_info+0x28b7): additional relocation overflows omitted 
from the output
collect2: ld returned 1 exit status

I don't have a whole lot of experience mucking with source code.  I did 
notice however at the top of the pst3.c file that the author has tested 
this in both 32-bit and 64-bit versions.

Anyone have any thoughts, suggestions, and/or ideas?

Thanks,

-Michael Beachler-






More information about the Help mailing list