summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2012-12-10 01:37:42 +0000
committerVincent Sanders <vince@kyllikki.org>2012-12-10 01:37:42 +0000
commit99bc3cfdd964685bb06a00a454db7276cf38baa3 (patch)
treeaa300107e8ad8333011277998125a56b39af2ae3
parentd5454c6f9ca42956a8e0a20fa008b34fe4ed4506 (diff)
downloadtoolchains-99bc3cfdd964685bb06a00a454db7276cf38baa3.tar.gz
toolchains-99bc3cfdd964685bb06a00a454db7276cf38baa3.tar.bz2
add javascript library build to riscos sdk
-rw-r--r--README2
-rw-r--r--sdk/Makefile31
-rw-r--r--sdk/recipes/patches/nspr/arm-unknown-riscos/thread_noops.p78
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p11
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p11
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p32
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p13
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p11
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p27
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p22
-rw-r--r--sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p11
11 files changed, 211 insertions, 38 deletions
diff --git a/README b/README
index 8ed9e0b..2ca4dda 100644
--- a/README
+++ b/README
@@ -4,7 +4,7 @@ Pre-requisites for Debian systems
---------------------------------
$ apt-get install build-essential autoconf automake autogen flex bison
- $ apt-get install libtool texinfo help2man subversion
+ $ apt-get install libtool texinfo help2man subversion cvs
RISC OS
-------
diff --git a/sdk/Makefile b/sdk/Makefile
index eb0c627..d5c148f 100644
--- a/sdk/Makefile
+++ b/sdk/Makefile
@@ -43,6 +43,7 @@ VERSION_WINDOM := 2.0.1
VERSION_HERMES := 1.3.3
VERSION_FREETYPE := 2.4.10
VERSION_NSPR := 4.9.3
+VERSION_SPIDERMONKEY := 1.8.5
# Path
path__ := $(GCCSDK_INSTALL_CROSSBIN):$(PATH)
@@ -80,7 +81,7 @@ LIBCURL_DISABLES := $(patsubst %,--disable-%,ftp file dict ldap telnet gopher tf
# Target Specific setup
ifeq ($(TARGET),arm-unknown-riscos)
- SDK_ITEMS := $(addprefix $(BUILDSTEPS)/, $(COMMON_SDK_ITEMS) nspr.d)
+ SDK_ITEMS := $(addprefix $(BUILDSTEPS)/, $(COMMON_SDK_ITEMS) nspr.d spidermonkey.d)
EXTRAARGS_LIBCARES := --disable-shared
EXTRAARGS_LIBCURL := --enable-nonblocking --enable-ares $(LIBCURL_DISABLES)
endif
@@ -466,17 +467,35 @@ $(SOURCEDIR)/expat-$(VERSION_LIBEXPAT).tar.gz:
# nspr
$(BUILDSTEPS)/nspr.d: $(BUILDSTEPS)/builddir.d $(BUILDSTEPS)/nspr-src.d
- mkdir -p $(BUILDDIR)/nspr
- cd $(BUILDDIR)/nspr && tar xzf $(SOURCEDIR)/nspr-$(VERSION_NSPR).tar.gz
- for p in `ls $(RECIPES)/patches/nspr/$(TARGET)/*.p` ; do patch -d $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR) -p0 <$$p ; done
- cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) CROSS_COMPILE=1 CFLAGS=-D_PR_LOCAL_THREADS_ONLY ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --host=$(TARGET) --disable-shared --without-pthreads
+ cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) CROSS_COMPILE=1 CFLAGS=-D_PR_LOCAL_THREADS_ONLY ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --host=$(TARGET) --disable-shared --without-pthreads --with-cpu-arch=armv3
cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) make
cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) make install
touch $@
-
$(BUILDSTEPS)/nspr-src.d: $(BUILDSTEPS)/sourcedir.d $(SOURCEDIR)/nspr-$(VERSION_NSPR).tar.gz
+ $(RM) -rf $(BUILDDIR)/nspr
+ mkdir -p $(BUILDDIR)/nspr
+ cd $(BUILDDIR)/nspr && tar xzf $(SOURCEDIR)/nspr-$(VERSION_NSPR).tar.gz
+ for p in `ls $(RECIPES)/patches/nspr/$(TARGET)/*.p` ; do patch -d $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR) -p0 <$$p ; done
touch $@
$(SOURCEDIR)/nspr-$(VERSION_NSPR).tar.gz:
wget -q -O $@ https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(VERSION_NSPR)/src/nspr-$(VERSION_NSPR).tar.gz
+
+
+# spidermonkey (libmozjs)
+$(BUILDSTEPS)/spidermonkey.d: $(BUILDSTEPS)/builddir.d $(BUILDSTEPS)/spidermonkey-src.d
+ cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --disable-tracejit --disable-thumb2 --with-thumb=no --enable-static --with-system-nspr --with-nspr-prefix=$(GCCSDK_INSTALL_ENV) --disable-shared --disable-shared-js --with-cpu-arch=armv3 --disable-tests
+ cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) make
+ cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) make install
+ touch $@
+
+$(BUILDSTEPS)/spidermonkey-src.d: $(BUILDSTEPS)/sourcedir.d $(SOURCEDIR)/spidermonkey-$(VERSION_SPIDERMONKEY).tar.gz
+ $(RM) -rf $(BUILDDIR)/spidermonkey
+ mkdir -p $(BUILDDIR)/spidermonkey
+ cd $(BUILDDIR)/spidermonkey && tar xaf $(SOURCEDIR)/spidermonkey-$(VERSION_SPIDERMONKEY).tar.gz
+ for p in `ls $(RECIPES)/patches/spidermonkey/$(TARGET)/*.p` ; do patch -d $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY) -p0 <$$p ; done
+ touch $@
+
+$(SOURCEDIR)/spidermonkey-$(VERSION_SPIDERMONKEY).tar.gz:
+ wget -q -O $@ http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz \ No newline at end of file
diff --git a/sdk/recipes/patches/nspr/arm-unknown-riscos/thread_noops.p b/sdk/recipes/patches/nspr/arm-unknown-riscos/thread_noops.p
index ad77bdf..c97bf23 100644
--- a/sdk/recipes/patches/nspr/arm-unknown-riscos/thread_noops.p
+++ b/sdk/recipes/patches/nspr/arm-unknown-riscos/thread_noops.p
@@ -1,34 +1,3 @@
-=== modified file 'mozilla/nsprpub/pr/include/md/_riscos.h'
---- mozilla/nsprpub/pr/include/md/_riscos.h 2012-11-04 17:32:26 +0000
-+++ mozilla/nsprpub/pr/include/md/_riscos.h 2012-11-04 18:01:57 +0000
-@@ -22,6 +22,10 @@
- #define _PR_STAT_HAS_ONLY_ST_ATIME
- #define _PR_HAVE_POSIX_SEMAPHORES
-
-+#define _PR_STACK_VMBASE 0x50000000
-+#define _MD_MMAP_FLAGS MAP_PRIVATE
-+#define _MD_DEFAULT_STACK_SIZE 65536L
-+
- #include <sys/select.h>
- #include <sys/poll.h>
- #include <kernel.h>
-@@ -47,7 +51,6 @@
- #define _PR_CONTEXT_TYPE jmp_buf
- #define _PR_NUM_GCREGS _JBLEN
- #define _MD_GET_SP(_t) (_t)->md.context[7]
--
- #define CONTEXT(_th) ((_th)->md.context)
-
-
-@@ -84,6 +87,7 @@
- _PR_CONTEXT_TYPE context;
- int id;
- int errcode;
-+ int no_sched;
- };
-
- struct _MDThreadStack {
-
=== modified file 'mozilla/nsprpub/pr/include/private/primpl.h'
--- mozilla/nsprpub/pr/include/private/primpl.h 2012-11-04 17:32:26 +0000
+++ mozilla/nsprpub/pr/include/private/primpl.h 2012-11-04 17:57:04 +0000
@@ -117,3 +86,50 @@
}
+--- mozilla/nsprpub/pr/include/md/_riscos.h 2012-03-06 13:13:53.000000000 +0000
++++ mozilla/nsprpub/pr/include/md/_riscos.h 2012-12-10 01:29:32.341270324 +0000
+@@ -22,6 +22,10 @@
+ #define _PR_STAT_HAS_ONLY_ST_ATIME
+ #define _PR_HAVE_POSIX_SEMAPHORES
+
++#define _PR_STACK_VMBASE 0x50000000
++#define _MD_MMAP_FLAGS MAP_PRIVATE
++#define _MD_DEFAULT_STACK_SIZE 65536L
++
+ #include <sys/select.h>
+ #include <sys/poll.h>
+ #include <kernel.h>
+@@ -47,7 +51,6 @@
+ #define _PR_CONTEXT_TYPE jmp_buf
+ #define _PR_NUM_GCREGS _JBLEN
+ #define _MD_GET_SP(_t) (_t)->md.context[7]
+-
+ #define CONTEXT(_th) ((_th)->md.context)
+
+
+@@ -84,6 +87,7 @@
+ _PR_CONTEXT_TYPE context;
+ int id;
+ int errcode;
++ int no_sched;
+ };
+
+ struct _MDThreadStack {
+@@ -164,6 +168,7 @@
+ #define _MD_SUSPEND_THREAD(thread)
+ #define _MD_RESUME_THREAD(thread)
+ #define _MD_CLEAN_THREAD(_thread)
++#define _MD_SET_CURRENT_THREAD_NAME(thread)
+
+ /*
+ ** We wrapped the select() call. _MD_SELECT refers to the built-in,
+@@ -174,4 +179,9 @@
+ #include <sys/select.h>
+ #define _MD_SELECT select
+
++#ifdef _PR_POLL_AVAILABLE
++#include <sys/poll.h>
++#define _MD_POLL poll
++#endif
++
+ #endif /* nspr_riscos_defs_h___ */
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p
new file mode 100644
index 0000000..30b811f
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocator.h.p
@@ -0,0 +1,11 @@
+--- js/src/assembler/jit/ExecutableAllocator.h.orig 2012-11-08 14:37:17.000000000 +0000
++++ js/src/assembler/jit/ExecutableAllocator.h 2012-11-08 14:46:42.000000000 +0000
+@@ -370,7 +370,7 @@
+ }
+ #elif WTF_CPU_ARM_TRADITIONAL && WTF_PLATFORM_LINUX && WTF_COMPILER_RVCT
+ static __asm void cacheFlush(void* code, size_t size);
+-#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID) && WTF_COMPILER_GCC
++#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID || WTF_PLATFORM_RISCOS) && WTF_COMPILER_GCC
+ static void cacheFlush(void* code, size_t size)
+ {
+ asm volatile (
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p
new file mode 100644
index 0000000..2f31400
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/ExecutableAllocatorPosix.cpp.p
@@ -0,0 +1,11 @@
+--- js/src/assembler/jit/ExecutableAllocatorPosix.cpp.orig 2012-11-08 16:02:56.000000000 +0000
++++ js/src/assembler/jit/ExecutableAllocatorPosix.cpp 2012-11-08 15:34:03.000000000 +0000
+@@ -25,7 +25,7 @@
+
+ #include "ExecutableAllocator.h"
+
+-#if ENABLE_ASSEMBLER && WTF_PLATFORM_UNIX && !WTF_PLATFORM_SYMBIAN
++#if ENABLE_ASSEMBLER && (WTF_PLATFORM_UNIX || WTF_PLATFORM_RISCOS) && !WTF_PLATFORM_SYMBIAN
+
+ #include <sys/mman.h>
+ #include <unistd.h>
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p
new file mode 100644
index 0000000..9d91ac8
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/Platform.h.p
@@ -0,0 +1,32 @@
+--- js/src/assembler/wtf/Platform.h.orig 2011-03-31 20:08:36.000000000 +0100
++++ js/src/assembler/wtf/Platform.h 2012-11-08 14:48:57.000000000 +0000
+@@ -188,6 +188,7 @@
+ #elif !defined(__ARM_EABI__) \
+ && !defined(__EABI__) \
+ && !defined(__VFP_FP__) \
++ && !defined(__riscos__) \
+ && !defined(ANDROID)
+ #define WTF_CPU_MIDDLE_ENDIAN 1
+
+@@ -232,6 +233,7 @@
+
+ #endif
+
++#ifndef __riscos__
+ /* Set WTF_THUMB_ARCH_VERSION */
+ #if defined(__ARM_ARCH_4T__)
+ #define WTF_THUMB_ARCH_VERSION 1
+@@ -263,6 +265,13 @@
+ #define WTF_THUMB_ARCH_VERSION 0
+ #endif
+
++#else
++
++#define WTF_THUMB_ARCH_VERSION 0
++#define WTF_PLATFORM_RISCOS 1
++#define WTF_CPU_ARM_TRADITIONAL 1
++
++#endif
+
+ /* CPU(ARMV5_OR_LOWER) - ARM instruction set v5 or earlier */
+ /* On ARMv5 and below the natural alignment is required.
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p
new file mode 100644
index 0000000..0dd914b
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p
@@ -0,0 +1,13 @@
+--- js/src/configure 2011-03-31 20:08:36.000000000 +0100
++++ js/src/configure 2012-12-10 00:34:27.312881924 +0000
+@@ -7779,6 +7785,10 @@
+ HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
+ ;;
+
++*-riscos*)
++ TARGET_NSPR_MDCPUCFG='\"md/_riscos.cfg\"'
++ ;;
++
+ *-android*)
+ cat >> confdefs.h <<\EOF
+ #define NO_PW_GECOS 1
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p
new file mode 100644
index 0000000..d61d860
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jscntxt.cpp.p
@@ -0,0 +1,11 @@
+--- js/src/jscntxt.cpp.orig 2012-11-08 14:49:30.000000000 +0000
++++ js/src/jscntxt.cpp 2012-11-08 14:50:19.000000000 +0000
+@@ -179,7 +179,7 @@
+ #elif defined(XP_OS2)
+ DosFreeMem(base);
+ #else
+-#ifdef SOLARIS
++#if defined(SOLARIS) || defined(__riscos__)
+ munmap((caddr_t)base, CAPACITY_BYTES);
+ #else
+ munmap(base, CAPACITY_BYTES);
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p
new file mode 100644
index 0000000..b8720e4
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsgcchunk.cpp.p
@@ -0,0 +1,27 @@
+--- js/src/jsgcchunk.cpp 2012-12-10 00:50:18.369597597 +0000
++++ js/src/jsgcchunk.cpp 2012-12-10 00:51:36.317984488 +0000
+@@ -322,13 +322,13 @@
+ * We don't use MAP_FIXED here, because it can cause the *replacement*
+ * of existing mappings, and we only want to create new mappings.
+ */
+- void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
++ void *p = mmap((caddr_t)addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
+ -1, 0);
+ if (p == MAP_FAILED)
+ return NULL;
+ if (addr && p != addr) {
+ /* We succeeded in mapping memory, but not in the right place. */
+- JS_ALWAYS_TRUE(munmap(p, size) == 0);
++ JS_ALWAYS_TRUE(munmap((caddr_t)p, size) == 0);
+ return NULL;
+ }
+ return p;
+@@ -342,7 +342,7 @@
+ #ifdef SOLARIS
+ JS_ALWAYS_TRUE(munmap((caddr_t) addr, size) == 0);
+ #else
+- JS_ALWAYS_TRUE(munmap(addr, size) == 0);
++ JS_ALWAYS_TRUE(munmap((caddr_t)addr, size) == 0);
+ #endif
+ }
+
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p
new file mode 100644
index 0000000..0e042a9
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jsnativestack.cpp.p
@@ -0,0 +1,22 @@
+--- js/src/jsnativestack.cpp.orig 2012-11-08 14:53:01.000000000 +0000
++++ js/src/jsnativestack.cpp 2012-11-08 14:53:58.000000000 +0000
+@@ -204,7 +204,9 @@
+ * FIXME: this function is non-portable;
+ * other POSIX systems may have different np alternatives
+ */
++#ifndef __riscos__
+ pthread_getattr_np(thread, &sattr);
++#endif
+ # endif
+
+ void *stackBase = 0;
+@@ -212,7 +214,9 @@
+ # ifdef DEBUG
+ int rc =
+ # endif
++#ifndef __riscos__
+ pthread_attr_getstack(&sattr, &stackBase, &stackSize);
++#endif
+ JS_ASSERT(!rc);
+ JS_ASSERT(stackBase);
+ pthread_attr_destroy(&sattr);
diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p
new file mode 100644
index 0000000..0f4cfa9
--- /dev/null
+++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/jstypedarray.cpp.p
@@ -0,0 +1,11 @@
+--- js/src/jstypedarray.cpp.orig 2012-11-08 16:22:50.000000000 +0000
++++ js/src/jstypedarray.cpp 2012-11-08 16:23:25.000000000 +0000
+@@ -454,7 +454,7 @@
+ inline operator uint8() const {
+ return val;
+ }
+-};
++} __attribute__((packed));
+
+ /* Make sure the compiler isn't doing some funky stuff */
+ JS_STATIC_ASSERT(sizeof(uint8_clamped) == 1);