Testing for the 4.4p1 release

Darren Tucker dtucker at zip.com.au
Sat Sep 2 14:52:27 EST 2006


santhi wrote:
>> On Thu, 31 Aug 2006, santhi wrote:
>>
>>> /usr/ccs/bin/ld: Unsatisfied symbols:
>>>    ntohl (first referenced in sshconnect.o) (code)
>>>    ntohs (first referenced in ssh.o) (code)
>>>    htonl (first referenced in sshconnect.o) (code)
>>>    htons (first referenced in
>>> openbsd-compat//libopenbsd-compat.a(rresvport.o)) (code)
>>> *** Error exit code 1
[...]
> Affected files are
> 
> 01) channels.c
> 02) ssh.c
> 03) openbsd-compat/bindresvport.c
> 04) openbsd-compat/fake-rfc2553.c
> 05) openbsd-compat/getrrsetbyname.c
> 06) openbsd-compat/rresvport.c
> 07) sshconnect.c
> 08) openbsd-compat/port-tun.c
> 09) ssh-rand-helper.c
> 10) ssh-keyscan.c
> 11) openbsd-compat/bsd-cray.c
> 12) openbsd-compat/inet_aton.c
> 
> Among the above files, the patch is applied to "bindresvport.c" and
> "rresvport.c". But we get the same linker error,
> while we compile other files. Any suggestions?

Thanks for the report.

Looking at the headers on HP-UX, htonl and friends are in arpa/inet.h 
(if _XOPEN_SOURCE_EXTENDED is defined) or netinet/in.h (if 
XOPEN_SOURCE_EXTENDED is *not* defined).

So, since we define _XOPEN_SOURCE_EXTENDED, basically any place where we 
include netinet/in.h for the htonl macros we also need to include 
arpa/inet.h.  I'll go through your list of affected files.

I'm not sure why I've not seen  that problem on HP-UX with gcc, though.

> Note: We found that <arpa/inet.h> file is missing in includes.h file.

We're trying to move away from a one-includes-fits-all approach and put 
the headers in the .c files where they're required.  Reducing the scope 
of the includes should reduce the chance of unexpected interactions 
between them.

-- 
Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4  37C9 C982 80C7 8FF4 FA69
     Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.



More information about the openssh-unix-dev mailing list