[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