Building without collect2

Michael K. Elwood
Wed Oct 6 08:32:00 GMT 1999

M. R. Brown <> wrote:
> I'm trying to do a Canadian cross from a cygwin (i686-pc-cygwin32) build
> machine for a mingw32 (i386-mingw32) host to a mips (mips-sony-psx)
> target.  I am able to build the build X target and build X host just fine,
> but when I try to build the host X target I get stuck because i386-mingw32
> tries to build collect2, with only three problems: `pipe()', `kill()', and
> `fork()' aren't supported on i386-mingw32.  This is significant in the
> fact that when building from i686-pc-cygwin32 to i386-mingw32, collect2
> isn't built anyway.  But it is built for i686-pc-cygwin32 to
> mips-sony-psx, so it seems isolated to i686-pc-cygwin32.  So why does
> i386-mingw32 try to build it if it's not supposed to exist natively for
> it?

Building gcc on a cygwin machine? You are a braver man than I. Linux just
gives me that warm fuzzy feeling... :)

> I've tried adding `use_collect2=no' to the target specification in gcc's
> configure and, to no avail.  Do I need to specify it in the
> toplevel configure file?  Or does it need to go where i386-mingw32 is
> specified?  Or should I try to hack the configured Makefile and take
> collect2 out altogether?  Any suggestions would be appreciated, thanks.

This was recently discussed on the cygwin mailing list. After you configure,
just edit your <builddir>/gcc Makefile so that the USE_COLLECT2 line reads
like this:


Then all should be build properly.

Hope this helps.

Best regards,


Want more information?  See the CrossGCC FAQ,
Want to unsubscribe? Send a note to

More information about the crossgcc mailing list