diff options
author | Vincent Sanders <vince@kyllikki.org> | 2012-12-10 01:37:42 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2012-12-10 01:37:42 +0000 |
commit | 99bc3cfdd964685bb06a00a454db7276cf38baa3 (patch) | |
tree | aa300107e8ad8333011277998125a56b39af2ae3 /sdk | |
parent | d5454c6f9ca42956a8e0a20fa008b34fe4ed4506 (diff) | |
download | toolchains-99bc3cfdd964685bb06a00a454db7276cf38baa3.tar.gz toolchains-99bc3cfdd964685bb06a00a454db7276cf38baa3.tar.bz2 |
add javascript library build to riscos sdk
Diffstat (limited to 'sdk')
10 files changed, 210 insertions, 37 deletions
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); |