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 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.
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
http://lists.mindrot.org/mailman/lis...enssh-unix-dev