[llvm] Set up windows specific cmake defines for lldb bazel build and config for LZMA (PR #205823)
David Young via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 22 07:20:01 PDT 2026
https://github.com/youngd007 updated https://github.com/llvm/llvm-project/pull/205823
>From efbd1e2d0a4ce52a2374e184dc578233fb89750b Mon Sep 17 00:00:00 2001
From: David Young <davidayoung at meta.com>
Date: Thu, 25 Jun 2026 07:12:43 -0700
Subject: [PATCH 1/4] Set up windows specific cmake defines for lldb bazel
build and config for LZMA
---
.../llvm-project-overlay/lldb/BUILD.bazel | 49 +++++++++++++++++--
1 file changed, 46 insertions(+), 3 deletions(-)
diff --git a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
index 0245d01cfe32d..53c08bc037af7 100644
--- a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
@@ -70,6 +70,23 @@ selects.config_setting_group(
],
)
+bool_flag(
+ name = "enable_lzma",
+ build_setting_default = False,
+)
+
+config_setting(
+ name = "lzma_enabled_setting",
+ flag_values = {":enable_lzma": "true"},
+)
+
+selects.config_setting_group(
+ name = "lzma_enabled",
+ match_any = [
+ ":lzma_enabled_setting",
+ ],
+)
+
_VERSION_SUBSTITUTIONS = {
"@LLDB_VERSION@": PACKAGE_VERSION,
"@LLDB_VERSION_MAJOR@": LLVM_VERSION_MAJOR,
@@ -113,9 +130,6 @@ expand_template(
"#cmakedefine01 HAVE_PTSNAME_R": "#define HAVE_PTSNAME_R 1",
"#cmakedefine01 LLDB_ENABLE_TERMIOS": "#define LLDB_ENABLE_TERMIOS 1",
- # TODO: Add LZMA support by including the library in bazel
- "#cmakedefine01 LLDB_ENABLE_LZMA": "#define LLDB_ENABLE_LZMA 0",
-
# TODO: lua support
"#cmakedefine01 LLDB_ENABLE_LUA": "#define LLDB_ENABLE_LUA 0",
@@ -169,6 +183,23 @@ expand_template(
"#cmakedefine01 LLDB_ENABLE_LIBXML2": "#define LLDB_ENABLE_LIBXML2 0",
"#cmakedefine01 LLDB_HAVE_EL_RFUNC_T": "#define LLDB_HAVE_EL_RFUNC_T 1",
},
+ "@platforms//os:windows": {
+ # Self-contained dist: liblldb resolves a relative LLDB_PYTHON_HOME
+ # against its own dir when LLDB_EMBED_PYTHON_HOME=1. Inert until
+ # Python is enabled, but kept so the Windows config matches the MSDK build.
+ "#cmakedefine LLDB_PYTHON_HOME R\"(${LLDB_PYTHON_HOME})\"": "#define LLDB_PYTHON_HOME \"../python\"",
+ "#cmakedefine01 HAVE_LIBCOMPRESSION": "#define HAVE_LIBCOMPRESSION 0",
+ "#cmakedefine01 HAVE_NR_PROCESS_VM_READV": "#define HAVE_NR_PROCESS_VM_READV 0",
+ "#cmakedefine01 HAVE_PPOLL": "#define HAVE_PPOLL 0",
+ "#cmakedefine01 HAVE_PROCESS_VM_READV": "#define HAVE_PROCESS_VM_READV 0",
+ "#cmakedefine01 HAVE_PTSNAME_R": "#define HAVE_PTSNAME_R 0",
+ "#cmakedefine01 HAVE_SYS_EVENT_H": "#define HAVE_SYS_EVENT_H 0",
+ "#cmakedefine01 LLDB_EMBED_PYTHON_HOME": "#define LLDB_EMBED_PYTHON_HOME 1",
+ "#cmakedefine01 LLDB_ENABLE_LIBXML2": "#define LLDB_ENABLE_LIBXML2 0",
+ "#cmakedefine01 LLDB_ENABLE_POSIX": "#define LLDB_ENABLE_POSIX 0",
+ "#cmakedefine01 LLDB_ENABLE_TERMIOS": "#define LLDB_ENABLE_TERMIOS 0",
+ "#cmakedefine01 LLDB_HAVE_EL_RFUNC_T": "#define LLDB_HAVE_EL_RFUNC_T 0",
+ },
}) | select({
":curses_enabled": {
"#cmakedefine01 LLDB_ENABLE_CURSES": "#define LLDB_ENABLE_CURSES 1",
@@ -185,6 +216,13 @@ expand_template(
"#cmakedefine01 LLDB_EDITLINE_USE_WCHAR": "#define LLDB_EDITLINE_USE_WCHAR 0",
"#cmakedefine01 LLDB_ENABLE_LIBEDIT": "#define LLDB_ENABLE_LIBEDIT 0",
},
+ }) | select({
+ ":lzma_enabled": {
+ "#cmakedefine01 LLDB_ENABLE_LZMA": "#define LLDB_ENABLE_LZMA 1",
+ },
+ "//conditions:default": {
+ "#cmakedefine01 LLDB_ENABLE_LZMA": "#define LLDB_ENABLE_LZMA 0",
+ },
}),
template = "include/lldb/Host/Config.h.cmake",
)
@@ -623,6 +661,11 @@ cc_library(
"-lbsd",
],
"//conditions:default": [],
+ }) + select({
+ ":lzma_enabled": [
+ "-llzma",
+ ],
+ "//conditions:default": [],
}),
deps = [
":Headers",
>From d7391ccbdb3f8ac117538dc3303005a263c1b588 Mon Sep 17 00:00:00 2001
From: David Young <davidayoung at meta.com>
Date: Mon, 6 Jul 2026 18:43:08 -0700
Subject: [PATCH 2/4] Rename lldb LZMA bazel flag to system_lzma and drop
redundant config_setting_group
Address PR feedback: use 'system' wording to reflect the non-hermetic
system-provided liblzma, and remove the single-member
selects.config_setting_group in favor of referencing the config_setting
directly.
---
.../bazel/llvm-project-overlay/lldb/BUILD.bazel | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
index 53c08bc037af7..03a6f430e6eb6 100644
--- a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
@@ -71,20 +71,13 @@ selects.config_setting_group(
)
bool_flag(
- name = "enable_lzma",
+ name = "enable_system_lzma",
build_setting_default = False,
)
config_setting(
- name = "lzma_enabled_setting",
- flag_values = {":enable_lzma": "true"},
-)
-
-selects.config_setting_group(
- name = "lzma_enabled",
- match_any = [
- ":lzma_enabled_setting",
- ],
+ name = "system_lzma_enabled",
+ flag_values = {":enable_system_lzma": "true"},
)
_VERSION_SUBSTITUTIONS = {
@@ -217,7 +210,7 @@ expand_template(
"#cmakedefine01 LLDB_ENABLE_LIBEDIT": "#define LLDB_ENABLE_LIBEDIT 0",
},
}) | select({
- ":lzma_enabled": {
+ ":system_lzma_enabled": {
"#cmakedefine01 LLDB_ENABLE_LZMA": "#define LLDB_ENABLE_LZMA 1",
},
"//conditions:default": {
@@ -662,7 +655,7 @@ cc_library(
],
"//conditions:default": [],
}) + select({
- ":lzma_enabled": [
+ ":system_lzma_enabled": [
"-llzma",
],
"//conditions:default": [],
>From b73df7f54ffcab21223bc859facf5285d620f110 Mon Sep 17 00:00:00 2001
From: David Young <davidayoung at meta.com>
Date: Tue, 14 Jul 2026 12:20:20 -0700
Subject: [PATCH 3/4] rename new lzma config and have it a string setting
instead of bool to sync with new args for llvm
---
.../bazel/llvm-project-overlay/lldb/BUILD.bazel | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
index 76ddec7a7c7cf..60b90cab0287a 100644
--- a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
load("@bazel_skylib//lib:selects.bzl", "selects")
-load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
+load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag")
load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
load("@build_bazel_apple_support//rules:apple_genrule.bzl", "apple_genrule")
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_import", "cc_library", "objc_library")
@@ -69,15 +69,17 @@ selects.config_setting_group(
"@platforms//os:linux",
],
)
-
-bool_flag(
- name = "enable_system_lzma",
- build_setting_default = False,
+string_flag(
+ name = "lzma",
+ build_setting_default = "disable",
+ values = [
+ "disable",
+ "system",
+ ],
)
-
config_setting(
name = "system_lzma_enabled",
- flag_values = {":enable_system_lzma": "true"},
+ flag_values = {":lzma": "system"},
)
_VERSION_SUBSTITUTIONS = {
>From 2b291ea68071cc0921095c9e2f51e807ce72f655 Mon Sep 17 00:00:00 2001
From: David Young <davidayoung at meta.com>
Date: Wed, 22 Jul 2026 07:19:42 -0700
Subject: [PATCH 4/4] Add new lines to fix buildifier failure
---
utils/bazel/llvm-project-overlay/lldb/BUILD.bazel | 2 ++
1 file changed, 2 insertions(+)
diff --git a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
index 8f2a11f12efb4..e81f637a5c68a 100644
--- a/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
@@ -69,6 +69,7 @@ selects.config_setting_group(
"@platforms//os:linux",
],
)
+
string_flag(
name = "lzma",
build_setting_default = "disable",
@@ -77,6 +78,7 @@ string_flag(
"system",
],
)
+
config_setting(
name = "system_lzma_enabled",
flag_values = {":lzma": "system"},
More information about the llvm-commits
mailing list