[Lldb-commits] [lldb] d68ebea - Reland [lldb] Explicitly use the configuration architecture when building test executables
Raphael Isemann via lldb-commits
lldb-commits at lists.llvm.org
Thu Nov 5 06:15:00 PST 2020
Author: Raphael Isemann
Date: 2020-11-05T15:13:48+01:00
New Revision: d68ebea7670f6bbba136f1517a1cff3696b6a800
URL: https://github.com/llvm/llvm-project/commit/d68ebea7670f6bbba136f1517a1cff3696b6a800
DIFF: https://github.com/llvm/llvm-project/commit/d68ebea7670f6bbba136f1517a1cff3696b6a800.diff
LOG: Reland [lldb] Explicitly use the configuration architecture when building test executables
This originally broke the TestQuoting which explicitly called buildDefault
instead of calling build() and marking the test as no_debug_info_test.
TestQuoting has been rewritten by now and is using `build`, so this should now
pass on all platforms.
Original summary:
The Darwin builder currently assumes in `getArchCFlags` that the passed `arch`
value is an actual string it can string.join with vendor/os/version/env strings:
```
triple = '-'.join([arch, vendor, os, version, env])
```
However this is not true for most tests as we just pass down the `arch=None`
default value from `TestBase.build`. This causes that if we actually end up in
this function we just error out when concatenating `None` with the other actual
strings of vendor/os/version/env. What we should do instead is check that if
there is no test-specific architecture that we fall back to the configuration's
architecture value.
It seems we already worked around this in `builder.getArchSpec` by explicitly
falling back to the architecture specified in the configuration.
This patch just moves this fallback logic to the top `build` function so that it
affects all functions called from `TestBase.build`.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D89056
Added:
Modified:
lldb/packages/Python/lldbsuite/test/builders/builder.py
lldb/packages/Python/lldbsuite/test/lldbtest.py
Removed:
################################################################################
diff --git a/lldb/packages/Python/lldbsuite/test/builders/builder.py b/lldb/packages/Python/lldbsuite/test/builders/builder.py
index fbfa86700e22..6c9584224f4a 100644
--- a/lldb/packages/Python/lldbsuite/test/builders/builder.py
+++ b/lldb/packages/Python/lldbsuite/test/builders/builder.py
@@ -93,11 +93,7 @@ def getArchSpec(self, architecture):
Helper function to return the key-value string to specify the architecture
used for the make system.
"""
- arch = architecture if architecture else None
- if not arch and configuration.arch:
- arch = configuration.arch
-
- return ("ARCH=" + arch) if arch else ""
+ return ("ARCH=" + architecture) if architecture else ""
def getCCSpec(self, compiler):
"""
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 81110f9f80c4..73007caf2108 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -2607,6 +2607,9 @@ def build(
"""Platform specific way to build the default binaries."""
module = builder_module()
+ if not architecture and configuration.arch:
+ architecture = configuration.arch
+
dictionary = lldbplatformutil.finalize_build_dictionary(dictionary)
if self.getDebugInfo() is None:
return self.buildDefault(architecture, compiler, dictionary)
More information about the lldb-commits
mailing list