This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Building egcs 2.95 on UnixWare 2.1.3


Robert Lipe wrote:
> 
> > because it's building libobjc.  This is part of the weird bit, because I
> > passed "--enable-languages=c++" to configure -- shouldn't that exclude
> > Objective C from the build?  I also noticed that it successfully built
> > "chill", something else I don't want.
> 
> For whatever reason, I think you have doodoo left over in your tree.
> Perhaps they're from your previous build attempts. [ Yes, 'make
> distclean' should clean up after itself but the reality is that it
> doesn't and won't for 2.95. ]

Well, I just did an "rm -rf egcs", then checked the code back out again
and retried the build.  Specifically:

bash$ export CC=cc
bash$ ./configure --enable-languages=c++ --enable-shared
bash$ [diddle texinfo/config.h and texinfo/lib/memcpy.c so it compiles]
bash$ make bootstrap

Once again, it dies while "Configuring in
i386-pc-sysv4.2uw2.1.3/libobjc", muttering something about "checking if
compiler cc1obj has been built... no".

I then distcleaned it again and rebuilt without limiting the languages
it generated.  I figured that maybe it was getting confused: maybe it
was correctly not building the Objective C compiler, and then trying to
build the Objective C library, then dying because it realizes that it
can't compile Objective C code.  By building all the languages, (even
though I don't want most of them) it should at least get far enough to
finish building the ones I _do_ want.  

Result: It works!  At least, "hello, world!" compiles, links and runs. 
(And it's _sooo_ nice being able to compile a C++ version of said
program that isn't 170K stripped.  (Shared libraries work!))

I then applied Robert L.'s fixincludes patch from 2 Jun 1999, cleaned
and re-bootstrapped the tools, and then "make installed" the result.  I
then tried to compile my "multipinger" program, and it failed on the
htons() stuff.  I looked at
/usr/local/lib/gcc-lib/i386-pc-sysv4.2uw2.1.3/gcc-2.96/include/sys/byteorder.h
and found that the relevant prototypes take unsigned int arguments,
rather than unsigned shorts.  I then fixed this header by hand --
multiping compiles and runs successfully.  That tests threads and raw
ICMP sockets.

You might offer the following build procedure in the platform-specific
doc file:

ksh$ export CC=cc
ksh$ ./configure --enable-shared
ksh$ [diddle texinfo/config.h and texinfo/lib/memcpy.c so it compiles]
ksh$ make bootstrap
ksh$ su
Password:
ksh# make install

Then warn the reader not to add a --enable-languages line, until/unless
we figure out what's going wrong here.

The third step can of course be left out if you figure out the
autoconf/memcpy problem.  Else, I can post diffs to config.h and
memcpy.c.

I am curious about one thing, though: why does it call itself gcc 2.96
when you say "gcc -v"?
 
> If not, you're going to have to debug it becuase I can't see the problem
> on a similar (albeit not identical) configuration.

Me not smart enough to debug compilers.  Me just an apps developer.  One
step up from VB user.  B-)
-- 
= Warren -- http://www.cyberport.com/~tangent/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]