I'm using FreeBSD (for now) and I recently had segfault at start after recompiling Palemoon 28.8.3 which was working before with FreeBSD 12.0 after I switched to 12.1.
I went back to 12.0, recompiled and it's working correctly again.
After investigation, turns out the base compiler changed from clang 6.0.1 to 8.0.1.
I'd like to confirm this by using clang8 on 12.0 and clang6 on 12.1 but the mozconfig option "export CC", "export CXX" doesn't seem to have any effect since it first check correctly for the specified compiler, then it uses the default one. But I'm pretty sure it's the main factor.
The .mozconfig used is pretty much the one suggested for the Linux compilation except not enabling jemalloc (the system one works) and pointing the x-libraries to /usr/local/lib
Also some minor code change:
Code: Select all
diff --git a/ipc/chromium/src/third_party/libevent/evutil_rand.c b/ipc/chromium/src/third_party/libevent/evutil_rand.c
index 7c92bae23..25f086286 100644
--- a/ipc/chromium/src/third_party/libevent/evutil_rand.c
+++ b/ipc/chromium/src/third_party/libevent/evutil_rand.c
@@ -143,7 +143,11 @@ evutil_secure_rng_get_bytes(void *buf, size_t n)
void
evutil_secure_rng_add_bytes(const char *buf, size_t n)
{
+#if defined(__OpenBSD__) || defined(__FreeBSD__)
+ arc4random_buf((unsigned char*)buf,
+#elif
arc4random_addrandom((unsigned char*)buf,
+#endif
n>(size_t)INT_MAX ? INT_MAX : (int)n);
}
#endif
Dunno if it fits the security standard, instead of adding some randomness, a new buffer is created.
And the function is the same whether it's OpenBSD or FreeBSD, there's manual page you can check online; but I can't test compilation on OpenBSD since I don't have a box at hand.
Anyway, peace out.
Somebody else can continue this.