From af7fdfcde8fe2b6037ddef3bf0738e9deaa6d496 Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Fri, 29 Aug 2014 17:41:13 +0000 Subject: [PATCH] Add LTO support for Android Chromium. This is to add support for a Link-Time Optimizations experiment in Android Chromium. As it is disabled by default, it won't change anything for most configurations. BUG=chromium:407544 R=andrew@webrtc.org, tina.legrand@webrtc.org Review URL: https://webrtc-codereview.appspot.com/21299004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7009 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/build/common.gypi | 5 +++++ webrtc/common_audio/common_audio.gyp | 9 +++++++++ .../audio_coding/codecs/isac/fix/source/isacfix.gypi | 9 +++++++++ webrtc/modules/audio_processing/audio_processing.gypi | 7 +++++++ 4 files changed, 30 insertions(+) diff --git a/webrtc/build/common.gypi b/webrtc/build/common.gypi index cbc398e400..00bd4d4576 100644 --- a/webrtc/build/common.gypi +++ b/webrtc/build/common.gypi @@ -112,6 +112,11 @@ 'mips_fpu%' : 1, 'enable_android_opensl%': 1, + # Link-Time Optimizations + # Executes code generation at link-time instead of compile-time + # https://gcc.gnu.org/wiki/LinkTimeOptimization + 'use_lto%': 0, + 'conditions': [ ['build_with_chromium==1', { # Exclude pulse audio on Chromium since its prerequisites don't require diff --git a/webrtc/common_audio/common_audio.gyp b/webrtc/common_audio/common_audio.gyp index 58b9bb983d..ae3bacb77c 100644 --- a/webrtc/common_audio/common_audio.gyp +++ b/webrtc/common_audio/common_audio.gyp @@ -184,6 +184,15 @@ 'signal_processing/min_max_operations_neon.S', 'signal_processing/vector_scaling_operations_neon.S', ], + 'conditions': [ + # Disable LTO in common_audio_neon target due to compiler bug + ['use_lto==1', { + 'cflags!': [ + '-flto', + '-ffat-lto-objects', + ], + }], + ], }, ], # targets }], diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi b/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi index 7010b1ee47..7bef170d48 100644 --- a/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi +++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi @@ -140,6 +140,15 @@ 'lpc_masking_model_neon.S', 'transform_neon.S', ], + 'conditions': [ + # Disable LTO in isac_neon target due to compiler bug + ['use_lto==1', { + 'cflags!': [ + '-flto', + '-ffat-lto-objects', + ], + }], + ], }, ], }], diff --git a/webrtc/modules/audio_processing/audio_processing.gypi b/webrtc/modules/audio_processing/audio_processing.gypi index 98d437f8bf..9298f118f9 100644 --- a/webrtc/modules/audio_processing/audio_processing.gypi +++ b/webrtc/modules/audio_processing/audio_processing.gypi @@ -222,6 +222,13 @@ ], 'includes!': ['../../build/arm_neon.gypi',], }], + # Disable LTO in audio_processing_neon target due to compiler bug + ['use_lto==1', { + 'cflags!': [ + '-flto', + '-ffat-lto-objects', + ], + }], ], }], }],