I have a customer running a file parsing program called cleanfileg and as of the last update, he is getting date-format error when parsing a file.
What's bizarre is that we're both running the same program, on the same file, with the same builds of gcc, pthread, libc etc. on the same release of RHEL64 (5.4) and I cannot replicate his issue. He can roll back to last month's version of cleanfileg and everything works fine, so I'm pretty sure that a line-by-line through the source will likely find me an answer, but what's confusing to me is that on a whim, I asked him to run ldd on his executable to see if he was pulling in some different verions of the shared objects.
His-
# ldd cleanfileg
linux-vdso.so.1 => (0x00002ad4c98d1000)
libmdGeo.so => /tools/clean_address/bin/libmdGeo.so (0x00002ad4c98d6000)
libmdName.so => /tools/clean_address/bin/libmdName.so (0x00002ad4c9a70000)
libmdPhone.so => /tools/clean_address/bin/libmdPhone.so (0x00002ad4c9df1000)
libmdAddr.so => /tools/clean_address/bin/libmdAddr.so (0x00002ad4ca28c000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003833600000)
libAddressDoctor5.so => /tools/clean_address/bin/libAddressDoctor5.so (0x00002ad4ca96d000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003831600000)
libm.so.6 => /lib64/libm.so.6 (0x000000382b200000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003830a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000382ba00000)
libc.so.6 => /lib64/libc.so.6 (0x000000382ae00000)
librt.so.1 => /lib64/librt.so.1 (0x000000382d200000)
/lib64/ld-linux-x86-64.so.2 (0x000000382aa00000)
-Mine
#ldd cleanfileg
libmdGeo.so (0x00002ab5d3342000)
libmdName.so (0x00002ab5d34cf000)
libmdPhone.so (0x00002ab5d3850000)
libmdAddr.so (0x00002ab5d3ceb000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00000034bde00000)
libAddressDoctor5.so (0x00002ab5d43bf000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000034c9000000)
libm.so.6 => /lib64/libm.so.6 (0x00000034b6200000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000034c7c00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000034b6a00000)
libc.so.6 => /lib64/libc.so.6 (0x00000034b5e00000)
librt.so.1 => /lib64/librt.so.1 (0x00000034b6e00000)
/lib64/ld-linux-x86-64.so.2 (0x00000034b5a00000)
Is linux-vdso.so.1 something that is needed (or not) as dictated by configuration somehow? How/why would it be required by what other wise seem to be identical machines running identical code?
Any next steps anyone could suggest for debugging?
Is linux-vdso.so.1 something that is needed (or not) as dictated by configuration somehow?
The linux-vdso.so.1
is a "library" that is injected into every process by the kernel. Read more about it here.
You likely have different kernel versions, which would explain why you are seeing different ldd
output.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With