[XStreamOS-discuss] Fwd: Firefox 20.0.1 build problems

Gabriele Bulfon gbulfon at sonicle.com
Thu May 16 12:41:49 CEST 2013


If you want to take a look, this is the mail I sent to firefox dev list, maybe you have some
idea on these problems I encountered.
Gabriele Bulfon - Sonicle S.r.l.
Tel +39 028246016 Int. 30 - Fax +39 028243880
via Santa Maria Valle 3 - 20123 - Milano - Italy
http://www.sonicle.com
Da:
Gabriele Bulfon
A:
dev-builds at lists.mozilla.org
Data:
9 maggio 2013 9.25.28 CET
Oggetto:
Firefox 20.0.1 build problems
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
-        /* 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.
_______________________________________________dev-builds mailing listdev-builds at lists.mozilla.orghttps://lists.mozilla.org/listinfo/dev-builds
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sonicle.com/pipermail/xstreamos-discuss/attachments/20130516/c4f6dcd3/attachment.html>


More information about the XStreamOS-discuss mailing list