[clang][macho] Add support for -darwin-target-variant-sdk-version in cc1as
authorDaniel Rodríguez Troitiño <danielrodriguez@fb.com>
Tue, 11 Oct 2022 23:38:39 +0000 (16:38 -0700)
committerDaniel Rodríguez Troitiño <danielrodriguez@fb.com>
Fri, 14 Oct 2022 21:33:10 +0000 (14:33 -0700)
commitd11b9fa3bfb9e2bedec142816e88b9171c8ec6b6
treec262f8039fa3bed333ee10b64ffc2b940d1b2516
parenta921d6eb3b517ef6dcefd13cfbb9a017b00a06b1
[clang][macho] Add support for -darwin-target-variant-sdk-version in cc1as

D121868 provided support for -darwin-target-variant-triple, but the
support for -darwin-target-variant-sdk-version was still missing for
cc1as. These changes build upon the previous and provides such support.

- Extracted the common code to handle -darwin-target-variant-triple and
  -darwin-target-variant-sdk-version in the Darwin toolchain to a method
  that can be used for both the cc1 and the cc1as job construction.
  cc1as does not support some of the parameters that were provided to
  cc1, so the same code cannot be used for both.
- Invoke that new common code when constructing a cc1as invocation.
- Parse the new -darwin-target-variant-sdk-version in the cc1as driver.
  Apply its value to the MCObjectFileInfo to generate the right values
  in the object files.
- Includes two new tests that check that cc1as uses the provided values
  in -darwin-target-variant-sdk and that the Clang driver creates the
  jobs with the correct arguments.

Differential Revision: https://reviews.llvm.org/D135729
clang/include/clang/Driver/ToolChain.h
clang/lib/Driver/ToolChain.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/ToolChains/Darwin.cpp
clang/lib/Driver/ToolChains/Darwin.h
clang/test/Driver/clang-cc1as-target-variant.s [new file with mode: 0644]
clang/test/Misc/cc1as-darwin-target-variant-sdk-version.s [new file with mode: 0644]
clang/tools/driver/cc1as_main.cpp