Firefox build failure on armv7hl: 59:42.43 /builddir/build/BUILD/firefox-63.0/media/libmkv/EbmlBufferWriter.c:43:13: warning: '_Serialize' defined but not used [-Wunused-function] 59:42.43 static void _Serialize(EbmlGlobal *glob, const unsigned char *p, const unsigned char *q) { 59:42.43 ^~~~~~~~~~ 59:43.00 media/libaom 59:45.50 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.51 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h: In function 'load_u8_8x8': 59:45.51 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.51 vld1_u8 (const uint8_t * __a) 59:45.51 ^~~~~~~ 59:45.51 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.51 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:52:9: note: called from here 59:45.51 *s7 = vld1_u8(s); 59:45.52 ^~~~~~~~~~ 59:45.52 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.52 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.52 vld1_u8 (const uint8_t * __a) 59:45.52 ^~~~~~~ 59:45.52 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.52 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:50:9: note: called from here 59:45.52 *s6 = vld1_u8(s); 59:45.52 ^~~~~~~~~~ 59:45.52 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.52 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.52 vld1_u8 (const uint8_t * __a) 59:45.52 ^~~~~~~ 59:45.52 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.52 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:48:9: note: called from here 59:45.52 *s5 = vld1_u8(s); 59:45.52 ^~~~~~~~~~ 59:45.52 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.52 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.52 vld1_u8 (const uint8_t * __a) 59:45.53 ^~~~~~~ 59:45.53 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.53 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:46:9: note: called from here 59:45.53 *s4 = vld1_u8(s); 59:45.53 ^~~~~~~~~~ 59:45.53 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.53 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.53 vld1_u8 (const uint8_t * __a) 59:45.53 ^~~~~~~ 59:45.53 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.53 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:44:9: note: called from here 59:45.53 *s3 = vld1_u8(s); 59:45.53 ^~~~~~~~~~ 59:45.53 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.53 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.53 vld1_u8 (const uint8_t * __a) 59:45.53 ^~~~~~~ 59:45.53 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.54 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:42:9: note: called from here 59:45.54 *s2 = vld1_u8(s); 59:45.54 ^~~~~~~~~~ 59:45.54 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.54 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.54 vld1_u8 (const uint8_t * __a) 59:45.54 ^~~~~~~ 59:45.54 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.54 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:40:9: note: called from here 59:45.54 *s1 = vld1_u8(s); 59:45.54 ^~~~~~~~~~ 59:45.54 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 59:45.54 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 59:45.54 vld1_u8 (const uint8_t * __a) 59:45.54 ^~~~~~~ 59:45.55 In file included from /builddir/build/BUILD/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 59:45.55 /builddir/build/BUILD/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:38:9: note: called from here 59:45.55 *s0 = vld1_u8(s); 59:45.55 ^~~~~~~~~~
This may be related - https://bugzilla.mozilla.org/show_bug.cgi?id=1436511
Trying local verbose build to get the full command line, might be a gcc issue too.
btw. we're going to switch Firefox build to clang for Firefox 64 and later if that helps.
Here is the failing command line ... 124:50.80 /usr/bin/gcc -std=gnu99 -o blend_a64_mask_neon.o -c -I/home/sharkcz/firefox/firefox-63.0/objdir/dist/system_wrappers -include /home/sharkcz/firefox/firefox-63.0/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/sharkcz/firefox/firefox-63.0/media/libaom -I/home/sharkcz/firefox/firefox-63.0/objdir/media/libaom -I/home/sharkcz/firefox/firefox-63.0/media/libaom/config/linux/arm -I/home/sharkcz/firefox/firefox-63.0/media/libaom/config -I/home/sharkcz/firefox/firefox-63.0/third_party/aom -I/home/sharkcz/firefox/firefox-63.0/objdir/dist/include -I/usr/include/nspr4 -I/usr/include/nss3 -fPIC -include /home/sharkcz/firefox/firefox-63.0/objdir/mozilla-config.h -DMOZILLA_CLIENT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -g -pipe -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -Wformat-security -Wformat -Werror=format-security -fno-delete-null-pointer-checks -fPIC -Wl,-z,relro -Wl,-z,now -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pthread -pipe -g -g -O2 -fno-schedule-insns -fomit-frame-pointer -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wduplicated-cond -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=multistatement-macros -Wno-error=class-memaccess -Wformat -Wformat-overflow=2 -Wno-sign-compare -Wno-unused-function -MD -MP -MF .deps/blend_a64_mask_neon.o.pp /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c 124:51.83 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.84 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h: In function 'load_u8_8x8': 124:51.84 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.84 vld1_u8 (const uint8_t * __a) 124:51.84 ^~~~~~~ 124:51.84 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.84 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:52:9: note: called from here 124:51.85 *s7 = vld1_u8(s); 124:51.85 ^~~~~~~~~~ 124:51.85 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.85 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.85 vld1_u8 (const uint8_t * __a) 124:51.85 ^~~~~~~ 124:51.85 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.85 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:50:9: note: called from here 124:51.86 *s6 = vld1_u8(s); 124:51.86 ^~~~~~~~~~ 124:51.86 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.86 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.86 vld1_u8 (const uint8_t * __a) 124:51.87 ^~~~~~~ 124:51.87 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.87 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:48:9: note: called from here 124:51.87 *s5 = vld1_u8(s); 124:51.87 ^~~~~~~~~~ 124:51.87 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.87 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.87 vld1_u8 (const uint8_t * __a) 124:51.87 ^~~~~~~ 124:51.87 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.87 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:46:9: note: called from here 124:51.87 *s4 = vld1_u8(s); 124:51.87 ^~~~~~~~~~ 124:51.87 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.87 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.88 vld1_u8 (const uint8_t * __a) 124:51.88 ^~~~~~~ 124:51.88 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.88 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:44:9: note: called from here 124:51.88 *s3 = vld1_u8(s); 124:51.88 ^~~~~~~~~~ 124:51.88 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.88 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.88 vld1_u8 (const uint8_t * __a) 124:51.88 ^~~~~~~ 124:51.88 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.88 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:42:9: note: called from here 124:51.88 *s2 = vld1_u8(s); 124:51.88 ^~~~~~~~~~ 124:51.88 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.88 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.89 vld1_u8 (const uint8_t * __a) 124:51.89 ^~~~~~~ 124:51.89 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.89 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:40:9: note: called from here 124:51.89 *s1 = vld1_u8(s); 124:51.89 ^~~~~~~~~~ 124:51.89 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: 124:51.89 /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/8/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch 124:51.89 vld1_u8 (const uint8_t * __a) 124:51.89 ^~~~~~~ 124:51.89 In file included from /home/sharkcz/firefox/firefox-63.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:19: 124:51.89 /home/sharkcz/firefox/firefox-63.0/third_party/aom/av1/common/arm/mem_neon.h:38:9: note: called from here 124:51.89 *s0 = vld1_u8(s); 124:51.89 ^~~~~~~~~~ 124:51.89 gmake[4]: *** [/home/sharkcz/firefox/firefox-63.0/config/rules.mk:779: blend_a64_mask_neon.o] Error 1 124:51.89 gmake[4]: Leaving directory '/home/sharkcz/firefox/firefox-63.0/objdir/media/libaom' 124:51.90 gmake[3]: *** [/home/sharkcz/firefox/firefox-63.0/config/recurse.mk:74: media/libaom/target] Error 2 124:51.90 gmake[3]: Leaving directory '/home/sharkcz/firefox/firefox-63.0/objdir' 124:51.90 gmake[2]: *** [/home/sharkcz/firefox/firefox-63.0/config/recurse.mk:34: compile] Error 2 124:51.90 gmake[2]: Leaving directory '/home/sharkcz/firefox/firefox-63.0/objdir' 124:51.90 gmake[1]: *** [/home/sharkcz/firefox/firefox-63.0/config/rules.mk:432: default] Error 2 124:51.90 gmake[1]: Leaving directory '/home/sharkcz/firefox/firefox-63.0/objdir' 124:51.90 gmake: *** [client.mk:150: build] Error 2
So our gcc doesn't enable NEON optimisation by default on ARMv7 because the NEON instructions are optional and hence it's not guaranteed to be available, the NEON stuff should be run time detected not compile time so I suspect that is why it's failing. We already have aom/av1 built in Fedora as a library, is there any reason why we can't use the system library here rather than building it in the mozilla tree? If we have to use in tree there might be upstream patches that can be applied to fix the build.
(In reply to Peter Robinson from comment #5) > So our gcc doesn't enable NEON optimisation by default on ARMv7 because the > NEON instructions are optional and hence it's not guaranteed to be > available, the NEON stuff should be run time detected not compile time so I > suspect that is why it's failing. > > We already have aom/av1 built in Fedora as a library, is there any reason > why we can't use the system library here rather than building it in the > mozilla tree? > > If we have to use in tree there might be upstream patches that can be > applied to fix the build. I have no idea. Feel free to investigate that and I'll happily add any arm patches to Fedora Firefox for that or other arm issues.
> I have no idea. Feel free to investigate that and I'll happily add any arm > patches to Fedora Firefox for that or other arm issues. Already in process, just waiting for "fedpkg prep" to complete on conference wifi :)
More details of failures on ARMv7 on this bug 1641623 *** This bug has been marked as a duplicate of bug 1658940 ***