[OpenAFS] AKLOG build error...
Jeffrey Hutzelman
jhutz@cmu.edu
Fri, 28 Apr 2006 19:37:33 -0400
On Friday, April 28, 2006 04:49:57 PM -0400 "Halter, Jonathan"
<jehalter@uncc.edu> wrote:
>> -----Original Message-----
>>
>> Yes, that's not surprising. There are autoconf macros
>> (src/cf/solaris-cc.m4, i think) which could be hooked in, or
>> better yet a
>> test which tries to determine if a gcc which supports
>> compiling Solaaris
>> kernel modules (and uses the requisite flags instead of cc flags in
>> libafs/MakefileProto.SOLARIS.in) would be nice, if someone
>> wants to do the
>> work on that and contribute it I will certainly find some
>> time to work
>> with them on it, but at the moment I don't have time to just
>> do the work.
>>
>> There's no point in testing. We know it really wants
>> /opt/SUNWspro/bin/cc.
>> If you want it to not want that, it's going to need some help.
>>
>> Derrick
>
> I am not necessarily interested in using gcc to compile openafs on
> Solaris.
>
> I just wanted to point out that since our Sun Studio compilers are not
> located in /opt/SUNWspro, I am used to explicitly setting
> CC=/apps/coe/bin/cc for configuring a package to use Sun's cc on our
> system. This does not seem to work for openafs's configure. It insists
> on using /opt/SUNWspro/bin/cc instead of obeying the location (
> CC=/apps/coe/bin/cc ) that I've tried to set.
Ok; it boils down to this...
The build process currently uses one compiler for everything.
To build the kernel, that compiler _must_ be Sun's CC; gcc won't work.
Unfortunately, configure is often overly agressive about finding a gcc
instead of the compiler we want, especially since it likes to look in
/usr/local, and likes to look for 'gcc', and the Sun compiler is generally
someplace that configure won't find on its own.
So, we completely ignore configure and use a compiler of our choosing. At
present, this is hard-coded; there is no way to override it from the
command line. In the long run, we'd like to compile user-mode code with
the compiler configure finds, and kernel code with the Sun compiler, and
give you a way to tell configure where the latter is located. For the
moment, none of the code required to do that has been written, so until
someone who understands the problem (or can gain an understanding) has some
time to spend on it, we're stuck with things the way they are now.
To work around the problem, you will want to edit src/cf/osconf.m4, find
the stanza for sun4x_59 or whatever Solaris you're using, and change the
definitions of CC, CCOBJ, and MT_CC to point to whereever your compiler
really is. Then rebuild the configure script by running regen.sh in the
top level (for that you'll need autoconf and automake installed). You may
_also_ have to set CC in configure's environment or on the command line, to
make the tests work.
Yes, this sucks. That's what you get for not installing the compiler where
Sun thinks you should. I have the same problem, and I patch around it in
the same way every time.
-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
Sr. Research Systems Programmer
School of Computer Science - Research Computing Facility
Carnegie Mellon University - Pittsburgh, PA