tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PCC in build.sh




> The build system currently doesn't provide itself with hooks for an
> alternative compiler.  Here's what I did for PCC:
>
> - HAVE_GCC and HAVE_PCC variables  control which compiler will be
> used.  defaults to HAVE_GCC = 4

I'll note that support for gcc 3 isn't supported anymore.

> - MKPCC variable controls whether PCC is compiled during the build
>
> For build.sh:
>
> - PCC compiles the do-gnu-lib-crtstuff4 target, although this code
> actually appears to be NetBSD code, not GNU code.
> - there are no c++ nor objc compilers in PCC, so these host tools use
> false(1)
> - a directory tools/pcc is created to build a host tool
>
> It seems to work reasonably well.  Is there a fundamental problem
> with this approach?

See below.

[..]
> @@ -358,20 +369,48 @@
>      @true
>  .endfor
>

The following patch isn't correct, gnu/lib/crtstuff4 and gnu/lib/ libgcc4 have to be keept in that order. And LIBGCC_EXT isn't needed anymore, where removing
the gcc3 support should be done in another step.

I would add something like this before the 'for dir' loop (not tested):

.if defined(HAVE_GCC)
BUILD_CC_LIB= gnu/lib/libgcc${LIBGCC_EXT}
.elif defined(HAVE_PCC)
BUILD_CC_LIB= dist/pcc-libs
.endif

and then keep the crtstuff entry and use ${BUILD_CC_LIB} instead of gnu/lib/libgcc${LIBGCC_EXT}

Alternative use this to replace 'gnu/lib/crtstuff${LIBGCC_EXT} gnu/ lib/libgcc${LIBGCC_EXT}':

.if defined(HAVE_GCC)
BUILD_CC_LIB= gnu/lib/crtstuff${LIBGCC_EXT}
BUILD_CC_LIB+= gnu/lib/libgcc${LIBGCC_EXT}
.elif defined(HAVE_PCC)
BUILD_CC_LIB= gnu/lib/crtstuff${LIBGCC_EXT}
BUILD_CC_LIB+= dist/pcc-libs
.endif

Many thanks for your feedback.  I have implemented your recommendations.

You haven't changed gnu/lib/Makefile for adding HAVE_PCC support there, since
crtstuff4 is needed in the non MKGCC case.

After mrg's comments, I'll build crtstuff from pcc-libs rather than relying on gcc crtstuff4. I've also moved pcc from dist/ into external/bsd/pcc/dist which greatly simplified building pcc-specific crtstuff.




Home | Main Index | Thread Index | Old Index