[ELF][Morello] Add basic support for LTO

When parsing bitcode files, ld.lld would previously hit an assertion due to
a mismatched DataLayout. This patch adds minimal support for Morello LTO
by inferring the target ABI from the morello-c64-plt flag. This flag
is set automatically based on the ELF e_flags, so as long as the first
input file is a purecap file, it should also work automatically when using
a bare ld.lld invocation instead calling ld.lld via clang.

This is lightly tested, but I have been able to build various projects
with -flto=thin.
16 jobs for !179 with lld-lto-support in 107 minutes and 45 seconds (queued for 2 seconds)
latest detached
Status Job ID Name Coverage
  Build Stage1
passed #114268
build-and-test-cheribsd

01:47:44

passed #114267
arm64_fast
build-musl-aarch64

00:38:43

failed #114266
build-toolchain

01:06:14

 
  Build Stage2
skipped #114272
allowed to fail
build-android-nano
skipped #114270
allowed to fail
build-android-swr
skipped #114271
allowed to fail
build-android-swr-soc
skipped #114273
allowed to fail
build-busybox
skipped #114274
allowed to fail
build-busybox-soc
skipped #114275
allowed to fail
build-firmware
skipped #114276
allowed to fail
build-firmware-soc
passed #114269
build-musl-x86

00:29:52

 
  Generate Test
skipped #114277
generate-test
 
  Test
skipped test
skipped #114280
arm64
test-tuxsuite-android-swr-boottest
skipped #114279
arm64 allowed to fail
test-tuxsuite-busybox
 
  Publish Artifacts
skipped #114281
publish_artifacts
 
Name Stage Failure
failed
build-toolchain Build Stage1
real	64m9.877s
user 1616m28.464s
sys 70m49.056s
Uploading artifacts for failed job
Uploading artifacts...
WARNING: build.env: no matching files
ERROR: No files to upload
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1