diff options
author | treib <treib@chromium.org> | 2014-09-01 10:06:48 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-01 17:08:32 +0000 |
commit | 0b804d0007f4fc6b6d99f699e160819ab90c1798 (patch) | |
tree | 512f75edc67e87197774cebdd510e42c18f386c3 /build | |
parent | 89a280795dfc11b6fa3139f5760aae614399358e (diff) | |
download | chromium_src-0b804d0007f4fc6b6d99f699e160819ab90c1798.zip chromium_src-0b804d0007f4fc6b6d99f699e160819ab90c1798.tar.gz chromium_src-0b804d0007f4fc6b6d99f699e160819ab90c1798.tar.bz2 |
Revert of Reland https://codereview.chromium.org/298333007/: Enable mac_strip_release under ASan on OSX. Remo… (patchset #1 id:1 of https://codereview.chromium.org/517803004/)
Reason for revert:
Breaks *lots* of browser_tests on Mac ASan. See e.g.:
http://build.chromium.org/p/chromium.memory/buildstatus?builder=Mac%20ASan%2064%20Tests%20%281%29&number=2036
http://build.chromium.org/p/chromium.memory/buildstatus?builder=Mac%20ASan%2064%20Tests%20%282%29&number=2600
http://build.chromium.org/p/chromium.memory/buildstatus?builder=Mac%20ASan%2064%20Tests%20%283%29&number=2424
Original issue's description:
> Reland https://codereview.chromium.org/298333007/: Enable mac_strip_release under ASan on OSX. Remove the .saves files.
>
> The reasons for reverting the CL hadn't been documented. I'm going to reland and update the bugs.
>
> Unce upon a time the ASan runtime library used to be statically linked into
> the executables on OSX.
> Because that library provided a number of API functions needed by the shared
> libraries, we had custom ASan-specific .saves files that told the `strip`
> utility to preserve those functions when stripping the executables.
>
> Then ASan switched to using dynamic runtime library, which instantly broke the
> stripping step, because the executables weren't necessarily referencing all the
> ASan API functions (issue 242503).
> As a result, stripping has been disabled, and we haven't had .dSYM debug info
> for ASan builds for more than a year now (issue 148383).
>
> Because the ASan API functions are now undefined in the executables, it's
> actually senseless to use the .saves files to preserve those functions.
> This CL deletes the .saves files and turns mac_strip_release on for ASan
> builds.
>
> BUG=148383, 242503, 170739, 166857
> TBR=mark@chromium.org
>
> Committed: https://chromium.googlesource.com/chromium/src/+/d5319a149964f953e7506c1ff2b33f90974d19ea
TBR=mark@chromium.org,glider@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=148383, 242503, 170739, 166857
Review URL: https://codereview.chromium.org/522743003
Cr-Commit-Position: refs/heads/master@{#292885}
Diffstat (limited to 'build')
-rw-r--r-- | build/asan.saves | 23 | ||||
-rw-r--r-- | build/common.gypi | 22 |
2 files changed, 43 insertions, 2 deletions
diff --git a/build/asan.saves b/build/asan.saves new file mode 100644 index 0000000..0c4e4ed --- /dev/null +++ b/build/asan.saves @@ -0,0 +1,23 @@ +# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This file lists symbols that should not be stripped by Xcode from the binaries +# built for Mac OS X using AddressSanitizer +# (http://dev.chromium.org/developers/testing/addresssanitizer). + +___asan_init +___asan_handle_no_return +___asan_register_global +___asan_register_globals +___asan_unregister_globals +___asan_report_load1 +___asan_report_load2 +___asan_report_load4 +___asan_report_load8 +___asan_report_load16 +___asan_report_store1 +___asan_report_store2 +___asan_report_store4 +___asan_report_store8 +___asan_report_store16 diff --git a/build/common.gypi b/build/common.gypi index c48fc71..71d9694 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -2141,8 +2141,9 @@ 'clang%': 1, }], ['asan==1 and OS=="mac"', { - # Strip and produce the .dSYM files. - 'mac_strip_release': 1, + # TODO(glider): we do not strip ASan binaries until the dynamic ASan + # runtime is fully adopted. See http://crbug.com/242503. + 'mac_strip_release': 0, }], ['tsan==1', { 'use_custom_libcxx%': 1, @@ -4985,6 +4986,16 @@ ], }, ], + 'conditions': [ + ['asan==1', { + 'variables': { + 'asan_saves_file': 'asan.saves', + }, + 'xcode_settings': { + 'CHROMIUM_STRIP_SAVE_FILE': '<(asan_saves_file)', + }, + }], + ], 'target_conditions': [ ['mac_pie==1 and release_valgrind_build==0', { # Turn on position-independence (ASLR) for executables. When @@ -5024,6 +5035,13 @@ # additional flags are added with STRIPFLAGS. 'STRIPFLAGS': '-x', }], # _type=="shared_library" or _type=="loadable_module" + ['_type=="executable"', { + 'conditions': [ + ['asan==1', { + 'STRIPFLAGS': '-s $(CHROMIUM_STRIP_SAVE_FILE)', + }] + ], + }], # _type=="executable" and asan==1 ], # target_conditions }, # xcode_settings }, # configuration "Release" |