I'm trying to build fennec from source code. I followed
https://wiki.mozilla.org/Mobile/Build/Fennec
But the build was not successful. There were several undefined errors.
I think maybe it's because it's in active development. So I have to
choose a stable source code base to build, like the one for 1.0b4.
Which branch or tag should I use?
Thanks!
Jie
I know this is not exactly an answer to what you ask, but...
Usually you should be able to build Fennec out of the box, but I can see
that there have been recent problems.
I always look at:
http://tinderbox.mozilla.org/showbuilds.cgi?tree=Mobile
before I grab the sources to get a feeling of what i can expect.
If the tree is "green" for your build and you still get errors, then you
can try to post a description of the error here.
^__^
MikeK.dk
Thanks! It seems the status of Fennec on N810 is not good.
What's the difference between maemo and N810. The former is maemo5 and
the latter is maemo4? Which column is for Fennec 1.0b4 for N810?
Jie
On Oct 16, 4:36 pm, Mike Kristoffersen <mkristoffer...@mozilla.com>
wrote:
The N810 .... talos... thing are "live" tests that we run on a bank of
N810's, so if these fails it doesn't necessarily means that the code
can't build or is unusable, it just means that somewhere the test-run is
failing - quite often there is one or more of those burning... (someone
please correct me if I got this wrong)
I don't know if the 1.9.2 is the same as b4, maybe someone else can
answer that ????
If you find a green build box for the system you have, you can see
something like:
moz:1e2aea110399
mobile:e6bef4579943
In the box, the numbers identifies the last change list that made it
into the build from mozilla-central and mobile and you should be able to
retrieve the tree up to this point from Mercurial and hence reproduce
what was on the build machine.
^__^
Mike
Yes, we used the 1.9.2 branch of mozilla-central for beta 4 and will
continue to use it through release of 1.0.
As for the n810, we've not been spending as much time on it as on the
n900, mainly because the n900 provides a much better Fennec experience,
being faster and having more memory. We don't want Fennec to fail on
the older device, so please file bugs against n810-specific problems.
rm -f libmozgnome.so
c++ -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-
virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-
align -Wno-invalid-offsetof -Wno-long-long -pedantic -fno-strict-
aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -
freorder-blocks -fno-reorder-functions -I/usr/include/gconf/2 -I/usr/
include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -
I/usr/lib/glib-2.0/include -pthread -I/usr/include/gnome-vfs-2.0 -I/
usr/lib/gnome-vfs-2.0/include -I/usr/include/gconf/2 -I/usr/include/
dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/
lib/glib-2.0/include -I/usr/include/gnome-vfs-module-2.0 -I/usr/
include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -
I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/
dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/gtk-2.0/include -I/usr/
include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/
include/freetype2 -I/usr/include/libpng12 -fPIC -shared -Wl,-z,defs
-Wl,-h,libmozgnome.so -o libmozgnome.so nsGConfService.o
nsGnomeVFSService.o nsGnomeModule.o nsAlertsService.o
nsAlertsIconListener.o -lpthread -Wl,-rpath-link,/home/jie/
mobilebase/xulrunner/dist/bin/:/usr/lib:/lib -Wl,-rpath-link,/home/
jie/mobilebase/xulrunner/dist/bin -Wl,-rpath-link,/usr/local/lib /
home/jie/mobilebase/xulrunner/dist/lib/libxpcomglue_s.a -L/home/jie/
mobilebase/xulrunner/dist/bin -lxpcom -L/home/jie/mobilebase/xulrunner/
dist/bin -lxpcom -L/home/jie/mobilebase/xulrunner/dist/lib -lplds4 -
lplc4 -lnspr4 -lpthread -ldl -lgconf-2 -ldbus-glib-1 -ldbus-1 -
lgobject-2.0 -lglib-2.0 -pthread -lgnomevfs-2 -lgconf-2 -lgthread-2.0 -
lrt -lgmodule-2.0 -ldl -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
-lgobject-2.0 -lglib-2.0 -lnotify -lgtk-x11-2.0 -ldbus-glib-1 -lgdk-
x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -
lcairo -lgmodule-2.0 -ldl -ldbus-1 -lgobject-2.0 -lglib-2.0 -Wl,--
version-script -Wl,/home/jie/192src/build/unix/gnu-ld-scripts/
components-version-script -Wl,-Bsymbolic -lasound -ldl -lm
nsAlertsIconListener.o:(.data._ZTV17gfxUnknownSurface[vtable for
gfxUnknownSurface]+0x8): undefined reference to
`gfxASurface::BeginPrinting(nsAString const&, nsAString const&)'
nsAlertsIconListener.o:(.data._ZTV17gfxUnknownSurface[vtable for
gfxUnknownSurface]+0xc): undefined reference to
`gfxASurface::EndPrinting()'
nsAlertsIconListener.o:(.data._ZTV17gfxUnknownSurface[vtable for
gfxUnknownSurface]+0x10): undefined reference to
`gfxASurface::AbortPrinting()'
nsAlertsIconListener.o:(.data._ZTV17gfxUnknownSurface[vtable for
gfxUnknownSurface]+0x14): undefined reference to
`gfxASurface::BeginPage()'
nsAlertsIconListener.o:(.data._ZTV17gfxUnknownSurface[vtable for
gfxUnknownSurface]+0x18): undefined reference to `gfxASurface::EndPage
()'
nsAlertsIconListener.o:(.data._ZTV17gfxUnknownSurface[vtable for
gfxUnknownSurface]+0x1c): undefined reference to `gfxASurface::Finish
()'
nsAlertsIconListener.o: In function
`gfxUnknownSurface::~gfxUnknownSurface()':nsAlertsIconListener.cpp:
(.text._ZN17gfxUnknownSurfaceD1Ev[gfxUnknownSurface::~gfxUnknownSurface
()]+0x24): undefined reference to `vtable for gfxASurface'
nsAlertsIconListener.o: In function
`gfxUnknownSurface::~gfxUnknownSurface()':nsAlertsIconListener.cpp:
(.text._ZN17gfxUnknownSurfaceD0Ev[gfxUnknownSurface::~gfxUnknownSurface
()]+0x38): undefined reference to `vtable for gfxASurface'
collect2: ld returned 1 exit status
make[5]: *** [libmozgnome.so] Error 1
make[5]: Leaving directory `/home/jie/mobilebase/xulrunner/toolkit/
system/gnome'
make[4]: *** [libs_tier_toolkit] Error 2
make[4]: Leaving directory `/home/jie/mobilebase/xulrunner'
make[3]: *** [tier_toolkit] Error 2
make[3]: Leaving directory `/home/jie/mobilebase/xulrunner'
make[2]: *** [default] Error 2
make[2]: Leaving directory `/home/jie/mobilebase/xulrunner'
make[1]: *** [build] Error 2
make[1]: Leaving directory `/home/jie/192src'
make: *** [build] Error 2
And there is an gcc bug when compiling
gcc -o jemalloc.o -c -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -I/home/
jie/192src/memory/jemalloc -I. -I../../dist/include -I../../dist/
include/nsprpub -I/home/jie/mobilebase/xulrunner/dist/include/nspr -I/
home/jie/mobilebase/xulrunner/dist/include/nss -fPIC -Wall -W
-Wno-unused -Wpointer-arith -Wcast-align -W -Wno-long-long -pedantic -
fno-strict-aliasing -pthread -pipe -DNDEBUG -DTRIMMED -O2 -
include ../../mozilla-config.h -DMOZILLA_CLIENT -Wp,-MD,.deps/
jemalloc.pp /home/jie/192src/memory/jemalloc/jemalloc.c
[snip]
{standard input}: Assembler messages:
{standard input}:7308: Error: symbol `.L2273' is already defined
I use -O instead for this file.
I think there must be something different in my build environment. I
use maemo 4.1.2 SDK.
> gcc --version
sbox-arm-linux-gcc (GCC) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)
Which maemo SDK do you use?
Jie
> I think there must be something different in my build environment. I
> use maemo 4.1.2 SDK.
> > gcc --version
> sbox-arm-linux-gcc (GCC) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)
>
> Which maemo SDK do you use?
codesourcery 2007q3
See:
https://wiki.mozilla.org/Mobile/Build/Fennec
https://wiki.mozilla.org/Mobile/Build/cs2007q3
Ahh... those were just an example (I think they were actually from a
desktop build) please check the tree
(http://tinderbox.mozilla.org/showbuilds.cgi?tree=Mobile)
>
> I think there must be something different in my build environment. I
> use maemo 4.1.2 SDK.
>> gcc --version
> sbox-arm-linux-gcc (GCC) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)
>
> Which maemo SDK do you use?
gcc reports:
[sbox-CHINOOK-ARMEL-2007: ~] > gcc --version
sbox-arm-none-linux-gnueabi-gcc (GCC) 4.2.1
The information about setting the correct (or rather the recommended)
build environment up for a maemo target build on an Ubuntu machine can
be found at:
https://wiki.mozilla.org/Mobile/Build/Maemo_Build_Instructions
^__^
MikeK
/home/jie/mobilebase/xulrunner/dist/bin/xpidl -m header -w -I/home/jie/
mozilla-1.9.2/xpcom/base -I../../dist/idl -o _xpidlgen/
nsIConsoleListener /home/jie/mozilla-1.9.2/xpcom/base/
nsIConsoleListener.idl
qemu: uncaught target signal 11 (Segmentation fault) - exiting
make[6]: *** [_xpidlgen/nsIConsoleListener.h] Error 126
make[6]: Leaving directory `/home/jie/mobilebase/xulrunner/xpcom/base'
[sbox-DIABLO_ARMEL_2007: ~] > sb-conf show DIABLO_ARMEL_2007
Compiler: cs2007q3-glibc2.5-arm6
Devkits: cputransp debian-etch doctools maemo3-tools perl
CPU-transparency: /scratchbox/devkits/cputransp/bin/qemu-arm-cvs-m
I'll try chinook next. But it will take very long time considering the
10KB/s downloading speed from scratchbox.org here.
Jie
/usr/bin/python2.5 /home/jie/mozilla-1.9.2/config/JarMaker.py \
-j ../../dist/bin/chrome \
-t /home/jie/mozilla-1.9.2 -f jar -c /home/jie/mozilla-1.9.2/
mobile/locales/en-US -DNDEBUG -DTRIMMED -DOSTYPE=\"Linux2.6\" -
DOSARCH=Linux -DAB_CD=en-US -DMOZ_LANGPACK_EID=langpack-en-US@firefox-
mobile.mozilla.org -DMOZ_APP_VERSION=1.0b5pre -DLOCALE_SRCDIR=/home/
jie/mozilla-1.9.2/mobile/locales/en-US -
DPKG_BASENAME="fennec-1.0b5pre.en-US.linux-gnueabi-arm" -
DPKG_INST_BASENAME="fennec-1.0b5pre.en-US.linux-gnueabi-
arm.installer" -DDLL_PREFIX=lib -DDLL_SUFFIX=.so -DBIN_SUFFIX= -
DMOZILLA_VERSION=\"1.9.2b2pre\" -DMOZILLA_VERSION_U=1.9.2b2pre -
DD_INO=d_ino -DSTDC_HEADERS=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_SIGINFO_T=1 -
DHAVE_INT16_T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1 -DHAVE_UINT=1 -
DHAVE_UNAME_DOMAINNAME_FIELD=1 -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1 -
DHAVE_VISIBILITY_ATTRIBUTE=1 -DHAVE_DIRENT_H=1 -DHAVE_GETOPT_H=1 -
DHAVE_SYS_BITYPES_H=1 -DHAVE_MEMORY_H=1 -DHAVE_UNISTD_H=1 -
DHAVE_GNU_LIBC_VERSION_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -
DHAVE_X11_XKBLIB_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -
DHAVE_MMINTRIN_H=1 -DHAVE_SYS_CDEFS_H=1 -DHAVE_LIBM=1 -DHAVE_LIBDL=1 -
DHAVE_DLADDR=1 -DFUNCPROTO=15 -DHAVE_XSHM=1 -
DHAVE_FT_BITMAP_SIZE_Y_PPEM=1 -DHAVE_FT_GLYPHSLOT_EMBOLDEN=1 -
DHAVE_FT_LOAD_SFNT_TABLE=1 -DHAVE_FT_SELECT_SIZE=1 -DHAVE_ARM_SIMD=1 -
DHAVE_ARM_NEON=1 -D_REENTRANT=1 -DHAVE_RANDOM=1 -DHAVE_STRERROR=1 -
DHAVE_LCHOWN=1 -DHAVE_FCHMOD=1 -DHAVE_SNPRINTF=1 -DHAVE_MEMMOVE=1 -
DHAVE_RINT=1 -DHAVE_STAT64=1 -DHAVE_LSTAT64=1 -DHAVE_TRUNCATE64=1 -
DHAVE_SETBUF=1 -DHAVE_ISATTY=1 -DHAVE_FLOCKFILE=1 -DHAVE_LOCALTIME_R=1
-DHAVE_STRTOK_R=1 -DHAVE_RES_NINIT=1 -DHAVE_GNU_GET_LIBC_VERSION=1 -
DHAVE_LANGINFO_CODESET=1 -DVA_COPY=va_copy -DHAVE_VA_COPY=1 -
DHAVE_I18N_LC_MESSAGES=1 -DMOZ_EMBEDDING_LEVEL_DEFAULT=1 -
DMOZ_EMBEDDING_LEVEL_BASIC=1 -DMOZ_EMBEDDING_LEVEL_MINIMAL=1 -
DMOZ_BUILD_APP=mobile -DMOZ_DEFAULT_TOOLKIT=\"cairo-gtk2\" -DMOZ_X11=1
-DMOZ_WIDGET_GTK2=1 -DMOZ_ENABLE_XREMOTE=1 -DMOZ_DISTRIBUTION_ID=
\"org.mozilla\" -DMOZ_PANGO=1 -DMOZ_ENABLE_GNOMEVFS=1 -
DMOZ_ENABLE_GCONF=1 -DMOZ_ENABLE_DBUS=1 -DMOZ_ENABLE_LIBNOTIFY=1 -
DIBMBIDI=1 -DMOZ_VIEW_SOURCE=1 -DACCESSIBILITY=1 -DMOZ_XPINSTALL=1 -
DMOZ_JSLOADER=1 -DNS_PRINTING=1 -DNS_PRINT_PREVIEW=1 -
DMOZ_NO_XPCOM_OBSOLETE=1 -DMOZ_OGG=1 -DATTRIBUTE_ALIGNED_MAX=64 -
DMOZ_WAVE=1 -DMOZ_SYDNEYAUDIO=1 -DMOZ_MEDIA=1 -DHAVE_LIBASOUND=1 -
DMOZ_XTF=1 -DMOZ_CRASHREPORTER_ENABLE_PERCENT=100 -DMOZ_MATHML=1 -
DMOZ_ENABLE_CANVAS=1 -DMOZ_SVG=1 -DMOZ_SMIL=1 -
DMOZ_UPDATE_CHANNEL=default -DMOZ_FEEDS=1 -DMOZ_STORAGE=1 -
DMOZ_PLATFORM_HILDON=1 -DHAVE_X11_EXTENSIONS_XDAMAGE_H=1 -DNS_OSSO=1 -
DMOZ_GFX_OPTIMIZE_MOBILE=1 -DMOZ_LOGGING=1 -DSIZEOF_INT_P=4 -
DMOZ_MEMORY_SIZEOF_PTR_2POW=2 -DMOZ_MEMORY=1 -DMOZ_MEMORY_LINUX=1 -
DHAVE___CXA_DEMANGLE=1 -DMOZ_USER_DIR=\".mozilla\" -
DMOZ_ENABLE_LIBXUL=1 -DHAVE_STDINT_H=1 -DHAVE_INTTYPES_H=1 -
DMOZ_TREE_CAIRO=1 -DHAVE_UINT64_T=1 -DMOZ_XUL=1 -DMOZ_PROFILELOCKING=1
-DMOZ_RDF=1 -DMOZ_MORK=1 -DMOZ_DLL_SUFFIX=\".so\" -DXP_UNIX=1 -
DUNIX_ASYNC_DNS=1 -DMOZ_ACCESSIBILITY_ATK=1 -DATK_MAJOR_VERSION=1 -
DATK_MINOR_VERSION=18 -DATK_REV_VERSION=0 \
/home/jie/mozilla-1.9.2/mobile/locales/jar.mn
processing /home/jie/mozilla-1.9.2/mobile/locales/jar.mn
Traceback (most recent call last):
File "/home/jie/mozilla-1.9.2/config/JarMaker.py", line 463, in
<module>
main()
File "/home/jie/mozilla-1.9.2/config/JarMaker.py", line 460, in main
jardir=options.j)
File "/home/jie/mozilla-1.9.2/config/JarMaker.py", line 231, in
makeJar
localedirs)
File "/home/jie/mozilla-1.9.2/config/JarMaker.py", line 300, in
processJarSection
outHelper, jf)
File "/home/jie/mozilla-1.9.2/config/JarMaker.py", line 332, in
_processEntryLine
raise RuntimeError("file not found: " + src)
RuntimeError: file not found: bookmarks.json
make[6]: *** [libs] Error 1
make[6]: Leaving directory `/home/jie/mobilebase/mobile/mobile/
locales'
make[5]: *** [libs] Error 2
I must have missed something else. Do you has any hint?
Regards,
Jie
That error has been fixed in the Fennec source code.
Pull the latest source from http://hg.mozilla.org/mobile-browser to fix this error.
Thanks! I updated mobile source and Fennec builds on Diablo as well as
Chinook now!
Jie
I got the same following error when building fennec from source.
The source code I pulled are from http://hg.mozilla.org/mobile-browser/
and http://hg.mozilla.org/releases/mozilla-1.9.2
But the toolchain is somewhat different, I'm still using cs2005q3.2-
glibc2.5-arm instead of cs2007q3, should this be a matter?
Any clue is appreciated, thanks!
I think cs2007q3 toolchain should be used to build Fennec.
Jie
>
> I think cs2007q3 toolchain should be used to build Fennec.
>
> Jie
Thanks, one more question, does cs2007q3 work for PXA310 processor
(armv5)?