Chocolatey Fest - Chocolatey's inaugural conference on Windows Automation (WinOps) is coming - Learn more!



Package test results are passing.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved by moderator gep13 on 2/15/2016.

MinGW (“Minimalistic GNU for Windows”) is a collection of freely available and freely distributable Windows specific header files and import libraries combined with GNU toolsets that allow one to produce native Windows programs that do not rely on any 3rd-party C runtime DLLs.

Gambit Scheme system, compiler and interpreter.

The default package now uses SJLJ (32-bit) and SEH (64-bit) exception handling and posix threads. Other configurations can be selected using the params:

  • exception: sjlj, seh (64-bit only), dwarf (32-bit only)
  • threads: posix, win32

For example: -params "/exception:sjlj /threads:win32"

To install MinGW, run the following command from the command line or from PowerShell:

C:\> choco install mingw

To upgrade MinGW, run the following command from the command line or from PowerShell:

C:\> choco upgrade mingw


  • tools\chocolateyInclude.ps1 Show
    # Default values
    $packageName = 'mingw'
    $packageVersion = '5.3.0'
    $rev = 'v4-rev0'
    $threads = 'posix'
    $exception = 'default' #dwarf is 32bit only, seh is 64bit only, sjlj works with 32 / 64
    $arguments = @{}
    $packageParameters = $env:chocolateyPackageParameters
    if($packageParameters) {
      $MATCH_PATTERN = "/([a-zA-Z]+):([a-zA-Z0-9]+)"
      $VALUE_INDEX = 2
      if($packageParameters -match $MATCH_PATTERN ){
        $results = $packageParameters | Select-String $MATCH_PATTERN -AllMatches
        $results.matches | % {
      if($arguments.ContainsKey("exception")) {
        Write-Host "Exception Argument Found"
        $exception = $arguments["exception"]
      if($arguments.ContainsKey("threads")) {
        Write-Host "Threads Argument Found"
        $threads = $arguments["threads"]
    # Select 32-bit or 64-bit install. We're explicit here rather than depending on helpers so we can
    # accurately set PATH.
    $forceX86 = $env:chocolateyForceX86;
    if (($forceX86) -or (Get-ProcessorBits 32)) {
      Write-Debug "installing mingw-w64 32-bit"
      if ($exception -eq 'default') {
        $exception = 'sjlj'
      } elseif (($exception -ne 'sjlj') -and ($exception -ne 'dwarf')) {
        Write-Host "Unknown value $exception for exception parameter, expected 'dwarf' or 'sjlj'; using sjlj"
        $exception = 'sjlj'
      $mingwDir = 'mingw32'
      $prefix = 'i686'
    } else {
      Write-Debug "installing mingw-w64 64-bit"
      if ($exception -eq 'default') {
        $exception = 'seh'
      } elseif (($exception -ne 'sjlj') -and ($exception -ne 'seh')) {
        Write-Host "Unknown value $exception for exception parameter, expected 'seh' or 'sjlj'; using seh"
        $exception = 'seh'
      $mingwDir = 'mingw64'
      $prefix = 'x86_64'
    # sha1 checksums
    $checksums = @{
      'x86_64'[email protected]{
        'posix'[email protected]{
        'win32'[email protected]{
      'i686'[email protected]{
        'posix'[email protected]{
        'win32'[email protected]{
    $checksum = $checksums[$prefix][$threads][$exception]
    $zipFile = "$prefix-$packageVersion-release-$threads-$exception-rt_$rev.7z"
  • tools\chocolateyInstall.ps1 Show
    . (Join-Path (Split-Path -parent $MyInvocation.MyCommand.Definition) chocolateyInclude.ps1)
    $url = "$zipFile"
    $binRoot = Get-BinRoot
    Write-Debug "Bin Root is $binRoot"
    Install-ChocolateyZipPackage "$packageName" "$url" "$binRoot" -checksum "$checksum" -checksumType 'sha1'
    $installDir = Join-Path "$binRoot" "$mingwDir"
    Write-Host "Adding `'$installDir`' to the path and the current shell path"
    Install-ChocolateyPath "$installDir\bin"
    $env:Path = "$($env:Path);$installDir\bin"
  • tools\chocolateyUninstall.ps1 Show
    . (Join-Path (Split-Path -parent $MyInvocation.MyCommand.Definition) chocolateyInclude.ps1)
    Uninstall-ChocolateyZipPackage "$packageName" "${packageName}"

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • cstrauss
  • cwilso11
  • earnie
  • keithmarshall


Version History

Version Downloads Last updated Status
MinGW 4.9.3 402 Sunday, February 14, 2016 approved
MinGW 4.8.5 1073 Saturday, February 13, 2016 approved
MinGW 3704 Tuesday, June 2, 2015 approved
MinGW 12732 Wednesday, January 7, 2015 approved
MinGW 4.8.3 2095 Friday, October 17, 2014 approved
MinGW 3557 Tuesday, January 7, 2014  
MinGW 4.8.1 540 Wednesday, December 18, 2013  
MinGW 4.7.2 635 Monday, November 11, 2013  
MinGW 0.5.20121115 1655 Sunday, November 25, 2012  

Discussion for the MinGW Package

Ground rules:

  • This discussion is only about MinGW and the MinGW package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or MinGW, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.