Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 681036 - =www-client/firefox-66.0-r1 fails to compile on arm with: ../js/src/wasm/WasmSignalHandlers.cpp:520:19: error: field 'ufp' has incomplete type 'user_vfp'
Summary: =www-client/firefox-66.0-r1 fails to compile on arm with: ../js/src/wasm/Wasm...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Mozilla Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-20 14:19 UTC by tt_1
Modified: 2019-09-21 17:15 UTC (History)
1 user (show)

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


Attachments
compressed build.log (firefox-66.0-f1-arm.log.gz,103.44 KB, application/gzip)
2019-03-20 14:21 UTC, tt_1
Details
emerge --info from cross-emerge (cross-emerge-info,4.88 KB, text/plain)
2019-03-20 14:25 UTC, tt_1
Details
arm fp reg patch plucked from debian gitlab (firefox-68.0.2-arm-fp-wasm-fixes.patch,607 bytes, patch)
2019-09-21 17:15 UTC, Steve Arnold
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description tt_1 2019-03-20 14:19:22 UTC
emerging new firefox-66.0-r1 ebuild for arm fails with this beauty: 

 1:10.89 In file included from /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-66.0-r1/work/firefox-66.0/ff/js/src/wasm/Unified_cpp_js_src_wasm2.cpp:29:
 1:10.89 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-66.0-r1/work/firefox-66.0/js/src/wasm/WasmSignalHandlers.cpp:520:19: error: field 'ufp' has incomplete type 'user_vfp'
 1:10.89    struct user_vfp ufp;
 1:10.89                    ^~~
 1:10.89 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-66.0-r1/work/firefox-66.0/js/src/wasm/WasmSignalHandlers.cpp:520:10: note: forward declaration of 'struct user_vfp'
 1:10.89    struct user_vfp ufp;
 1:10.89           ^~~~~~~~
 1:10.89 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-66.0-r1/work/firefox-66.0/js/src/wasm/WasmSignalHandlers.cpp:521:23: error: field 'ufp_exc' has incomplete type 'user_vfp_exc'
 1:10.89    struct user_vfp_exc ufp_exc;
 1:10.89                        ^~~~~~~
 1:10.89 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-66.0-r1/work/firefox-66.0/js/src/wasm/WasmSignalHandlers.cpp:521:10: note: forward declaration of 'struct user_vfp_exc'
 1:10.89    struct user_vfp_exc ufp_exc;
 1:10.89           ^~~~~~~~~~~~
 1:10.89 gmake[4]: *** [/usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-66.0-r1/work/firefox-66.0/config/rules.mk:1108: Unified_cpp_js_src_wasm2.o] Error 1

this is a cross-compile, but it shouldn't matter.
Comment 1 tt_1 2019-03-20 14:21:34 UTC
Created attachment 569968 [details]
compressed build.log

the full build log
Comment 2 tt_1 2019-03-20 14:23:49 UTC
Basically this happens as the build tries to inherit headers which are only present on android. 

patch to fix it, from #1526653:

https://hg.mozilla.org/mozilla-central/rev/322de2cc8019
Comment 3 tt_1 2019-03-20 14:25:37 UTC
Created attachment 569970 [details]
emerge --info from cross-emerge

if someone's interested into the emerge --info, here it is
Comment 4 Larry the Git Cow gentoo-dev 2019-03-20 15:52:12 UTC
The bug has been closed via the following commit(s):

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

commit d5548320f5a3160b9134274850f6ea76e90ad5fa
Author:     Thomas Deutschmann <whissi@gentoo.org>
AuthorDate: 2019-03-20 15:49:51 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2019-03-20 15:51:59 +0000

    www-client/firefox: unbreak arm
    
    Add some patches to fix building on arm.
    
    Closes: https://bugs.gentoo.org/681036
    Closes: https://bugs.gentoo.org/678204
    Package-Manager: Portage-2.3.62, Repoman-2.3.12
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 www-client/firefox/Manifest               | 2 +-
 www-client/firefox/firefox-66.0-r1.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Comment 5 tt_1 2019-03-22 08:40:36 UTC
Upstream closed their bug as fixed, but the patch isn't sufficent for fixing the compile. An extended fix would be: 

diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
index 488d897..a4a76ee 100644
--- a/js/src/wasm/WasmSignalHandlers.cpp
+++ b/js/src/wasm/WasmSignalHandlers.cpp
@@ -243,7 +243,6 @@ using mozilla::DebugOnly;
 // emulation here.
 
 #if defined(__linux__) && defined(__arm__)
-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
 #endif
 
 #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS


or it could be: https://archlinuxarm.org/packages/armv7h/firefox/files/arm.patch
Comment 6 tt_1 2019-09-12 19:04:58 UTC
there's a proposed fix from debian, which I think copies over the correct defines from the linux kernel header files: 

https://salsa.debian.org/mozilla-team/firefox/commit/fd6847c9416f9eebde636e21d794d25d1be8791d

still no upstream patch
Comment 7 Steve Arnold gentoo-dev 2019-09-21 17:13:45 UTC
I just tested the "disable" fix, and also made a patch like that debian one, and both allow firefox to compile.  The missing structs are apparently only in the android bionic libc, so I have no idea where they get "not in all linux distros" or "tier 3" since android/bionic is *not* linux or a distro...

Anyway, firefox will *not* build on arm without a fix, so we could really use a patch in the tree for this; the debian approach seems fine.
Comment 8 Steve Arnold gentoo-dev 2019-09-21 17:15:23 UTC
Created attachment 590540 [details, diff]
arm fp reg patch plucked from debian gitlab