I have written a utility using OpenIPMI library on RHEL 5.5 x86_64. I build 64 bit binary and it worked without issues.
When I compiled the same code to have 32 bit binary(all dependencies resolved) and executed it, following error was thrown
Code = samples given in this doc http://openipmi.sourceforge.net/IPMI.pdf
# ./a.out smi 0
gdbm fatal: read error <<--sometimes this is lseek error instead of read.
following is the trace after putting a breakpoint in lseek.
#0 0x0085add0 in lseek () from /lib/libpthread.so.0
#1 0xf7df61fc in gdbm_open () from /usr/lib/libgdbm.so.2
#2 0xf7e4e35e in ?? () from /usr/lib/libOpenIPMIposix.so.0
#3 0xf7e4e476 in ?? () from /usr/lib/libOpenIPMIposix.so.0
#4 0xf7e987a3 in ?? () from /usr/lib/libOpenIPMI.so.0
#5 0xf7ea4f29 in opq_new_op_prio () from /usr/lib/libOpenIPMI.so.0
#6 0xf7ea4fe2 in opq_new_op () from /usr/lib/libOpenIPMI.so.0
#7 0xf7e99f1e in ?? () from /usr/lib/libOpenIPMI.so.0
#8 0xf7e94f13 in ?? () from /usr/lib/libOpenIPMI.so.0
#9 0xf7e885a8 in ipmi_domain_pointer_cb () from /usr/lib/libOpenIPMI.so.0
#10 0xf7e9333f in ipmi_mc_pointer_cb () from /usr/lib/libOpenIPMI.so.0
#11 0xf7e97300 in ipmi_sdr_fetch () from /usr/lib/libOpenIPMI.so.0
#12 0xf7e8f1a5 in ?? () from /usr/lib/libOpenIPMI.so.0
#13 0xf7e94e23 in ?? () from /usr/lib/libOpenIPMI.so.0
#14 0xf7e88936 in ?? () from /usr/lib/libOpenIPMI.so.0
#15 0xf7e8f710 in ?? () from /usr/lib/libOpenIPMI.so.0
#16 0xf7e84ed5 in ipmi_handle_rsp_item_copymsg () from /usr/lib/libOpenIPMI.so.0
#17 0xf7ef3905 in ?? () from /usr/lib/libOpenIPMI.so.0
#18 0xf7e4df0d in ?? () from /usr/lib/libOpenIPMIposix.so.0
#19 0xf7e4fef4 in ?? () from /usr/lib/libOpenIPMIposix.so.0
#20 0xf7e50494 in sel_select_loop () from /usr/lib/libOpenIPMIposix.so.0
#21 0xf7e4dfaa in ?? () from /usr/lib/libOpenIPMIposix.so.0
#22 0x08049643 in main (argc=3, argv=0xfff59194) at sample.c:378
(gdb)
Then I tried to find 32 bit openipmish(default is 64 bit on 64 bit RHEL), didn't have 32 bit images for RHEL5 so I used binaries and libraries of the same version from centOS repos(didn't install the RPMs, only extracted the files from rpms in /tmp and changed LD_LIBRARY_PATH to point to the new libraries).
For this configuration I got the same error.
# ./usr/bin/openipmish
> domain open test smi 0
Event
Object Type: Domain
Name: test
Operation: Add
> gdbm fatal: lseek error
#
Has anybody else faced this issue in the past?
Is it a good configuration(writing/running 32 bit IPMI programs on x64 platforms)?
Any solutions?
Thanks
Sri
_______________________________________________ Redhat-devel-list mailing list Redhat-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/redhat-devel-list