Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 872545 - >=www-client/firefox-104.0 fails to compile on armv7 with: immediate expression requires a # prefix --pld [r4,1792]'
Summary: >=www-client/firefox-104.0 fails to compile on armv7 with: immediate expressi...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Mozilla Gentoo Team
URL: https://bugs.chromium.org/p/libyuv/is...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-23 15:53 UTC by tt_1
Modified: 2022-09-24 13:57 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
compressed build log (firefox-104-failed-in-libyuv-build.log.gz,657.66 KB, application/gzip)
2022-09-23 15:53 UTC, tt_1
Details
backported patch for 105.0 (0001-fix-neon-assembler-in-libyuv.patch,1.22 KB, patch)
2022-09-23 16:00 UTC, tt_1
Details | Diff
emerge --info from armv7 (emerge-info,5.96 KB, text/plain)
2022-09-23 16:01 UTC, tt_1
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tt_1 2022-09-23 15:53:53 UTC
Created attachment 813883 [details]
compressed build log

There is something wrong inside of libyuv when compiling it for armv7. I've been sitting on this bug for a little while, so please forgive me for using the old firefox-104.0.2 log here: 

this command: 

1246:02.85 /usr/bin/armv7a-unknown-linux-musleabihf-g++ -std=gnu++17 -o Unified_cpp_media_libyuv_libyuv1.o -c -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/dist/stl_wrappers -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/dist/system_wrappers -include /var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG -DTRIMMED=1 -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DUSE_NSS=1 -DENABLE_ONE_CLICK_SIGNIN -DGTK_DISABLE_SINGLE_INCLUDES=1 -D_ISOC99_SOURCE=1 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_GPU=1 -DENABLE_EGLIMAGE=1 -DUSE_SKIA=1 -DENABLE_TASK_MANAGER=1 -DENABLE_WEB_INTENTS=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PROTECTOR_SERVICE=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_PRINTING=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DLIBYUV_NEON -DHAVE_JPEG -D__STDC_FORMAT_MACROS -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/media/libyuv/libyuv -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/media/libyuv/libyuv/libyuv_libyuv -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/media/libyuv/libyuv/include -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/media/libyuv/libyuv -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/ipc/ipdl/_ipdlheaders -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/ipc/chromium/src -I/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/dist/include -DMOZILLA_CLIENT -include /var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/mozilla-config.h -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-invalid-offsetof -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wno-multistatement-macros -Wno-error=class-memaccess -Wno-error=deprecated-copy -Wformat -Wformat-security -Wformat-overflow=2 -Wno-psabi -fno-sized-deallocation -fno-aligned-new -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer -mfloat-abi=hard -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -O2 -fomit-frame-pointer -funwind-tables -mfpu=neon -fno-strict-aliasing -ffp-contract=off -MD -MP -MF .deps/Unified_cpp_media_libyuv_libyuv1.o.pp -fdiagnostics-color Unified_cpp_media_libyuv_libyuv1.cpp

fails to compile with this error: 

1246:07.85 {standard input}: Assembler messages:
1246:07.86 {standard input}:9507: Error: immediate expression requires a # prefix -- pld [r2,1792]' 1246:07.86 {standard input}:9528: Error: immediate expression requires a # prefix --pld [r4,1792]'
1246:07.87 {standard input}:9608: Error: immediate expression requires a # prefix -- pld [r3,1792]' 1246:07.87 {standard input}:9633: Error: immediate expression requires a # prefix --pld [r4,1792]'
1246:08.82 {standard input}:12537: Error: immediate expression requires a # prefix -- pld [r0,1792]' 1246:08.83 {standard input}:12565: Error: immediate expression requires a # prefix --pld [r0,1792]'
1246:11.48 gmake[4]: *** [/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/config/rules.mk:669: Unified_cpp_media_libyuv_libyuv1.o] Error 1
1246:11.48 gmake[4]: Leaving directory '/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build/media/libyuv/libyuv/libyuv_libyuv'
1246:11.48 gmake[3]: *** [/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/config/recurse.mk:72: media/libyuv/libyuv/libyuv_libyuv/target-objects] Error 2
1246:11.52 gmake[3]: Leaving directory '/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build'
1246:11.53 gmake[2]: *** [/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/config/recurse.mk:34: compile] Error 2
1246:11.59 gmake[2]: Leaving directory '/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build'
1246:11.60 gmake[1]: *** [/var/tmp/portage/www-client/firefox-104.0.2/work/firefox-104.0.2/config/rules.mk:361: default] Error 2
1246:11.65 gmake[1]: Leaving directory '/var/tmp/portage/www-client/firefox-104.0.2/work/firefox_build'
1246:11.66 gmake: *** [client.mk:63: build] Error 2

the full build log is attached
Comment 1 tt_1 2022-09-23 16:00:19 UTC
Created attachment 813886 [details, diff]
backported patch for 105.0

so the fix is already merged into libyuv master, and is part of a release (v1844 I believe), but that hasn't yet been pulled into the firefox source tree. 

two more mozilla bugs: 

https://bugzilla.mozilla.org/show_bug.cgi?id=1787405
https://bugzilla.mozilla.org/show_bug.cgi?id=1791267

I have attached the patch fixing the assembler error, as reported in 1787405
Comment 2 tt_1 2022-09-23 16:01:11 UTC
Created attachment 813889 [details]
emerge --info from armv7
Comment 3 Joonas Niilola gentoo-dev 2022-09-24 05:53:08 UTC
Firefox is not keyworded on arm. Are you saying the attached patch makes it compile just fine? No other changes required? 

Honestly I'm not too keen on piling up these arch-specific patches, especially because when they break I have no means (or time really) to test them.
Comment 4 tt_1 2022-09-24 07:12:07 UTC
(In reply to Joonas Niilola from comment #3)
> Firefox is not keyworded on arm. Are you saying the attached patch makes it
> compile just fine? No other changes required? 

its kind of meaningless on arm wether a package is keyworded or not ;-) 


> Honestly I'm not too keen on piling up these arch-specific patches,
> especially because when they break I have no means (or time really) to test
> them.

Well, my argument here is first of all, there is an upstream fix. Its applied to arm-neon specific code (row_neon.cc), and since its fixed at upstream libyuv it will solve itself once the firefox devs decide to pull in an updated version of libyuv. This is a bigger operation (libwebrtc etc), so for two changed line of code they most likely won't do it. 

So I consider taking the patch low risk. I can understand if you don't want to run all your tests again, maybe we can agree to pick it up for firefox-106.0 once its released?
Comment 5 Larry the Git Cow gentoo-dev 2022-09-24 13:57:21 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5527cf5b99ebdaf945349ce600b695a4189837d6

commit 5527cf5b99ebdaf945349ce600b695a4189837d6
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2022-09-24 13:55:24 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2022-09-24 13:57:18 +0000

    www-client/firefox: update patchset for 105.0.1
    
     - add a patch that makes it possible to build firefox-105.0.1 on arm.
    
    Closes: https://bugs.gentoo.org/872545
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 www-client/firefox/Manifest               | 2 +-
 www-client/firefox/firefox-105.0.1.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)