[clang_toolchain] Enable LTO for zlib and libxml2 in prod
We already use LTO for Clang, use it for dependencies as well.
Change-Id: I24ed1771a04615338dcf4c1484fe0de03f08e744
diff --git a/recipes/clang_toolchain.expected/ci-linux-x64.json b/recipes/clang_toolchain.expected/ci-linux-x64.json
index 915f710..57b07e8 100644
--- a/recipes/clang_toolchain.expected/ci-linux-x64.json
+++ b/recipes/clang_toolchain.expected/ci-linux-x64.json
@@ -714,13 +714,6 @@
"-j80"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.build",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -733,13 +726,6 @@
"DESTDIR=[CLEANUP]/clang_tmp_1/zlib_install"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.install",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/clang_toolchain.expected/ci-mac-x64.json b/recipes/clang_toolchain.expected/ci-mac-x64.json
index f4b0e4c..a60601a 100644
--- a/recipes/clang_toolchain.expected/ci-mac-x64.json
+++ b/recipes/clang_toolchain.expected/ci-mac-x64.json
@@ -776,13 +776,6 @@
"-j80"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.build",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -795,13 +788,6 @@
"DESTDIR=[CLEANUP]/clang_tmp_1/zlib_install"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.install",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/clang_toolchain.expected/linux-arm64.json b/recipes/clang_toolchain.expected/linux-arm64.json
index 8e50089..f7881f9 100644
--- a/recipes/clang_toolchain.expected/linux-arm64.json
+++ b/recipes/clang_toolchain.expected/linux-arm64.json
@@ -627,13 +627,6 @@
"-j8"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/linux-arm64",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.build",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -646,13 +639,6 @@
"DESTDIR=[CLEANUP]/clang_tmp_1/zlib_install"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/linux-arm64",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.install",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/clang_toolchain.expected/prod-linux-x64.json b/recipes/clang_toolchain.expected/prod-linux-x64.json
index 3d5abcf..0906ae4 100644
--- a/recipes/clang_toolchain.expected/prod-linux-x64.json
+++ b/recipes/clang_toolchain.expected/prod-linux-x64.json
@@ -699,7 +699,7 @@
"env": {
"AR": "[START_DIR]/cipd/bin/llvm-ar",
"CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64",
+ "CFLAGS": "-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64 -flto",
"NM": "[START_DIR]/cipd/bin/llvm-nm",
"RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
},
@@ -714,13 +714,6 @@
"-j80"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.build",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -733,13 +726,6 @@
"DESTDIR=[CLEANUP]/clang_tmp_1/zlib_install"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.install",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -1060,7 +1046,7 @@
"AR=[START_DIR]/cipd/bin/llvm-ar",
"RANLIB=[START_DIR]/cipd/bin/llvm-ranlib",
"NM=[START_DIR]/cipd/bin/llvm-nm",
- "CFLAGS=-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64"
+ "CFLAGS=-O3 -fPIC --target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/linux-amd64 -flto"
],
"cwd": "[START_DIR]/libxml2/obj",
"name": "libxml2.configure",
diff --git a/recipes/clang_toolchain.expected/prod-mac-x64.json b/recipes/clang_toolchain.expected/prod-mac-x64.json
index 30a843f..6c02b38 100644
--- a/recipes/clang_toolchain.expected/prod-mac-x64.json
+++ b/recipes/clang_toolchain.expected/prod-mac-x64.json
@@ -761,7 +761,7 @@
"env": {
"AR": "[START_DIR]/cipd/bin/llvm-ar",
"CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path",
+ "CFLAGS": "-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path -flto",
"NM": "[START_DIR]/cipd/bin/llvm-nm",
"RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
},
@@ -776,13 +776,6 @@
"-j80"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.build",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -795,13 +788,6 @@
"DESTDIR=[CLEANUP]/clang_tmp_1/zlib_install"
],
"cwd": "[START_DIR]/zlib/obj",
- "env": {
- "AR": "[START_DIR]/cipd/bin/llvm-ar",
- "CC": "[CACHE]/goma/client/gomacc [START_DIR]/cipd/bin/clang",
- "CFLAGS": "-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path",
- "NM": "[START_DIR]/cipd/bin/llvm-nm",
- "RANLIB": "[START_DIR]/cipd/bin/llvm-ranlib"
- },
"name": "zlib.install",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -1122,7 +1108,7 @@
"AR=[START_DIR]/cipd/bin/llvm-ar",
"RANLIB=[START_DIR]/cipd/bin/llvm-ranlib",
"NM=[START_DIR]/cipd/bin/llvm-nm",
- "CFLAGS=-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path"
+ "CFLAGS=-O3 -fPIC --target=x86_64-apple-darwin --sysroot=/some/xcode/path -flto"
],
"cwd": "[START_DIR]/libxml2/obj",
"name": "libxml2.configure",
diff --git a/recipes/clang_toolchain.py b/recipes/clang_toolchain.py
index bf859b4..91c229d 100644
--- a/recipes/clang_toolchain.py
+++ b/recipes/clang_toolchain.py
@@ -84,12 +84,13 @@
git_checkout.fetch_ref = 'refs/tags/v1.2.9'
obj_dir = zlib_dir.join('obj')
api.file.ensure_directory('make objdir', obj_dir)
- with api.context(cwd=obj_dir, env=env):
- api.step('configure', [
- src_dir.join('configure'),
- '--prefix=',
- '--static',
- ])
+ with api.context(cwd=obj_dir):
+ with api.context(env=env):
+ api.step('configure', [
+ src_dir.join('configure'),
+ '--prefix=',
+ '--static',
+ ])
api.step('build', ['make', '-j%d' % jobs])
api.step('install', ['make', 'install', 'DESTDIR=%s' % destdir])
@@ -231,9 +232,9 @@
'CC': ('%s %s' % (api.goma.goma_dir.join('gomacc'),
cipd_dir.join('bin', 'clang')))
if use_goma else cipd_dir.join('bin', 'clang'),
- 'CFLAGS':
- '-O3 -fPIC --target=%s --sysroot=%s' % (target_triple,
- target_sysroot),
+ 'CFLAGS': (
+ '-O3 -fPIC --target=%s --sysroot=%s' %
+ (target_triple, target_sysroot) + (' -flto' if prod else '')),
'AR':
cipd_dir.join('bin', 'llvm-ar'),
'NM':