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:
evan@chromium.org 2012-02-23 19:10:51 +00:00
Родитель fda208871a
Коммит 1a8484f085
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -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': [