I am unable to compile openssh v3.9p1 or 4.0p1 on Solaris (using GNU gcc,
ld, as, make). 3.8p1 and earlier versions are ok.

[...]
In file included from bsd-arc4random.c:18:
.../log.h: In function `fatal':
.../log.h:56: warning: empty declaration
.../log.h:65: error: parse error before "volatile"
.../log.h:65: error: old-style parameter declarations in prototyped function definition
.../log.h:56: error: parameter name omitted
bsd-arc4random.c:20: error: `rcsid' undeclared (first use in this function)
bsd-arc4random.c:20: error: (Each undeclared identifier is reported only once
bsd-arc4random.c:20: error: for each function it appears in.)
bsd-arc4random.c:20: warning: left-hand operand of comma expression has no effect
bsd-arc4random.c:20: error: parse error before '}' token
make[1]: *** [bsd-arc4random.o] Error 1

I noticed that the declaration of fatal and cleanup_exit in log.h has been
changed from __attribute__ to __dead __attribute__, but I don't know what
difference that should make.

If I remove the two "__dead"s in the declarations of fatal and
cleanup_exit in log.h (i.e., reverting log.h to v3.8p1), v4.0p1 compiles
and runs fine.

If anyone has advice on how to determine the actual cause of the compile
failure, and how to resolve the problem, I am thankful for any input.

Sigmund Straumsnes