Date: Tue, 16 Jun 1998 20:22:33 +0800 From: Peter Wemm <peter@netplex.com.au> To: Hostas Red <kong@kong.spb.ru> Cc: current@FreeBSD.ORG Subject: Re: ssh 1.2.25: port broken on current Message-ID: <199806161222.UAA03749@spinner.netplex.com.au> In-Reply-To: Your message of "Tue, 16 Jun 1998 11:35:19 %2B0400." <Pine.BSF.3.96.980616112851.5743K-100000@kong.dorms.spbu.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Hostas Red wrote: > Hi! > > On Tue, 16 Jun 1998, Peter Wemm wrote: > > > > sshconnect.o: Undefined symbol `___inet_addr' referenced from text segmen t > > > sshconnect.o: Undefined symbol `___inet_ntoa' referenced from text segmen t > > > sshconnect.o: Undefined symbol `___inet_ntoa' referenced from text segmen t > > [...] > > > This is an include files / libc version mismatch. It looks like you've > > updated the system includes, but have not updated libc yet. Check the > > timestamps on /usr/include/arpa/inet.h and /usr/lib/libc.so.3.1 - they > > should be around the same. > > Yes, it is. But - /usr/lib/aout/libc.so.3.1 (jun,16) almost the same date > as /usr/include/arpa/inet.h (jun 12), but /usr/lib/libc.so.3.1 is > (may,26). But - /usr/lib/aout in LIBPATH, not /usr/lib. Whats the problem? At a guess, your ldconfig path in /etc/rc is putting /usr/lib first so you're getting the "old" library... If you do a grep inet_ntoa /usr/include/arpa/inet.h, you'll get: peter@overcee[8:15am]~src-133> grep inet_ntoa /usr/include/arpa/inet.h #define inet_ntoa __inet_ntoa [..] And if you then look at the libraries: peter@overcee[8:16pm]~src-135> nm /usr/lib/libc.so.3.1 | grep inet_ntoa 0003e1ac T _inet_ntoa peter@overcee[8:16pm]~src-136> nm /usr/lib/aout/libc.so.3.1 | grep inet_ntoa U ___inet_ntoa 00044064 T ___inet_ntoa 00000000 I _inet_ntoa The 'I' flag is "indirect", kinda like a backwards compatability alias so that you can run old programs that are linked against "_inet_addr". New programs will be compiled to use "___inet_addr" because of the #define in arpa/inet.h. Why do this? It's part of the bind 8 resolver interface.. Paul Vixie has done this in the name of posix linker namespace protection. If you happened a program that was unrelated to inet/socket/nameserver/etc, and it had it's own "inet_ntop()" function for some reason, under the old system you'd get a conflict, but under the new system you should be OK. I'm not sure that it's worth the hassle, but I asked around and the consensis was to go with the flow. > Adios, > /KONG Cheers, -Peter -- Peter Wemm <peter@netplex.com.au> Netplex Consulting To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199806161222.UAA03749>