Skip to content

[Github] Install make on Windows container #146236

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Nerixyz
Copy link
Contributor

@Nerixyz Nerixyz commented Jun 28, 2025

LLDB tests require GNU make to be present for the API tests.

This PR installs the make package from Chocolatey, which packages the GNU make from https://sourceforge.net/projects/ezwinports/.

Alternatives considered:

  • NMake/jom: These don't support all the command line parameters and don't support the required conditionals.
  • mingw32-make: if available, this would work. However, installing it would require a MinGW installation. Git Bash doesn't come with a package manager.

Remaining work:

  • For testing on Windows, LLDB needs LLD, which needs to be enabled.
  • After that, most tests run. I ran this through GitHub Actions, which almost took 4h to complete. The following tests failed (this might be due to my weird setup):
    Failed Tests (12):
    lldb-api :: commands/command/script_alias/TestCommandScriptAlias.py
    lldb-api :: functionalities/load_unload/TestLoadUnload.py
    lldb-api :: lang/cpp/class-template-non-type-parameter-pack/TestClassTemplateNonTypeParameterPack.py
    lldb-api :: lang/cpp/class-template-type-parameter-pack/TestClassTemplateTypeParameterPack.py
    lldb-api :: python_api/hello_world/TestHelloWorld.py
    lldb-api :: tools/lldb-server/TestGdbRemoteExitCode.py
    lldb-api :: tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
    lldb-api :: tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
    lldb-api :: tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
    lldb-api :: tools/lldb-server/TestNonStop.py
    lldb-shell :: Process/Windows/process_load.cpp
    lldb-shell :: Target/dependent-modules-nodupe-windows.test
    

Towards #132800.

@llvmbot
Copy link
Member

llvmbot commented Jun 28, 2025

@llvm/pr-subscribers-github-workflow

Author: nerix (Nerixyz)

Changes

LLDB tests require GNU make to be present for the API tests.

This PR installs the make package from Chocolatey, which packages the GNU make from <https://sourceforge.net/projects/ezwinports/>.

Alternatives considered:

  • NMake/jom: These don't support all the command line parameters and don't support the required conditionals.
  • mingw32-make: if available, this would work. However, installing it would require a MinGW installation. Git Bash doesn't come with a package manager.

Remaining work:

  • For testing on Windows, LLDB needs LLD, which needs to be enabled.
  • After that, most tests run. I ran this through GitHub Actions, which almost took 4h to complete. The following tests failed (this might be due to my weird setup):
    Failed Tests (12):
    lldb-api :: commands/command/script_alias/TestCommandScriptAlias.py
    lldb-api :: functionalities/load_unload/TestLoadUnload.py
    lldb-api :: lang/cpp/class-template-non-type-parameter-pack/TestClassTemplateNonTypeParameterPack.py
    lldb-api :: lang/cpp/class-template-type-parameter-pack/TestClassTemplateTypeParameterPack.py
    lldb-api :: python_api/hello_world/TestHelloWorld.py
    lldb-api :: tools/lldb-server/TestGdbRemoteExitCode.py
    lldb-api :: tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
    lldb-api :: tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
    lldb-api :: tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
    lldb-api :: tools/lldb-server/TestNonStop.py
    lldb-shell :: Process/Windows/process_load.cpp
    lldb-shell :: Target/dependent-modules-nodupe-windows.test
    

Towards #132800.


Full diff: https://github.com/llvm/llvm-project/pull/146236.diff

1 Files Affected:

  • (modified) .github/workflows/containers/github-action-ci-windows/Dockerfile (+2-1)
diff --git a/.github/workflows/containers/github-action-ci-windows/Dockerfile b/.github/workflows/containers/github-action-ci-windows/Dockerfile
index eafe45fac8ea4..8f65c42242d12 100644
--- a/.github/workflows/containers/github-action-ci-windows/Dockerfile
+++ b/.github/workflows/containers/github-action-ci-windows/Dockerfile
@@ -39,7 +39,8 @@ RUN regsvr32 /S "C:\BuildTools\DIA SDK\bin\amd64\msdia140.dll" & \
 
 # install tools as described in https://llvm.org/docs/GettingStartedVS.html
 # and a few more that were not documented...
-RUN choco install -y ninja git sccache
+# make is needed by LLDB tests
+RUN choco install -y ninja git sccache make
 # Pin an older version of Python; the current Python 3.10 fails when
 # doing "pip install" for the other dependencies, as it fails to find libxml
 # while compiling some package.

Copy link
Contributor

@boomanaiden154 boomanaiden154 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to see a clean Github actions run (a clean local run inside the container would probably suffice) using a windows container with make installed for the lldb tests before landing this.

There is probably still some extra packages in the windows container and each additional package adds some cost to the setup time which causes us to "waste" more time in setup.

@Nerixyz
Copy link
Contributor Author

Nerixyz commented Jul 1, 2025

I would like to see a clean Github actions run (a clean local run inside the container would probably suffice) using a windows container with make installed for the lldb tests before landing this.

GitHub removed the windows-2019 image yesterday... And of course my run yesterday failed because I didn't allocate enough RAM for the container (and it seems like you can't run windows-2019 images on server 2022/2025). When testing, I did it through SSH on GHA, so I don't have any logs (other than the snippet from above). I'll try CircleCI later.

@boomanaiden154
Copy link
Contributor

and it seems like you can't run windows-2019 images on server 2022/2025

Yeah, not being able to run containers across versions is a massive pain. I'm hoping to upgrade the windows image at some point. I was hoping to jump straight to server 2025, but we need to wait until GKE supports it and I'm not sure when that's happening.

Thanks for trying to get this working.

@Nerixyz
Copy link
Contributor Author

Nerixyz commented Jul 3, 2025

Okay, I finally got it running in CircleCI (logs). It ran this image which was built here.

There are only six failing tests now:

Failed Tests (6):
  lldb-api :: functionalities/load_unload/TestLoadUnload.py
  lldb-api :: lang/cpp/class-template-non-type-parameter-pack/TestClassTemplateNonTypeParameterPack.py
  lldb-api :: lang/cpp/class-template-type-parameter-pack/TestClassTemplateTypeParameterPack.py
  lldb-api :: python_api/hello_world/TestHelloWorld.py
  lldb-shell :: Process/Windows/process_load.cpp
  lldb-shell :: Target/dependent-modules-nodupe-windows.test

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

Successfully merging this pull request may close these issues.

3 participants