I had the same problem compiling openssh-3.0.2p1 statically on Slackware 8.0.
The problem is caused by the redefinition of opterr, optind, and optopt in
openbsd-compat/getopt.c (previously defined in libc).
Here's how I was able to get it to build statically:
1. ./configure
2. edit openbsd-compat/getopt.c
45 //int opterr = 1, /* if error message should be printed */
46 // optind = 1, /* index into parent argv vector */
47 // optopt, /* character checked for validity */
48 int optreset; /* reset getopt */
3. edit openbsd-compat/Makefile
Added '-I/usr/include' to the CFLAGS variable.
4. edit Makefile
Added '-static' to the CC and LD variables
5. make
-Tony
>I'm currently running linux mandrake 8.0 and a redhat 7.1. I tried to
>compiled openssh 3.0 static without any succes, an error seems to appear in
>ssh.c, optreset declaration. Openssh 2.9 compiled statically without any
>problems: LDFLAGS=-static, CFLAGS=-static worked fine. Currently im no more
>able to compile it statically, the main error seems due to openbsd-compat..
>Of course if I dont use "-static" the compilation is okay.
>Does anyone have any ideas on how to compile cleanly OpenSSH, statically?