Solaris Problem
Michael H. Warfield
mhw at wittsend.com
Wed Jan 17 08:29:07 EST 2001
On Tue, Jan 16, 2001 at 01:03:28PM -0800, Brian Friday wrote:
> On Tue, 16 Jan 2001, Michael H. Warfield wrote:
> > Just solved my own problem thanks to the OpenSSH mailing list
> > archives. I had to edit the Makefile and change "-I/usr/include" to
> > "-i/usr/include" (include the system directories AFTER the compiler
> > include directories) and then everything built correctly.
> > The message in the archives about this problem was dated 03/14/2000.
> > Why hasn't this made it into the sources?
> I've been compiling openssh on solaris machines (OS 2.5.1, 2.6, 2.7, 2.8
> all sparc) for at least a year and I've never come across that problem
> using either Sun's C compiler product or multiple versions of GCC.
And I can take a wild guess why... Check in /usr/local/include
and see if you have the file "stdarg.h". If you do, that's why. It's
a development environment dependency.
The stdarg.h that's in /usr/include won't work with gcc because it
tries to use some funky buildin for va_start. You apparently need the
gcc version of stdarg.h instead of the Solaris version. The stock Makefile
contains the sequence "-I/usr/local/include -I/usr/include" so, if stdarg.h
is in /usr/local/include, that version should get included instead of the one
in /usr/include.
My systems (2 of them) consist of fresh Solaris 2.7 (11/99)
installs onto which I installed the gcc from sunfreeware.com using pkgadd.
It does NOT install stdarg.h in /usr/local/include, but instead leaves
it in /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/{Compiler_ver}/include.
I built up two fresh sparc systems this way and both were broken the
same way when it came to building OpenSSH.
I have confirmation from several other people in my office who have
run into identical problems on Sparc systems.
Interestingly enough, OpenSSL compiles even though it uses
va_start/va_list/va_end in crypto/bio/b_print. That gave me the hint
that maybe the "-I/usr/include" in OpenSSH should even be there AT
ALL. This turns out to be the case. Removing the "-I/usr/include"
instead of changing it to "-i/usr/include" has the same effect.
The fact that your setup worked just means that somewhere in
your include path you have a working stdarg.h prior to the one in
/usr/include.
> Sincerely,
> Brian Friday
> Systems Administrator
> La Sierra University
> (909) 785-2554 x2
Mike
--
Michael H. Warfield | (770) 985-6132 | mhw at WittsEnd.com
(The Mad Wizard) | (678) 463-0932 | http://www.wittsend.com/mhw/
NIC whois: MHW9 | An optimist believes we live in the best of all
PGP Key: 0xDF1DD471 | possible worlds. A pessimist is sure of it!
More information about the openssh-unix-dev
mailing list