jjackowski
Posts: 44
Joined: Thu Jan 10, 2013 5:25 am

Building Firefox 20

Tue Apr 09, 2013 1:22 am

I made an attempt at building Firefox 20, but it looks for the non-existent file ../../media/webrtc/trunk/src/modules/modules_aecm_neon/libaecm_neon.a. Google seems to know nothing about libaecm. It does find webrtc, but so far I haven't found anything helpful there. I don't see a way to build without webrtc or influence how it is built.

There is a separate package webrtc-audio-processing in portage, but it is hard masked. Portage doesn't list it as something needed, so it seems that webrtc is part of the Firefox 20 code.

Is this another case of developers assuming no one uses armv6 anymore?

Thanks for any clues!
Jeff

User avatar
xenoist
Posts: 14
Joined: Fri Apr 26, 2013 8:33 am
Location: Germany
Contact: Website

Re: Building Firefox 20

Fri Apr 26, 2013 8:43 am

Hi jjackowski,

i looked a little bit in the error log and it seems that the firefox build switches the gcc and environment settings:

less /var/tmp/portage/www-client/firefox-20.0.1/temp/build.log

armv6j-hardfloat-linux-gnueabi-gcc -o simd/jsimd_arm.o -c -fvisibility=hidden -DMOZ_GLUE_IN_PROGRAM -DNO_NSPR_10_SUPPORT -I/var/tmp/portage/www-client/firefox-20.0.1/work/mozilla-releas
e/media/libjpeg -I. -I../../dist/include -I/usr/include/nspr -I/usr/include/nss -fPIC -Wall -Wpointer-arith -Wdeclaration-after-statement -Werror=return-type -Wtype-limits -Wempty
-body -Wno-unused -Wno-overlength-strings -pipe -march=armv6j -mfpu=vfp -mfloat-abi=hard -fno-strict-aliasing -ffunction-sections -fdata-sections -pthread -pipe -DNDEBUG -DTRIMMED -Os -
freorder-blocks -fomit-frame-pointer -include ../../mozilla-config.h -DMOZILLA_CLIENT -MD -MF .deps/jsimd_arm.o.pp /var/tmp/portage/www-client/firefox-20.0.1/work/mozilla-release/med
ia/libjpeg/simd/jsimd_arm.c

And now we have <b>-march=armv7-a -mfpu=neon</b>!

armv6j-hardfloat-linux-gnueabi-gcc -o simd/jsimd_arm_neon.o -march=armv7-a -mfpu=neon -I/var/tmp/portage/www-client/firefox-20.0.1/work/mozilla-release/media/libjpeg/simd/ -c /var/tmp/portage/www-client/firefox-20.0.1/work/mozilla-release/media/libjpeg/simd/jsimd_arm_neon.S
rm -f libmozjpeg.a

/var/tmp/portage/www-client/firefox-20.0.1/work/mozilla-release/media/libjpeg/simd/jsimd_arm.c

#if defined(__ARM_NEON__)
simd_support |= JSIMD_ARM_NEON;
#elif defined(__linux__) || defined(ANDROID) || defined(__ANDROID__)
/* We still have a chance to use NEON regardless of globally used
* -mcpu/-mfpu options passed to gcc by performing runtime detection via
* /proc/cpuinfo parsing on linux/android */
while (!parse_proc_cpuinfo(bufsize)) {
bufsize *= 2;
if (bufsize > SOMEWHAT_SANE_PROC_CPUINFO_SIZE_LIMIT)
break;
}
https://it-shamans.eu GPG: 1024D/F96BC5FD xenoist at web.de

jjackowski
Posts: 44
Joined: Thu Jan 10, 2013 5:25 am

Re: Building Firefox 20

Tue Apr 30, 2013 1:30 pm

Xeonist, I missed the libjpeg issues somehow. Maybe my build died before it got there. I tried again with the system-jpeg use flag in hopes of avoiding that problem and maybe picking up some recent fixes. The build still fails, but libjpeg doesn't kill it, so I don't know if the flag solves anything.

It didn't occur to me to look for armv7 in the log, or that gcc built for an armv6 target would be happy to make armv7 code. Silly me. Firefox's copy of libtheora is being built with -march=armv7-a -mfpu=neon, so that won't work. It doesn't get far enough for that to cause an error.

For me, it sill fails looking for libaecm_neon.a. I have confirmed that the build never attempts to make libaecm for armv7 with neon; it just later assumes its existence. I'm not sure this webrtc thing that uses libaecm is even a feature that I want.

In better news, Firefox 17 ESR now builds without trouble for me, so I can at least get security fixes. Looks like most of the newer Firefox build issues are from bad assumptions in new features, so hopefully 17 ESR will continue to build.

SimonSmall
Posts: 220
Joined: Tue Oct 09, 2012 8:13 pm

Re: Building Firefox 20

Tue Apr 30, 2013 7:05 pm

You could try installing the Ice Weasel package from the repositories: that is a version of Firefox already compiled for the Pi. I think it uses standard Firefox add-ons, but am not sure. I don't know how often it is updated

User avatar
xenoist
Posts: 14
Joined: Fri Apr 26, 2013 8:33 am
Location: Germany
Contact: Website

Re: Building Firefox 20

Fri Nov 29, 2013 10:38 am

Some Update.

with gcc 4.7.3-r1 and firefox 25.0.1 i could compile it.
https://it-shamans.eu GPG: 1024D/F96BC5FD xenoist at web.de

User avatar
xenoist
Posts: 14
Joined: Fri Apr 26, 2013 8:33 am
Location: Germany
Contact: Website

Re: Building Firefox 20

Mon Jan 19, 2015 10:26 am

By the way with firefox 35 the problem with the vfp exists at once.
ffirefox-34.0.5-r1 works.
https://it-shamans.eu GPG: 1024D/F96BC5FD xenoist at web.de

Return to “Gentoo”

Who is online

Users browsing this forum: No registered users and 2 guests