New issue
Advanced search Search tips

Issue 904232 link

Starred by 1 user

Issue metadata

Status: Unconfirmed
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Compiling Chromium on a x86 host results in mmx related compile errors in media/base/vector_math.cc

Reported by m...@gmx.net, Nov 11

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36

Steps to reproduce the problem:
1. Use gn to compile Chromium on an x86 host for a x86 target.
2. Args used: gn gen --args= is_clang=true clang_use_chrome_plugins=false custom_toolchain="//build/toolchain/linux/unbundle:default" host_toolchain="//build/toolchain/linux/unbundle:default" is_debug=false is_component_build=false use_jumbo_build=false use_allocator="none" enable_nacl=false use_system_harfbuzz=true enable_hangout_services_extension=false enable_widevine=false use_cups=true use_gnome_keyring=false use_kerberos=false use_pulseaudio=true fieldtrial_testing_like_official_build=true use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false use_lld=false proprietary_codecs=true ffmpeg_branding="Chrome" google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" google_default_client_id="329227923882.apps.googleusercontent.com" google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu" target_cpu="x86" treat_warnings_as_errors=false fatal_linker_warnings=false  out/Release

What is the expected behavior?
Chromium compiles successfully

What went wrong?
This bug is probably related to https://bugs.chromium.org/p/chromium/issues/detail?id=607938. Compile fails in vector_math.cc with output as follows:

[779/16895] i686-pc-linux-gnu-clang++ -MMD -MF obj/media/shared_memory_support/vector_math.o.d -DMEDIA_SHMEM_IMPLEMENTATION -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DUSE_PULSEAUDIO -DDLOPEN_PULSEAUDIO -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -no-canonical-prefixes -momit-leaf-frame-pointer -Wall -Wextra -Wimplicit-fallthrough -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-user-defined-warnings -Wno-unused-lambda-capture -Wno-null-pointer-arithmetic -Wno-enum-compare-switch -fno-omit-frame-pointer -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -std=c++14 -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -march=i686 -pipe -c ../../media/base/vector_math.cc -o obj/media/shared_memory_support/vector_math.o
FAILED: obj/media/shared_memory_support/vector_math.o
i686-pc-linux-gnu-clang++ -MMD -MF obj/media/shared_memory_support/vector_math.o.d -DMEDIA_SHMEM_IMPLEMENTATION -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DUSE_PULSEAUDIO -DDLOPEN_PULSEAUDIO -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -no-canonical-prefixes -momit-leaf-frame-pointer -Wall -Wextra -Wimplicit-fallthrough -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-user-defined-warnings -Wno-unused-lambda-capture -Wno-null-pointer-arithmetic -Wno-enum-compare-switch -fno-omit-frame-pointer -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -std=c++14 -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -march=i686 -pipe -c ../../media/base/vector_math.cc -o obj/media/shared_memory_support/vector_math.o
../../media/base/vector_math.cc:98:20: error: always_inline function '_mm_set_ps1' requires target feature 'mmx', but would be inlined into function 'FMUL_SSE' that is compiled without support for 'mmx'
  __m128 m_scale = _mm_set_ps1(scale);
                   ^
../../media/base/vector_math.cc:100:5: error: always_inline function '_mm_store_ps' requires target feature 'mmx', but would be inlined into function 'FMUL_SSE' that is compiled without support for 'mmx'
    _mm_store_ps(dest + i, _mm_mul_ps(_mm_load_ps(src + i), m_scale));
    ^
../../media/base/vector_math.cc:100:28: error: always_inline function '_mm_mul_ps' requires target feature 'mmx', but would be inlined into function 'FMUL_SSE' that is compiled without support for 'mmx'
    _mm_store_ps(dest + i, _mm_mul_ps(_mm_load_ps(src + i), m_scale));
                           ^
../../media/base/vector_math.cc:100:39: error: always_inline function '_mm_load_ps' requires target feature 'mmx', but would be inlined into function 'FMUL_SSE' that is compiled without support for 'mmx'
    _mm_store_ps(dest + i, _mm_mul_ps(_mm_load_ps(src + i), m_scale));
                                      ^
../../media/base/vector_math.cc:110:20: error: always_inline function '_mm_set_ps1' requires target feature 'mmx', but would be inlined into function 'FMAC_SSE' that is compiled without support for 'mmx'
  __m128 m_scale = _mm_set_ps1(scale);
                   ^
