Skip to content

Instantly share code, notes, and snippets.

@cr1901
Last active November 22, 2017 03:41
Show Gist options
  • Save cr1901/3966c9a3d4eb37af573b9eda4a5fbbc0 to your computer and use it in GitHub Desktop.
Save cr1901/3966c9a3d4eb37af573b9eda4a5fbbc0 to your computer and use it in GitHub Desktop.
Proposed Supported Windows Environments for Migen

Migen Supported Environments on Windows

Goal: Least amount of changes/Windows-environment specific code in Migen/MiSoC

Cygwin

  • Migen/MiSoC installed using Cygwin python (3.6- requires patch).
  • ~ provided by Cygwin is home directory.
  • GNU make, chmod provided by Cygwin.
  • gcc provided/compiled using Cygwin.
  • Other command-line programs provided via compilation under Cygwin or Cygwin packages.
  • flterm uses /dev/ttyS* (currently broken).
  • Xilinx ISE does not understand Cygwin paths- must have paths updated via cygpath.
    • Invokes cmd.exe subshell/creates batch file which runs actual build commands.
  • yosys provided by Cygwin- calls out to shell script.
    • This doesn't work if yosys is used as the front end to Xilinx- still need batch file in case Xilinx back ends choke on Cygwin paths.
    • If I make yosys run in a cmd.exe subshell I can't enforce "use a Cygwin yosys".
      • Cygwin binaries understand Windows paths.

MSYS2/MinGW64

  • Migen/MiSoC installed using MSYS2 python (3.6- requires patch).
  • ~ provided by MSYS2 is home directory.
  • GNU make, chmod provided by MSYS2.
  • gcc provided/compiled under MSYS2.
  • Other command-line programs provided via compilation under MSYS2 or MSYS2 pacman.
  • flterm uses COM* (untested).
  • All toolchains use batch files.
    • yosys compiled under MSYS2, MXE, or Visual Studio (basically not Cygwin).

Native Windows

  • Migen/MiSoC installed using Native python (3.5).
  • %USERPROFILE% is home directory. ~ from MSYS2 may be picked up by accident sometimes.
  • GNU make, chmod provided by MSYS2, GnuWin32, or external package plus DLLs.
    • MSYS2 preferred.
      • Packaging requires: msys-intl-8.dll, msys-iconv-2.dll, msys-2.0.dll
    • Perhaps conditional code to skip chmod step on Native Windows?
  • gcc provided/compiled under MSYS2, or external package plus DLLs.
    • Compiling your own preferred- lm32-elf-gcc/binutils compilation is well-behaved.
    • Packaging requires: libgcc.dll, libiconv-2.dll, libintl-8.dll, zlib1.dll
  • Other command-line programs provided via compilation under MSYS2 or MSYS2 pacman, or binaries/installers.
  • flterm uses COM* (patch required/available).
  • All toolchains use batch files.
    • Same rules for yosys as MSYS2/MinGW64.

Mixing environments not listed in their own sections is unsupported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment