Compare commits

...

3 Commits

Author SHA1 Message Date
William Furr
49c4fecbea
Merge afdba12f9f into f6ce52f667 2025-11-21 09:40:56 +01:00
William Furr
afdba12f9f Free up space on Ubuntu runner for nuttx spec tests.
LLVM 21 update uses more disk space and makes the standard runner fail
with "No space left on device".  Using the [free disk space
action](https://github.com/marketplace/actions/free-disk-space-ubuntu)
to delete the unused Android, Haskell, and .NET runtimes frees up space
on the runner.
2025-10-06 14:15:49 +00:00
William Furr
f4dc4e1be3 Update LLVM to 21.1.2.
Wraps the LLVMContext construction in LLVM 21 version check; LLVM 21 makes a
breaking change in LLVMContext construction, but WAMR still needs to
support older LLVM versions, e.g. for xtensa/esp32 support which is only
available in at most LLVM 19.
2025-10-02 18:28:33 +00:00
3 changed files with 35 additions and 2 deletions

View File

@ -37,6 +37,19 @@ jobs:
permissions:
contents: read
actions: write
uses: jlumbroso/free-disk-space@v1.3.1
with:
# Deletes Android, Haskell, and .NET runtimes from the runner, freeing
# about 15 GB.
android: true
dotnet: true
haskell: true
# Keeps the tool cache, some large packages, docker images, and swap.
# Some of these could also be removed if more space is needed.
tool-cache: false
large-packages: false
docker-images: false
swap-storage: false
uses: ./.github/workflows/build_llvm_libraries.yml
with:
os: "ubuntu-22.04"

View File

@ -294,7 +294,7 @@ def main():
"arc": {
"repo": "https://github.com/llvm/llvm-project.git",
"repo_ssh": "git@github.com:llvm/llvm-project.git",
"branch": "release/18.x",
"branch": "release/21.x",
},
"xtensa": {
"repo": "https://github.com/espressif/llvm-project.git",
@ -304,7 +304,7 @@ def main():
"default": {
"repo": "https://github.com/llvm/llvm-project.git",
"repo_ssh": "git@github.com:llvm/llvm-project.git",
"branch": "release/18.x",
"branch": "release/21.x",
},
}

View File

@ -2656,6 +2656,25 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
comp_ctx->comp_data = comp_data;
/* Create LLVM context, module and builder */
#if LLVM_VERSION_MAJOR >= 21
/* Construct an LLVMContext directly, note:
different from non LAZY JIT mode, no need to dispose this context, if
will be disposed when the thread safe context is disposed */
comp_ctx->context = LLVMContextCreate();
if (!comp_ctx->context) {
aot_set_last_error("create LLVM Context failed.");
goto fail;
}
/* Wrap the LLVM context in a thread safe context. */
comp_ctx->orc_thread_safe_context =
LLVMOrcCreateNewThreadSafeContextFromLLVMContext(comp_ctx->context);
if (!comp_ctx->orc_thread_safe_context) {
aot_set_last_error(
"Create LLVM ThreadSafeContext from LLVMContext failed.");
goto fail;
}
#else // LLVM_VERSION_MAJOR < 21
comp_ctx->orc_thread_safe_context = LLVMOrcCreateNewThreadSafeContext();
if (!comp_ctx->orc_thread_safe_context) {
aot_set_last_error("create LLVM ThreadSafeContext failed.");
@ -2670,6 +2689,7 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
aot_set_last_error("get context from LLVM ThreadSafeContext failed.");
goto fail;
}
#endif
if (!(comp_ctx->builder = LLVMCreateBuilderInContext(comp_ctx->context))) {
aot_set_last_error("create LLVM builder failed.");