Subject: [alpine-devel] Anyone looking at gnash?

From: Isaac Dunham <[email-masked]>
Date: Thu, 7 Aug 2014 22:56:38 -0700

Hello,
I've been poking at gnash on and off, in hopes of having some way to view
Flash on Alpine.
So far, the problem that I know of is it insists on building a malloc that
supports mallinfo (which is used _very_ extensively in gnash).

This is jemalloc, where I've found 3 issues already:
First, it includes the header sys/sysctl.h by default; the #ifdefs around
this are plainly wrong and easily fixed.
Second, it defines issetugid() to 0; this of course breaks due to our
support for the function, and is horrendously wrong (though gnash is unlikely
to be configured in a way where it matters...).
Third, it uses some unsupported pthread stuff: I see
PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP and PTHREAD_MUTEX_ADAPTIVE_NP.
At this point, it's beyond me.

Has anyone else looked at this?

I'm attaching my current WIP patches; less_sysctl.patch is probably correct,
but issetugid.diff is only to get it closer to building on musl and is
massively incomplete.
I hereby release both to the public domain, in case any work based on them
gets pushed upstream.

Thanks,
Isaac Dunham.
commit f7c796b75df5de91dcc5db10ccf8b2db65bbfbc6
Author: Isaac Dunham <[email-masked]>
Date:   Thu Aug 7 22:24:36 2014 -0700

    issetugid is supported here

diff --git a/libbase/jemalloc.c b/libbase/jemalloc.c
index 9321f59..cdd540f 100644
--- a/libbase/jemalloc.c
+++ b/libbase/jemalloc.c
@@ -190,7 +190,6 @@
 
 #if defined(MOZ_MEMORY_LINUX) && !defined(MOZ_MEMORY_ANDROID)
 #define	_GNU_SOURCE /* For mremap(2). */
-#define	issetugid() 0
 #if 0 /* Enable in order to test decommit code on Linux. */
 #  define MALLOC_DECOMMIT
 #endif
@@ -240,7 +239,6 @@ static unsigned long tlsIndex = 0xffffffff;
 #else
 #define	_pthread_self() __threadid()
 #endif
-#define	issetugid() 0
 
 #ifndef MOZ_MEMORY_WINCE
 /* use MSVC intrinsics */
diff --git a/libbase/jemalloc.c b/libbase/jemalloc.c
index a96333e..9321f59 100644
--- a/libbase/jemalloc.c
+++ b/libbase/jemalloc.c
@@ -326,7 +326,7 @@ __FBSDID("$FreeBSD: head/lib/libc/stdlib/malloc.c 180599 2008-07-18 19:35:44Z ja
 #endif
 #include <sys/time.h>
 #include <sys/types.h>
-#if !defined(MOZ_MEMORY_SOLARIS) && !defined(MOZ_MEMORY_ANDROID)
+#if defined(MOZ_MEMORY_BSD)
 #include <sys/sysctl.h>
 #endif
 #include <sys/uio.h>