[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: firefox-4.0.1



On Sat, May 07, 2011 at 09:12:36AM +1200, Michael Cree wrote:
> On 07/05/11 07:11, Bob Tracy wrote:
> >Just a quick note to let interested parties know I'm working on a 4.0.1
> >firefox build for alpha.
> 
> Cool!  Are you working only on upstream firefox or also on iceweasel in 
> experimental?

Just on the upstream...  My ignorance concerning "the way things are
done" as far as xulrunner-based builds is considerable: I don't
understand the motivation for them vs. the traditional "monolithic"
build.  Frankly, figuring out how to do a monolithic build was more of a
challenge than I wanted when I started doing this years ago.

> (iceweasel 4.0.1-1 Debian changelog comments)
> 
> So that will need some attention once you have firefox going ;-)

Agreed, and that's part of why I use the upstream code for my local
alpha builds: it makes for a better starting point for distro-specific
packaging if the architecture-specific stuff makes it into the upstream
code base.  Beyond that, it's hard enough fighting the "neglect" in pure
upstream code without factoring in the distro-specific modifications,
the motivations for which are not always understood.

> BTW, I don't think anyone has implemented the Alpha specific code for 
> IPC.  I think firefox has to be compiled with --disable-ipc.  IIRC, the 
> architecture specific code is a set of atomic operations, of which the 
> implementation probably could be based on the equivalent code in the 
> Linux kernel source.  The is on my list of things to do but I doubt I 
> will get this far down my list for quite some time.

Correct on the need for "--disable-ipc".  Also have had to use
"--disable-optimize" for quite some time on alpha.

> >Unknown how much of the "nsThreadUtils*" patching is going to be
> >necessary to get 4.0.1 running without the "illegal instruction" faults
> >that plagued the 3.6.X builds.
> 
> What is that patch?  I have had builds up to 3.6.13 working fine but my 
> build of icecat 3.6.16 crashes on start up.

Starting with 3.5.5 (per a debian-alpha "firefox-3.6.8" thread back in
August 2010), some innocuous-looking but impactful changes were made to
"xpcom/glue/nsThreadUtils.[cpp,h]".  I reported getting a functional
3.5.5 build by replacing those files with their 3.5.4 counterparts, and
every successful build I've done of a later version of firefox has been
based on forward-porting the corresponding diffs.  My target version
back then was 3.6.8, and I went as far as 3.6.12 with the patches still
being required.  Not sure if they're needed for 4.0.1 yet: haven't
gotten that far with the build.

Here's the current "hard stop":

(...)
ExecutableAllocatorPosix.cpp
c++ -o ExecutableAllocatorPosix.o -c  -fvisibility=hidden -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -DEXPORT_JS_API -D__STDC_LIMIT_MACROS -DJS_HAS_CTYPES -DDLL_PREFIX=\"lib\" -DDLL_SUFFIX=\".so\" -Ictypes/libffi/include -I.  -I/opt/downloads/mozilla-2.0/js/src -I. -I./../../dist/include -I./../../dist/include/nsprpub -I/opt/downloads/mozilla-2.0/firefox_obj/dist/include/nspr -I/opt/downloads/mozilla-2.0/js/src -I/opt/downloads/mozilla-2.0/js/src/assembler -I/opt/downloads/mozilla-2.0/js/src/yarr  -fPIC  -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -pedantic -Wno-long-long -fno-strict-aliasing -mieee -pthread -pipe  -DNDEBUG -DTRIMMED -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1 -DMOZILLA_CLIENT -include ./js-confdefs.h -MD -MF .deps/ExecutableAllocatorPosix.pp /opt/downloads/mozilla-2.0/js/src/assembler/jit/ExecutableAllocatorPosix.cpp
In file included from /opt/downloads/mozilla-2.0/js/src/assembler/jit/ExecutableAllocatorPosix.cpp:26:
/opt/downloads/mozilla-2.0/js/src/assembler/jit/ExecutableAllocator.h:395:6: error: #error "The cacheFlush support is missing on this platform."
gmake[4]: *** [ExecutableAllocatorPosix.o] Error 1
gmake[4]: Leaving directory
`/opt/downloads/mozilla-2.0/firefox_obj/js/src'
gmake[3]: *** [libs_tier_js] Error 2
gmake[3]: Leaving directory `/opt/downloads/mozilla-2.0/firefox_obj'
gmake[2]: *** [tier_js] Error 2
gmake[2]: Leaving directory `/opt/downloads/mozilla-2.0/firefox_obj'
gmake[1]: *** [default] Error 2
gmake[1]: Leaving directory `/opt/downloads/mozilla-2.0/firefox_obj'
gmake: *** [build] Error 2

I won't have to time to do much with this for a few days :-(.  I suspect
a workaround would be to disable JIT.  Also suspect that's not the
preferred way to go :-).  For what it's worth, the missing feature seems
to reside entirely within "ExecutableAllocator.h", which is of a size
that does not intimidate.

> Do you do your build on the PWS433?  A bit slow, eh?

You said it :-).  firefox-3.6.X builds have typically taken a bit over
six hours to complete.

> I've built an 
> alpha cross-compiler on my AMD64 machine so that I can do large builds 
> on the Alpha with distcc and distribute most of the compiling to the 
> AMD64 machine.

There are times my fondness for antiques is inconvenient.  The fastest
machine in my stable doesn't represent enough of an increase in
horsepower to warrant the trouble of setting up a cross-compilation
environment.

--Bob


Reply to: