Add src-side configs for CI and optional try simplechrome lto bot.

The current amd64-generic builder has thin-lto and cfi disabled by default
for build cycle time reasons. Chromeos-chrome ebuilds use them both however,
so changes might slip in that break the ebuild but pass on the cq.

This will add a CI bot (and an optional trybot) that has them both enabled.

Bug: 924192
Change-Id: I371e4c6606c0e2e28112750add47208e9dcfd899
Reviewed-on: https://chromium-review.googlesource.com/c/1431515
Reviewed-by: Stephen Martinis <martiniss@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625404}
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg
index 59b8132..1202bc2 100644
--- a/infra/config/global/cr-buildbucket.cfg
+++ b/infra/config/global/cr-buildbucket.cfg
@@ -1000,6 +1000,11 @@
 
     # ChromeOS bots.
     builders {
+      name: "chromeos-amd64-generic-cfi-thin-lto-rel"
+      mixins: "chromeos-ci"
+    }
+
+    builders {
       name: "chromeos-amd64-generic-rel"
       mixins: "chromeos-ci"
     }
@@ -3153,6 +3158,7 @@
       name: "try-nougat-phone-tester"
     }
 
+    builders { mixins: "chromeos-try" name: "chromeos-amd64-generic-cfi-thin-lto-rel" }
     builders { mixins: "chromeos-try" name: "chromeos-amd64-generic-rel" }
     builders { mixins: "chromeos-try" name: "chromeos-daisy-rel" }
     builders { mixins: "chromeos-try" name: "chromeos-kevin-rel" }
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg
index fa8233a3..5d7e0d3 100644
--- a/infra/config/global/luci-milo.cfg
+++ b/infra/config/global/luci-milo.cfg
@@ -602,6 +602,11 @@
     short_name: "dbg"
   }
   builders {
+    name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-cfi-thin-lto-rel"
+    category: "chromium.chromiumos|simple|release"
+    short_name: "x64"
+  }
+  builders {
     name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-rel"
     category: "chromium.chromiumos|simple|release"
     short_name: "x64"
@@ -1018,6 +1023,11 @@
     short_name: "dbg"
   }
   builders {
+    name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-cfi-thin-lto-rel"
+    category: "simple|release"
+    short_name: "x64"
+  }
+  builders {
     name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-rel"
     category: "simple|release"
     short_name: "x64"
@@ -4385,6 +4395,9 @@
     name: "buildbucket/luci.chromium.try/cast_shell_linux"
   }
   builders {
+    name: "buildbucket/luci.chromium.try/chromeos-amd64-generic-cfi-thin-lto-rel"
+  }
+  builders {
     name: "buildbucket/luci.chromium.try/chromeos-amd64-generic-rel"
   }
   builders {
diff --git a/infra/config/global/luci-scheduler.cfg b/infra/config/global/luci-scheduler.cfg
index 4649d23..97471714 100644
--- a/infra/config/global/luci-scheduler.cfg
+++ b/infra/config/global/luci-scheduler.cfg
@@ -301,6 +301,7 @@
   triggers: "android-marshmallow-arm64-rel"
   triggers: "android-mojo-webview-rel"
   triggers: "android-rel"
+  triggers: "chromeos-amd64-generic-cfi-thin-lto-rel"
   triggers: "chromeos-amd64-generic-rel"
   triggers: "chromeos-amd64-generic-rel-goma-canary"
   triggers: "chromeos-amd64-generic-rel-goma-latest-client"
@@ -1086,6 +1087,16 @@
 ################################################################################
 
 job {
+  id: "chromeos-amd64-generic-cfi-thin-lto-rel"
+  acl_sets: "default"
+  buildbucket: {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "chromeos-amd64-generic-cfi-thin-lto-rel"
+  }
+}
+
+job {
   id: "chromeos-amd64-generic-rel"
   acl_sets: "default"
   buildbucket: {
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index 37b2a2b..4684f524 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -1,6 +1,11 @@
 {
   "AAAAA1 AUTOGENERATED FILE DO NOT EDIT": {},
   "AAAAA2 See generate_buildbot_json.py to make changes": {},
+  "chromeos-amd64-generic-cfi-thin-lto-rel": {
+    "additional_compile_targets": [
+      "chromiumos_preflight"
+    ]
+  },
   "chromeos-amd64-generic-rel": {
     "additional_compile_targets": [
       "chromiumos_preflight"
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index f2b1ec2f..185bbdd8 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -665,6 +665,11 @@
   {
     'name': 'chromium.chromiumos',
     'machines': {
+      'chromeos-amd64-generic-cfi-thin-lto-rel': {
+        'additional_compile_targets': [
+          'chromiumos_preflight',
+        ],
+      },
       'chromeos-amd64-generic-rel': {
         'additional_compile_targets': [
           'chromiumos_preflight',
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index 0e49ea3..fa4579d 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -108,6 +108,7 @@
     'chromium.chromiumos': {
       'Linux ChromiumOS Full': 'chromeos_with_codecs_release_bot',
 
+      'chromeos-amd64-generic-cfi-thin-lto-rel': 'cros_chrome_sdk_headless_ozone_cfi_thin_lto',
       'chromeos-amd64-generic-rel': 'cros_chrome_sdk_headless_ozone',
       'chromeos-daisy-rel': 'cros_chrome_sdk',
       'linux-chromeos-rel': 'chromeos_with_codecs_release_bot',
@@ -644,8 +645,9 @@
     },
 
     'tryserver.chromium.chromiumos': {
-      # TODO(crbug.com/913750): Enable DCHECKS on this bot when the PFQ has it
-      # enabled.
+      # TODO(crbug.com/913750): Enable DCHECKS on the two amd64-generic bots
+      # when the PFQ has it enabled.
+      'chromeos-amd64-generic-cfi-thin-lto-rel': 'cros_chrome_sdk_headless_ozone_cfi_thin_lto',
       'chromeos-amd64-generic-rel': 'cros_chrome_sdk_headless_ozone',
       'chromeos-daisy-rel': 'cros_chrome_sdk_dchecks_always_on',
       'chromeos-kevin-rel': 'cros_chrome_sdk_headless_ozone_dcheck_always_on',
@@ -1289,6 +1291,10 @@
       'cros_chrome_sdk', 'ozone_platform_headless',
     ],
 
+    'cros_chrome_sdk_headless_ozone_cfi_thin_lto': [
+      'cros_chrome_sdk', 'ozone_platform_headless', 'cfi_full', 'thin_lto',
+    ],
+
     'cros_chrome_sdk_headless_ozone_dcheck_always_on': [
       'cros_chrome_sdk', 'ozone_platform_headless', 'dcheck_always_on',
     ],