Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Firefox 20.0.1 build problems

45 views
Skip to first unread message

Gabriele Bulfon

unread,
May 9, 2013, 4:25:28 AM5/9/13
to dev-b...@lists.mozilla.org
Hi,
I'm working to have latest Firefox (20.0.1) packaged in our upcoming distro of illumos,
Sonicle XStream Desktop.
I know there is no support for Solaris like OS, but I'm just checking to see if you can help me.

I could apply a couple of quick temporary patches to move on, like these:

jsmath.cpp
--------------
had to take out a piece of (old I think) code about Solaris, MOZ_DOUBLE_IS_NEGZERO is not
defined anywhere:

--- mozilla-release/js/src/jsmath.cpp Wed May 8 12:48:54 2013
+++ mozilla-release/js/src/jsmath.cpp Wed May 8 12:50:34 2013
@@ -195,14 +195,6 @@
}
#endif

-#if defined(SOLARIS) && defined(__GNUC__)
- if (x == 0) {
- if (MOZ_DOUBLE_IS_NEGZERO(y))
- return js_copysign(M_PI, x);
- if (y == 0)
- return x;
- }
-#endif
return atan2(x, y);
}

Maybe there is some more correct solution.

vm/Stack.cpp
----------------

This piece of code complains about converting "base_" class into "char *" on mincore(..), on Solaris.
I could take out all of the ifdef section and fall back to the last section:

--- mozilla-release/js/src/vm/Stack.cpp Wed May 8 13:13:08 2013
+++ mozilla-release/js/src/vm/Stack.cpp Wed May 8 13:13:47 2013
@@ -782,57 +782,11 @@
size_t
StackSpace::sizeOf()
{
-#if defined(XP_UNIX)
/*
- * Measure how many of our pages are resident in RAM using mincore, and
- * return that as our size. This is slow, but hopefully nobody expects
- * this method to be fast.
- *
- * Note that using mincore means that we don't count pages of the stack
- * which are swapped out to disk. We really should, but what we have here
- * is better than counting the whole stack!
- */
-
- const int pageSize = getpagesize();
- size_t numBytes = (trustedEnd_ - base_) * sizeof(Value);
- size_t numPages = (numBytes + pageSize - 1) / pageSize;
-
- // On Linux, mincore's third argument has type unsigned char*.
-#ifdef __linux__
- typedef unsigned char MincoreArgType;
-#else
- typedef char MincoreArgType;
-#endif
-
- MincoreArgType *vec = (MincoreArgType *) js_malloc(numPages);
- int result = mincore(base_, numBytes, vec);
- if (result) {
- js_free(vec);
- /*
- * If mincore fails us, return the vsize (like we do below if we're not
- * on Windows or Unix).
- */
- return (trustedEnd_ - base_) * sizeof(Value);
- }
-
- size_t residentBytes = 0;
- for (size_t i = 0; i < numPages; i++) {
- /* vec[i] has its least-significant bit set iff page i is in RAM. */
- if (vec[i] & 0x1)
- residentBytes += pageSize;
- }
- js_free(vec);
- return residentBytes;
-
-#elif defined(XP_WIN)
- return (commitEnd_ - base_) * sizeof(Value);
-#else
- /*
* Return the stack's virtual size, which is at least an upper bound on its
* resident size.
*/
return (trustedEnd_ - base_) * sizeof(Value);
-#endif
}

#ifdef DEBUG


build_config
=========

I just tried adding my own lines for Solaris:

--- mozilla-release/ipc/chromium/src/build/build_config.h Wed May 8 13:45:40 2013
+++ mozilla-release/ipc/chromium/src/build/build_config.h Wed May 8 13:47:38 2013
@@ -19,6 +19,8 @@
#define OS_MACOSX 1
#elif defined(__linux__) || defined(ANDROID)
#define OS_LINUX 1
+#elif defined(__sun)
+#define OS_SOLARIS 1
#elif defined(__DragonFly__)
#define OS_DRAGONFLY 1
#elif defined(__FreeBSD__)
@@ -42,7 +44,7 @@

// For access to standard POSIX features, use OS_POSIX instead of a more
// specific macro.
-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
#define OS_POSIX 1
#endif

This way, build goes on for a long time, then breaking on the main problem I'm asking you:

/sources/userlands/xstream-userland-gate/components/firefox/build/i86/_virtualenv/bin/python /sources/userlands/xstream-userland-gate/components/firefox/mozilla-release/config/pythonpath.py \
-I/sources/userlands/xstream-userland-gate/components/firefox/mozilla-release/other-licenses/ply \
/sources/userlands/xstream-userland-gate/components/firefox/build/i86/dist/sdk/bin/header.py -I/sources/userlands/xstream-userland-gate/components/firefox/mozilla-release/netwerk/dns -I../../dist/idl /sources/userlands/xstream-userland-gate/components/firefox/mozilla-release/netwerk/dns/nsPIDNSService.idl -d .deps/nsPIDNSService.h.pp -o _xpidlgen/nsPIDNSService.h
/sources/userlands/xstream-userland-gate/components/firefox/mozilla-release/config/rules.mk:1581: *** unterminated variable reference. Stop.
make[5]: Leaving directory `/sources/userlands/xstream-userland-gate/components/firefox/build/i86/netwerk/dns'


Looking at the source of rules.mk, looks like there is a kind of syntax error occurring while "dns"
Makefile includes it. I could not find any reason for this....
Any idea????

Thanks for any help!
Gabriele.




Atsushi Shimmura

unread,
May 27, 2013, 9:53:12 PM5/27/13
to
Hi, I'm building Firefox 20.0.1 on Solaris 11.1,and I met this case so
much. Any case , I clean up build tree and try "gmake -f client.mk
build",for some reason ,it goes out. Please show me your mozconfig.

my mozconfig:
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir-tb3~
ac_add_options --prefix=$HOME
ac_add_options --enable-application=browser
ac_add_options --enable-optimize
ac_add_options --disable-necko-wifi
ac_add_options --disable-tests
ac_add_options --disable-ipc
ac_add_options --disable-crashreporter
ac_add_options --enable-official-branding
ac_add_options --disable-dbm
ac_add_options --enable-default-toolkit=cairo-gtk2

> Makefile includes it. I could not find any reason for this....
> Any idea????
> Thanks for any help!
> Gabriele.

--
Atsushi
0 new messages