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