linux: don't instrument mmx functions
Shadow stacks use -finstrument-functions to hook all function entry/exit. But mmx-related functions expect to be inlined so the compiler can compile them out into mmx instructions. This change excludes the mmx intrinsics header file from instrumentation. Without it, builds wil fail with errors like the following: ../../third_party/gold/gold64: obj/media/libyuv_convert.a(obj/media/base/yuv_convert.yuv_convert.o): in function media::EmptyRegisterState():yuv_convert.cc(.text._ZN5media18EmptyRegisterStateEv+0x29): error: undefined reference to '_mm_empty()' (_mm_empty() is an mmx intrinsic function.) Review URL: http://codereview.chromium.org/9416068 git-svn-id: http://src.chromium.org/svn/trunk/src/build@123289 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
Родитель
fda208871a
Коммит
1a8484f085
|
@ -1986,7 +1986,12 @@
|
|||
}],
|
||||
['linux_keep_shadow_stacks==1', {
|
||||
'defines': ['KEEP_SHADOW_STACKS'],
|
||||
'cflags': ['-finstrument-functions'],
|
||||
'cflags': [
|
||||
'-finstrument-functions',
|
||||
# Allow mmx intrinsics to inline, so that the compiler can expand
|
||||
# the intrinsics.
|
||||
'-finstrument-functions-exclude-file-list=mmintrin.h',
|
||||
],
|
||||
}],
|
||||
['linux_use_gold_flags==1', {
|
||||
'ldflags': [
|
||||
|
|
Загрузка…
Ссылка в новой задаче