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) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits