From owner-freebsd-current Tue Jun 16 05:25:38 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id FAA26827 for freebsd-current-outgoing; Tue, 16 Jun 1998 05:25:38 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from spinner.netplex.com.au (spinner.netplex.com.au [202.12.86.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id FAA26816 for ; Tue, 16 Jun 1998 05:25:34 -0700 (PDT) (envelope-from peter@netplex.com.au) Received: from spinner.netplex.com.au (localhost [127.0.0.1]) by spinner.netplex.com.au (8.8.8/8.8.8/Spinner) with ESMTP id UAA03749; Tue, 16 Jun 1998 20:22:33 +0800 (WST) (envelope-from peter@spinner.netplex.com.au) Message-Id: <199806161222.UAA03749@spinner.netplex.com.au> X-Mailer: exmh version 2.0.2 2/24/98 To: Hostas Red cc: current@FreeBSD.ORG Subject: Re: ssh 1.2.25: port broken on current In-reply-to: Your message of "Tue, 16 Jun 1998 11:35:19 +0400." Date: Tue, 16 Jun 1998 20:22:33 +0800 From: Peter Wemm Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 Netplex Consulting To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message