> From: Guy Harris [mailto:[EMAIL PROTECTED]
> Sent: Thursday, June 14, 2007 1:18 AM
> 
> On Jun 13, 2007, at 9:32 AM, Jonathan Gruenhut wrote:
> 
> So, if you link with "-lpcap", the executable should be bound to
> libpcap.so.0, *NOT* libpcap.so.0.8.3 or libpcap.so.0.9.4 or whatever.
> 
> You *did* link with "-lpcap", not "-lpcap.0.8.3" or something such as
> that, right?

Yes.  (If you like anecdotes, know that after sending my original message, I 
went home, finished my day, and got into bed, and then the awful thought jolted 
me awake: I had forgotten to include my compile/link command line in my email!  
It's true that I didn't have too much trouble falling asleep, though.)

> Are the versions of libpcap on the system the ones that came with the
> system, or did you build and install your own shared libpcap library
> in /usr/lib?

They're the ones that came with the system.  It occurs to me that if I had done 
it myself, there wouldn't be an incompatibility, so I guess it's good that I 
noticed this before I try to use the code in other places.

This is a good a point as any to thank Alex Dupuy for his helpful message.  I 
ran objdump -p on each of the 2 pcap libraries, and got
SONAME      libpcap.so.0.8.3
SONAME      libpcap.so.0.9.4
for them respectively, so it seems that that is the problem (or at least -a- 
problem).

He also mentioned that libtool can correct the SONAME tag.  However, from my 
understanding of libtool I would have to recompile the libraries to do that.  
These machines don't belong to me, so I'm hesitant to make any lasting changes. 
 (On the other hand, if it's really necessary, I'm sure I could get either 
permission or forgiveness.)

> > The so files:
> >
> > [EMAIL PROTECTED] ~]$ ls -l /usr/lib/*pcap*
> > lrwxrwxrwx 1 root root     12 Jun 13 20:27 /usr/lib/libpcap.so ->
> > libpcap.so.0
> > lrwxrwxrwx 1 root root     14 Jun 13 21:22 /usr/lib/libpcap.so.0 ->
> > libpcap.so.0.9
> > lrwxrwxrwx 1 root root     16 May  3 19:03 /usr/lib/libpcap.so.0.9 -
> > > libpcap.so.0.9.4
> > -rwxr-xr-x 1 root root 168544 Jul 13  2006 /usr/lib/libpcap.so.0.9.4
> 
> What do "ls -l /usr/lib/libc*" and "/usr/lib/libnsl*" print?

For libc, the only relevant .so seems to be
-rw-r--r--  1 root root  204 Mar  8  2006 /usr/lib/libc.so
-rw-r--r-- 1 root root     238 Oct  8  2006 /usr/lib/libc.so
on the two machines.
(I'm ignoring cruft, crypt, curses, etc., of course.)

For libnsl, it seems a bit more interesting:
-rw-r--r-- 1 root root 116158 Oct  8  2006 /usr/lib/libnsl.a
lrwxrwxrwx 1 root root     21 May  3 19:22 /usr/lib/libnsl.so -> 
../../lib/libnsl.so.1

-rw-r--r--  1 root root 105K Mar  8  2006 /usr/lib/libnsl.a
lrwxrwxrwx  1 root root   21 Oct 12  2006 /usr/lib/libnsl.so -> 
../../lib/libnsl.so.1

Here, objdump shows me that
  SONAME      libnsl.so.1

And there's an additional section, absent from the pcap dump:

Version definitions:
1 0x01 0x09a77941 libnsl.so.1
2 0x00 0x0d696910 GLIBC_2.0
3 0x00 0x0d696911 GLIBC_2.1
        GLIBC_2.0
4 0x00 0x0d696912 GLIBC_2.2
        GLIBC_2.1
5 0x00 0x0963cf85 GLIBC_PRIVATE
        GLIBC_2.2

Or:
Version definitions:
1 0x01 0x09a77941 libnsl.so.1
2 0x00 0x0d696910 GLIBC_2.0
3 0x00 0x0d696911 GLIBC_2.1
        GLIBC_2.0
4 0x00 0x0d696912 GLIBC_2.2
        GLIBC_2.1

I fully realize that this topic is moving farther and farther from packet 
capture, so I would of course be delighted to get a pointer to more information 
in a more appropriate place.  (If in the libtool manual, please say exactly 
where, because I couldn't find something matching my situation.)

Thanks, all!
Jonathan

-
This is the tcpdump-workers list.
Visit https://cod.sandelman.ca/ to unsubscribe.

Reply via email to