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