../../media/base/vector_math.cc:112:5: error: always_inline function '_mm_store_ps' requires target feature 'mmx', but would be inlined into function 'FMAC_SSE' that is compiled without support for 'mmx'
    _mm_store_ps(dest + i, _mm_add_ps(_mm_load_ps(dest + i),
    ^
../../media/base/vector_math.cc:112:28: error: always_inline function '_mm_add_ps' requires target feature 'mmx', but would be inlined into function 'FMAC_SSE' that is compiled without support for 'mmx'
    _mm_store_ps(dest + i, _mm_add_ps(_mm_load_ps(dest + i),
                           ^
../../media/base/vector_math.cc:112:39: error: always_inline function '_mm_load_ps' requires target feature 'mmx', but would be inlined into function 'FMAC_SSE' that is compiled without support for 'mmx'
    _mm_store_ps(dest + i, _mm_add_ps(_mm_load_ps(dest + i),
                                      ^
../../media/base/vector_math.cc:113:18: error: always_inline function '_mm_mul_ps' requires target feature 'mmx', but would be inlined into function 'FMAC_SSE' that is compiled without support for 'mmx'
                 _mm_mul_ps(_mm_load_ps(src + i), m_scale)));
                 ^
../../media/base/vector_math.cc:113:29: error: always_inline function '_mm_load_ps' requires target feature 'mmx', but would be inlined into function 'FMAC_SSE' that is compiled without support for 'mmx'
                 _mm_mul_ps(_mm_load_ps(src + i), m_scale)));
                            ^
../../media/base/vector_math.cc:146:38: error: always_inline function '_mm_set_ps1' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
  const __m128 smoothing_factor_x4 = _mm_set_ps1(smoothing_factor);
                                     ^
../../media/base/vector_math.cc:148:33: error: always_inline function '_mm_set_ps1' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
  const __m128 weight_prev_x4 = _mm_set_ps1(weight_prev);
                                ^
../../media/base/vector_math.cc:150:7: error: always_inline function '_mm_mul_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
      _mm_mul_ps(weight_prev_x4, weight_prev_x4);
      ^
../../media/base/vector_math.cc:152:7: error: always_inline function '_mm_mul_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
      _mm_mul_ps(weight_prev_squared_x4, weight_prev_squared_x4);
      ^
../../media/base/vector_math.cc:156:19: error: always_inline function '_mm_setzero_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
  __m128 max_x4 = _mm_setzero_ps();
                  ^
../../media/base/vector_math.cc:157:20: error: always_inline function '_mm_setr_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
  __m128 ewma_x4 = _mm_setr_ps(0.0f, 0.0f, 0.0f, initial_value);
                   ^
../../media/base/vector_math.cc:160:15: error: always_inline function '_mm_mul_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
    ewma_x4 = _mm_mul_ps(ewma_x4, weight_prev_4th_x4);
              ^
../../media/base/vector_math.cc:161:30: error: always_inline function '_mm_load_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
    const __m128 sample_x4 = _mm_load_ps(src + i);
                             ^
../../media/base/vector_math.cc:162:38: error: always_inline function '_mm_mul_ps' requires target feature 'mmx', but would be inlined into function 'EWMAAndMaxPower_SSE' that is compiled without support for 'mmx'
    const __m128 sample_squared_x4 = _mm_mul_ps(sample_x4, sample_x4);
                                     ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
ninja: build stopped: subcommand failed.

Did this work before? N/A 

Chrome version: 70.0.3538.67  Channel: beta
OS Version: 4.14.78-gentoo
Flash Version: -
 

Comment 1 by m...@gmx.net, Nov 11

I'm afraid I couldn't pick a really matching category (component -> build) for this, so any help assigning it to somthing better is appreciated :)
Components: -Platform>DevTools Build
Labels: Triaged-ET TE-NeedsTriageHelp Needs-Triage-M70
mopf@ Thanks for the issue.

This issue is out of scope of triaging at TE end as it is related to Build. Hence adding 'TE-NeedsTriageHelp' label and requesting 'Build' team to look into the issue and help in further triaging.

Thanks..

Comment 4 by m...@gmx.net, Nov 17

A little update on this: chromium 65.0.3315.3 builds fine...

Comment 5 by m...@gmx.net, Nov 25

Seems like the problem was due to ambiguous CFLAGS / CXXFLAGS settings. Has been fixed here: https://bugs.gentoo.org/671412

Sign in to add a comment