From Fedora Project Wiki

< MinGW

Revision as of 16:50, 16 October 2008 by Rjones (talk | contribs) (Explain bootstrapping.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Bootstrapping MinGW

MinGW source packages have a circular dependency:

             mingw32-gcc <---------------+
              |     |       required for |
         +----+     +---+                |
         | required for |                |
         V              V                |
 mingw32-runtime   mingw32-w32api        |
         |              |                |
         +--------------+----------------+

So when you build mingw32-gcc for the first time, you have to get a binary of mingw32-runtime & mingw32-w32api from somewhere.

Note this only applies the first time or if you are building from scratch on a brand new system. Later builds can just build using earlier installs.

Bootstrap packages

To break the dependency we normally use two special packages, mingw32-runtime-bootstrap and mingw32-w32api-bootstrap.

These two non-Fedora packages contain the binaries of runtime & w32api, from MinGW's download site.

Once these are installed, you can build mingw32-gcc, followed by the real mingw32-runtime and mingw32-w32api (from source).

Obsoletes

When mingw32-runtime and mingw32-w32api final packages are installed, they obsolete the -bootstrap packages which are no longer needed or useful.