This is an archive of the discontinued LLVM Phabricator instance.

[lldb] Explicitly use the configuration architecture when building test executables
ClosedPublic

Authored by teemperor on Oct 8 2020, 10:03 AM.

Details

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.

Diff Detail