Open
Bug 1430094
Opened 7 years ago
Updated 2 years ago
fir_filter_sse.cc being built on non-x86 platforms
Categories
(Core :: WebRTC, defect, P5)
Core
WebRTC
Tracking
()
NEW
People
(Reporter: dan, Unassigned)
References
Details
After recent (bug 1393119 ??) changes in webrtc code and/or build system the media/webrtc/trunk/webrtc/common_audio/fir_filter_sse.cc file is being compiled on non-x86 platforms (aarch64, ppc64, ppc64le) and the build fails with
...
/usr/bin/g++ -o Unified_cpp_common_audio_sse2_gn0.o -c -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/dist/system_wrappers -include /home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/config/gcc_hidden.h -DNDEBUG -DTRIMMED=1 -DWEBRTC_MOZILLA_BUILD -DV8_DEPRECATION_WARNINGS -DWEBRTC_RESTRICT_LOGGING -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DCHROMIUM_BUILD -DEXPAT_RELATIVE_PATH -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNVALGRIND -D_FILE_OFFSET_BITS=64 -DUSE_NSS_CERTS=1 -DWEBRTC_POSIX -DWEBRTC_LINUX -DUSE_X11=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/ipc/ipdl/_ipdlheaders -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/ipc/chromium/src -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/ipc/glue -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/media/webrtc/trunk -I/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/dist/include -fPIC -DMOZILLA_CLIENT -include /home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/mozilla-config.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O2 -fno-omit-frame-pointer -MD -MP -MF .deps/Unified_cpp_common_audio_sse2_gn0.o.pp /home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn/Unified_cpp_common_audio_sse2_gn0.cpp
In file included from /home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn/Unified_cpp_common_audio_sse2_gn0.cpp:2:0:
/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/media/webrtc/trunk/webrtc/common_audio/fir_filter_sse.cc:15:10: fatal error: xmmintrin.h: No such file or directory
#include <xmmintrin.h>
^~~~~~~~~~~~~
compilation terminated.
gmake[4]: *** [/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/config/rules.mk:1042: Unified_cpp_common_audio_sse2_gn0.o] Error 1
gmake[4]: Leaving directory '/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/obj-aarch64-unknown-linux-gnu/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn'
gmake[3]: *** [/home/jenkins/workspace/Firefox-default/label/aarch64/firefox-src/config/recurse.mk:73: media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn/target] Error 2
...
Updated•7 years ago
|
Looks like a change from Friday fixed the problem, we've got a successful build on all arches.
Comment 2•7 years ago
|
||
Chris, this looks like it might be a moz.build code gen bug. The BUILD.gn file at [1] checks for current_cpu == "x86" or current_cpu == "x64" but the moz.build file at [2] appears to be including it for all Linux builds:
[1] https://searchfox.org/mozilla-central/rev/41925c0b6c6d58578690121de439d2a8d3d690f3/media/webrtc/trunk/webrtc/common_audio/BUILD.gn#204
[2] https://hg.mozilla.org/mozilla-central/file/eac997d73d67/media/webrtc/trunk/moz.build#l105
Flags: needinfo?(cmanchester)
Comment 3•7 years ago
|
||
(In reply to Dan Horák from comment #1)
> Looks like a change from Friday fixed the problem, we've got a successful
> build on all arches.
Dan, we plan to reland Bug 1393119 on January 23 when Nightly 60 opens up. We'll do our best to get this problem sorted out between now and then.
(In reply to Dan Minor [:dminor] from comment #3)
> (In reply to Dan Horák from comment #1)
> > Looks like a change from Friday fixed the problem, we've got a successful
> > build on all arches.
>
> Dan, we plan to reland Bug 1393119 on January 23 when Nightly 60 opens up.
> We'll do our best to get this problem sorted out between now and then.
Ah, I see, thanks for info.
Comment 5•7 years ago
|
||
(In reply to Dan Minor [:dminor] from comment #2)
> Chris, this looks like it might be a moz.build code gen bug. The BUILD.gn
> file at [1] checks for current_cpu == "x86" or current_cpu == "x64" but the
> moz.build file at [2] appears to be including it for all Linux builds:
>
> [1]
> https://searchfox.org/mozilla-central/rev/
> 41925c0b6c6d58578690121de439d2a8d3d690f3/media/webrtc/trunk/webrtc/
> common_audio/BUILD.gn#204
> [2]
> https://hg.mozilla.org/mozilla-central/file/eac997d73d67/media/webrtc/trunk/
> moz.build#l105
This is not an ideal failure mode, but as far as I can tell this is a case where we need to add additional json configs for these platforms. fir_filter_sse.cc is built in every linux config we have checked in, so the moz.build generator simplifies this condition. We could be more strict about this and reject platforms we don't have configs for, but the solution in any event is to add json configs for these platforms.
Flags: needinfo?(cmanchester)
Comment 6•7 years ago
|
||
Dan, it looks like you will have to follow the instructions at https://firefox-source-docs.mozilla.org/build/buildsystem/gn.html to generate json gn configs and moz.build files for your platforms.
If the only thing that is broken is SSE being enabled, you might be able to copy an existing json gn config, change the processor, and remove SSE.
The other alternative would be to build with webrtc disabled.
I'm sorry about this, I wish I could be more help, but I have no access to suitable machines to test with. If you do end up creating json config files, please attach them here and I'll roll them up into my reland of Bug 1393119.
Flags: needinfo?(dan)
Updated•7 years ago
|
Status: UNCONFIRMED → NEW
Rank: 15 → 45
Ever confirmed: true
Priority: P2 → P5
OK, I'm going to look into it, but it doesn't look straightforward to me :-)
Dan, send me an email if you want access to a ppc64 or ppc64le machine. It's not a problem.
Flags: needinfo?(dan)
I haven't had much success with GN yet, but I will try further.
The current failure looks like
....
/usr/bin/g++ -o Unified_cpp_common_audio_sse2_gn0.o -c -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/dist/system_wrappers -include /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/config/gcc_hidden.h -DNDEBUG -DTRIMMED=1 -DWEBRTC_MOZILLA_BUILD -DV8_DEPRECATION_WARNINGS -DWEBRTC_RESTRICT_LOGGING -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DCHROMIUM_BUILD -DEXPAT_RELATIVE_PATH -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNVALGRIND -D_FILE_OFFSET_BITS=64 -DUSE_NSS_CERTS=1 -DWEBRTC_POSIX -DWEBRTC_LINUX -DUSE_X11=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/ipc/ipdl/_ipdlheaders -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/ipc/chromium/src -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/ipc/glue -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/media/webrtc/trunk -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/dist/include -fPIC -DMOZILLA_CLIENT -include /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/mozilla-config.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O2 -fno-omit-frame-pointer -msse2 -MD -MP -MF .deps/Unified_cpp_common_audio_sse2_gn0.o.pp /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/media/webrtc/trunk/webrtc/common_audio/common_audio_sse2_gn/Unified_cpp_common_audio_sse2_gn0.cpp
g++: error: unrecognized command line option ‘-msse2’; did you mean ‘-misel’?
gmake[4]: *** [/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/config/rules.mk:1049: Unified_cpp_common_audio_sse2_gn0.o] Error 1
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•