New issue
Advanced search Search tips

Issue 607938 link

Starred by 2 users

Issue metadata

Status: Archived
Owner: ----
Closed: May 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Compiling Chromium on a x86 host using gn doesn't add -msse2 flag, resulting in compile errors

Reported by saiarcot...@gmail.com, Apr 29 2016

Issue description

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

Steps to reproduce the problem:
Use gn to compile Chromium on an x86 host for a x86 target.

Args used: treat_warnings_as_errors=false use_sysroot=false enable_nacl=false linux_use_bundled_binutils=false use_gold=false enable_hidpi=true enable_widevine=true fieldtrial_testing_like_official_build=true target_cpu="x86" use_allocator="none" remove_webcore_debug_symbols=true is_clang=false is_component_build=true proprietary_codecs=true

What is the expected behavior?
Chromium compiles successfully

What went wrong?
Compiling media/base/vector_math.cc fails due to GCC errors (likely because -msse2 wasn't added).

Error message:
FAILED: g++ -MMD -MF obj/media/shared_memory_support/vector_math.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_MDNS=1 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_CLIPBOARD_AURAX11=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_TOPCHROME_MD=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DCOMPONENT_BUILD -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DUSE_PULSEAUDIO -DDLOPEN_PULSEAUDIO -DMEDIA_IMPLEMENTATION -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m32 -Wall -Wno-unused-local-typedefs -Wno-missing-field-initializers -Wno-unused-parameter -O0 -g2 -fvisibility=hidden -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-narrowing -fno-rtti -fno-exceptions -c ../../media/base/vector_math.cc -o obj/media/shared_memory_support/vector_math.o
../../media/base/vector_math.cc: In function ‘void media::vector_math::FMUL_SSE(const float*, float, int, float*)’:
../../media/base/vector_math.cc:96:37: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
   __m128 m_scale = _mm_set_ps1(scale);
                                     ^
In file included from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31:0,
                 from /usr/include/i386-linux-gnu/c++/5/bits/opt_random.h:33,
                 from /usr/include/c++/5/random:50,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from ../../media/base/vector_math.cc:8:
/usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:895:1: error: inlining failed in call to always_inline ‘__m128 _mm_set_ps1(float)’: target specific option mismatch
 _mm_set_ps1 (float __F)
 ^
../../media/base/vector_math.cc:96:37: error: called from here
   __m128 m_scale = _mm_set_ps1(scale);
                                     ^
In file included from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31:0,
                 from /usr/include/i386-linux-gnu/c++/5/bits/opt_random.h:33,
                 from /usr/include/c++/5/random:50,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from ../../media/base/vector_math.cc:8:
/usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:971:1: error: inlining failed in call to always_inline ‘void _mm_store_ps(float*, __m128)’: target specific option mismatch
 _mm_store_ps (float *__P, __m128 __A)
 ^
../../media/base/vector_math.cc:98:70: error: called from here
     _mm_store_ps(dest + i, _mm_mul_ps(_mm_load_ps(src + i), m_scale));
                                                                      ^
In file included from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31:0,
                 from /usr/include/i386-linux-gnu/c++/5/bits/opt_random.h:33,
                 from /usr/include/c++/5/random:50,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from ../../media/base/vector_math.cc:8:
/usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:193:1: error: inlining failed in call to always_inline ‘__m128 _mm_mul_ps(__m128, __m128)’: target specific option mismatch
 _mm_mul_ps (__m128 __A, __m128 __B)
 ^
../../media/base/vector_math.cc:98:17: error: called from here
     _mm_store_ps(dest + i, _mm_mul_ps(_mm_load_ps(src + i), m_scale));
                 ^
In file included from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31:0,
                 from /usr/include/i386-linux-gnu/c++/5/bits/opt_random.h:33,
                 from /usr/include/c++/5/random:50,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from ../../media/base/vector_math.cc:8:
/usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:922:1: error: inlining failed in call to always_inline ‘__m128 _mm_load_ps(const float*)’: target specific option mismatch
 _mm_load_ps (float const *__P)
 ^
../../media/base/vector_math.cc:98:17: error: called from here
     _mm_store_ps(dest + i, _mm_mul_ps(_mm_load_ps(src + i), m_scale));

Did this work before? N/A 

Chrome version: 51.0.2679.0  Channel: n/a
OS Version: 
Flash Version:
 

Comment 1 by ajha@chromium.org, May 3 2016

Components: Build
Labels: Te-NeedsFurtherTriage
Project Member

Comment 2 by bugdroid1@chromium.org, May 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bfb9e9ef5c13843e22a74a7bced0d48b6f42c112

commit bfb9e9ef5c13843e22a74a7bced0d48b6f42c112
Author: saiarcot895 <saiarcot895@gmail.com>
Date: Fri May 06 23:42:18 2016

Add SSE2/MMX build flags when building on an x86 host. This is necessary
because some files use SSE2 extensions, which may not be available on
all x86 CPUs.

BUG= 607938 
R=dpranke@chromium.org

Review-Url: https://codereview.chromium.org/1952043003
Cr-Commit-Position: refs/heads/master@{#392206}

[modify] https://crrev.com/bfb9e9ef5c13843e22a74a7bced0d48b6f42c112/build/config/compiler/BUILD.gn

Project Member

Comment 3 by sheriffbot@chromium.org, May 8 2017

Status: Archived (was: Unconfirmed)
Issue has not been modified or commented on in the last 365 days, please re-open or file a new bug if this is still an issue.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Sign in to add a comment