MinGW/Bootstrapping

From FedoraProject

< MinGW
Revision as of 14:54, 24 November 2008 by Rjones (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.

The above describes the old bootstrapping method, but nowadays we prefer to just grab a binary of the mingw32-runtime and mingw32-w32api packages built on another machine (both packages are noarch). You can grab the latest binaries from our temporary repository, until they get added to Fedora proper.

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.