Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1641623

Summary: Firefox 63 build failure on armv7hl
Product: [Fedora] Fedora Reporter: Martin Stransky <stransky>
Component: firefoxAssignee: Gecko Maintainer <gecko-bugs-nobody>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 29CC: 0xalen+redhat, dan, gecko-bugs-nobody, jhorak, john.j5live, pbrobinson, pjasicek, pwhalen, rhughes, rstrode, sandmann
Target Milestone: ---   
Target Release: ---   
Hardware: armv7hl   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-19 17:30:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 245418    

Description Martin Stransky 2018-10-22 11:24:24 UTC
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          ^~~~~~~~~~

Comment 1 Martin Stransky 2018-10-22 11:26:18 UTC
This may be related - https://bugzilla.mozilla.org/show_bug.cgi?id=1436511

Comment 2 Dan Horák 2018-10-22 12:04:50 UTC
Trying local verbose build to get the full command line, might be a gcc issue too.

Comment 3 Martin Stransky 2018-10-22 12:29:50 UTC
btw. we're going to switch Firefox build to clang for Firefox 64 and later if that helps.

Comment 4 Dan Horák 2018-10-22 17:24:25 UTC
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

Comment 5 Peter Robinson 2018-10-24 11:26:40 UTC
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.

Comment 6 Martin Stransky 2018-10-24 11:33:32 UTC
(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.

Comment 7 Peter Robinson 2018-10-24 11:43:48 UTC
> 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 :)

Comment 8 Peter Robinson 2019-05-19 17:30:11 UTC
More details of failures on ARMv7 on this bug 1641623

*** This bug has been marked as a duplicate of bug 1658940 ***