diff options
author | ljagielski <ljagielski@opera.com> | 2015-12-16 23:04:29 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-17 07:05:01 +0000 |
commit | 176ff2c7a3285a851a534603e2e893664ec5ace7 (patch) | |
tree | d4f454a485de0e9cc6227c1849bce6ed0f6b5b92 /breakpad/BUILD.gn | |
parent | 8430ab46caf6988e34d8a6503822eb4e71f90e04 (diff) | |
download | chromium_src-176ff2c7a3285a851a534603e2e893664ec5ace7.zip chromium_src-176ff2c7a3285a851a534603e2e893664ec5ace7.tar.gz chromium_src-176ff2c7a3285a851a534603e2e893664ec5ace7.tar.bz2 |
[Linux] Turn off -mstackrealign for breakpad in ia32.
There's a clang bug which causes crashes of syscalls which use many
registers for argument passing in ia32 architecture.
https://llvm.org/bugs/show_bug.cgi?id=16830
BUG=556393
Review URL: https://codereview.chromium.org/1473203002
Cr-Commit-Position: refs/heads/master@{#365770}
Diffstat (limited to 'breakpad/BUILD.gn')
-rw-r--r-- | breakpad/BUILD.gn | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/breakpad/BUILD.gn b/breakpad/BUILD.gn index be2fe55..231abcc 100644 --- a/breakpad/BUILD.gn +++ b/breakpad/BUILD.gn @@ -554,6 +554,13 @@ if (is_linux || is_android) { cflags = [ "-marm" ] } + if (current_cpu == "x86" && is_clang) { + # Clang's -mstackrealign doesn't work well with + # linux_syscall_support.h hand written asm syscalls. + # See https://crbug.com/556393 + cflags -= [ "-mstackrealign" ] + } + if (is_android) { sources += [ "src/common/android/breakpad_getcontext.S" ] } @@ -659,6 +666,13 @@ if (is_linux || is_android) { libs = [ "log" ] include_dirs += [ "src/common/android/include" ] } + + if (current_cpu == "x86" && is_clang) { + # Clang's -mstackrealign doesn't work well with + # linux_syscall_support.h hand written asm syscalls. + # See https://crbug.com/556393 + cflags -= [ "-mstackrealign" ] + } } executable("linux_dumper_unittest_helper") { |