aboutsummaryrefslogtreecommitdiff
path: root/lang/spidermonkey24
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2015-01-30 09:58:04 +0000
committerKoop Mast <kwm@FreeBSD.org>2015-01-30 09:58:04 +0000
commit8ba21f00525424e580ace6a9ee5b8ffb976a1665 (patch)
tree8d921ef8c08034a8653b2acc9699eb8be805ce57 /lang/spidermonkey24
parent23d4801b50d53e0f69d32509e8253cd625c9ff23 (diff)
downloadports-8ba21f00525424e580ace6a9ee5b8ffb976a1665.tar.gz
ports-8ba21f00525424e580ace6a9ee5b8ffb976a1665.zip
Notes
Diffstat (limited to 'lang/spidermonkey24')
-rw-r--r--lang/spidermonkey24/Makefile12
-rw-r--r--lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h14
-rw-r--r--lang/spidermonkey24/files/patch-bug104179535
-rw-r--r--lang/spidermonkey24/files/patch-bug104622432
-rw-r--r--lang/spidermonkey24/files/patch-bug70217923
-rw-r--r--lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp67
-rw-r--r--lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp11
-rw-r--r--lang/spidermonkey24/pkg-plist2
8 files changed, 194 insertions, 2 deletions
diff --git a/lang/spidermonkey24/Makefile b/lang/spidermonkey24/Makefile
index 6f1093713b6d..aac83810081e 100644
--- a/lang/spidermonkey24/Makefile
+++ b/lang/spidermonkey24/Makefile
@@ -29,13 +29,15 @@ CONFIGURE_ARGS= --with-pthreads \
--with-system-nspr
OPTIONS_DEFINE= DEBUG GCZEAL JEMALLOC METHODJIT OPTIMIZE READLINE \
- THREADSAFE TRACEJIT UTF8 \
-
+ THREADSAFE TRACEJIT UTF8 DTRACE
OPTIONS_DEFAULT= METHODJIT OPTIMIZE READLINE THREADSAFE TRACEJIT
+OPTIONS_SUB= yes
DEBUG_DESC= Enable Debug build
DEBUG_CONFIGURE_ENABLE= debug debug-symbols
DEBUG_CONFIGURE_DISABLE=debug
+DTRACE_CONFIGURE_ENABLE=dtrace profiling
+DTRACE_LIBS= -lelf
GCZEAL_DESC= Enable Zealous garbage collecting
GCZEAL_CONFIGURE_ENABLE=gczeal
JEMALLOC_DESC= Use jemalloc as memory allocator
@@ -59,6 +61,10 @@ UTF8_CFLAGS= -DJS_C_STRINGS_ARE_UTF8
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.endif
+.if ${PORT_OPTIONS:MDTRACE} && ${OSVERSION} < 1000510
+BROKEN= dtrace -G crashes with C++ object files
+.endif
+
regression-test: build
@${ECHO_MSG} -n "===> Running jstests.py: "
@cd ${WRKSRC} && ${SETENV} TZ=PST8PDT ${PYTHON_CMD} tests/jstests.py \
@@ -71,7 +77,9 @@ regression-test: build
post-install:
${LN} -s libmozjs-24.so ${STAGEDIR}${PREFIX}/lib/libmozjs-24.so.1
+.if ! ${PORT_OPTIONS:MDTRACE}
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/js24
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-24.*
+.endif
.include <bsd.port.post.mk>
diff --git a/lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h b/lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h
new file mode 100644
index 000000000000..21c71cee6d1f
--- /dev/null
+++ b/lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h
@@ -0,0 +1,14 @@
+--- assembler/jit/ExecutableAllocator.h.orig 2013-10-29 20:40:26 UTC
++++ assembler/jit/ExecutableAllocator.h
+@@ -477,6 +477,11 @@ public:
+ {
+ sync_instruction_memory((caddr_t)code, size);
+ }
++#elif CPU(ARM_TRADITIONAL) && OS(FREEBSD) && COMPILER(CLANG)
++ static void cacheFlush(void* code, size_t size)
++ {
++ __clear_cache(code, reinterpret_cast<char*>(code) + size);
++ }
+ #endif
+
+ private:
diff --git a/lang/spidermonkey24/files/patch-bug1041795 b/lang/spidermonkey24/files/patch-bug1041795
new file mode 100644
index 000000000000..0f527f34f9ca
--- /dev/null
+++ b/lang/spidermonkey24/files/patch-bug1041795
@@ -0,0 +1,35 @@
+diff --git js/src/config/rules.mk js/src/config/rules.mk
+index 4d67eda..783942f 100644
+--- config/rules.mk
++++ config/rules.mk
+@@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ
+ ifndef DTRACE_LIB_DEPENDENT
+ NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS))
+ $(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS)
+- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
++ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
+ endif
+ endif
+ endif
+@@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER
+ endif
+ ifdef DTRACE_LIB_DEPENDENT
+ ifndef XP_MACOSX
+- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
++ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
+ endif
+ $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
+ @$(RM) $(DTRACE_PROBE_OBJ)
+diff --git js/src/Makefile.in js/src/Makefile.in
+index 28ca5e8..96793d7 100644
+--- Makefile.in
++++ Makefile.in
+@@ -342,7 +342,7 @@ endif
+
+ ifdef HAVE_DTRACE
+ $(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
+- dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
++ dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
+ sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
+ -e '/const/!s/char \*/const char */g' \
+ javascript-trace.h.in > javascript-trace.h
diff --git a/lang/spidermonkey24/files/patch-bug1046224 b/lang/spidermonkey24/files/patch-bug1046224
new file mode 100644
index 000000000000..c7a3de4a60a4
--- /dev/null
+++ b/lang/spidermonkey24/files/patch-bug1046224
@@ -0,0 +1,32 @@
+diff --git js/src/configure js/src/configure
+index 59d69c7..779a50f 100644
+--- configure
++++ configure
+@@ -10260,7 +10260,13 @@ cross_compiling=$ac_cv_prog_cc_cross
+ # Check whether --enable-dtrace or --disable-dtrace was given.
+ if test "${enable_dtrace+set}" = set; then
+ enableval="$enable_dtrace"
+- enable_dtrace="yes"
++ if test "$enableval" = "yes"; then
++ enable_dtrace="yes"
++ elif test "$enableval" = "no"; then
++ :
++ else
++ { echo "configure: error: Option, dtrace, does not take an argument ($enableval)." 1>&2; exit 1; }
++ fi
+ fi
+
+ if test "x$enable_dtrace" = "xyes"; then
+diff --git js/src/configure.in js/src/configure.in
+index 59d69c7..779a50f 100644
+--- configure.in
++++ configure.in
+@@ -2153,7 +2153,7 @@ dnl Quota support
+ MOZ_CHECK_HEADERS(sys/quota.h)
+ MOZ_CHECK_HEADERS(linux/quota.h)
+
+-AC_ARG_ENABLE(dtrace,
++MOZ_ARG_ENABLE_BOOL(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+ if test "x$enable_dtrace" = "xyes"; then
diff --git a/lang/spidermonkey24/files/patch-bug702179 b/lang/spidermonkey24/files/patch-bug702179
new file mode 100644
index 000000000000..959ceed753e7
--- /dev/null
+++ b/lang/spidermonkey24/files/patch-bug702179
@@ -0,0 +1,23 @@
+diff --git js/src/Makefile.in js/src/Makefile.in
+index e28160a..28ca5e8 100644
+--- Makefile.in
++++ Makefile.in
+@@ -35,7 +35,6 @@ ifdef JS_SHARED_LIBRARY
+ FORCE_SHARED_LIB = 1
+ endif
+ FORCE_STATIC_LIB = 1
+-DIST_INSTALL = 1
+
+ ###############################################
+ # BEGIN include sources for low-level code shared with mfbt
+@@ -584,8 +584,8 @@ install:: $(EXPORTS_mozilla)
+ install:: $(SCRIPTS)
+ $(SYSINSTALL) $^ $(DESTDIR)$(bindir)
+
+-install:: $(REAL_LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+-ifneq (,$(REAL_LIBRARY))
++install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
++ifdef DIST_INSTALL
+ $(SYSINSTALL) $(REAL_LIBRARY) $(DESTDIR)$(libdir)
+ mv -f $(DESTDIR)$(libdir)/$(REAL_LIBRARY) $(subst $(STATIC_LIBRARY_NAME),$(LIBRARY_NAME),$(DESTDIR)$(libdir)/$(REAL_LIBRARY))
+ endif
diff --git a/lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp b/lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp
new file mode 100644
index 000000000000..eae20ed8fd1b
--- /dev/null
+++ b/lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp
@@ -0,0 +1,67 @@
+https://hg.mozilla.org/mozilla-central/rev/07ce4364fbec
+
+--- jit/AsmJSSignalHandlers.cpp.orig 2013-10-29 21:40:19.000000000 +0100
++++ jit/AsmJSSignalHandlers.cpp 2015-01-25 11:23:43.104097667 +0100
+@@ -64,7 +64,6 @@
+ # endif
+ # define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_EIP])
+ # define RIP_sig(p) ((p)->uc_mcontext.gregs[REG_RIP])
+-# define PC_sig(p) ((p)->uc_mcontext.arm_pc)
+ # define RAX_sig(p) ((p)->uc_mcontext.gregs[REG_RAX])
+ # define RCX_sig(p) ((p)->uc_mcontext.gregs[REG_RCX])
+ # define RDX_sig(p) ((p)->uc_mcontext.gregs[REG_RDX])
+@@ -80,7 +79,11 @@
+ # define R12_sig(p) ((p)->uc_mcontext.gregs[REG_R12])
+ # define R13_sig(p) ((p)->uc_mcontext.gregs[REG_R13])
+ # define R14_sig(p) ((p)->uc_mcontext.gregs[REG_R14])
+-# define R15_sig(p) ((p)->uc_mcontext.gregs[REG_R15])
++# if defined(__linux__) && defined(__arm__)
++# define R15_sig(p) ((p)->uc_mcontext.arm_pc)
++# else
++# define R15_sig(p) ((p)->uc_mcontext.gregs[REG_R15])
++# endif
+ #elif defined(__NetBSD__)
+ # define XMM_sig(p,i) (((struct fxsave64 *)(p)->uc_mcontext.__fpregs)->fx_xmm[i])
+ # define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP])
+@@ -124,7 +127,11 @@
+ # define R12_sig(p) ((p)->uc_mcontext.mc_r12)
+ # define R13_sig(p) ((p)->uc_mcontext.mc_r13)
+ # define R14_sig(p) ((p)->uc_mcontext.mc_r14)
+-# define R15_sig(p) ((p)->uc_mcontext.mc_r15)
++# if defined(__FreeBSD__) && defined(__arm__)
++# define R15_sig(p) ((p)->uc_mcontext.__gregs[_REG_R15])
++# else
++# define R15_sig(p) ((p)->uc_mcontext.mc_r15)
++# endif
+ #elif defined(XP_MACOSX)
+ // Mach requires special treatment.
+ #else
+@@ -325,20 +332,20 @@
+ # define CONTEXT ucontext_t
+ # endif
+
++#if defined(JS_CPU_X64)
++# define PC_sig(p) RIP_sig(p)
++#elif defined(JS_CPU_X86)
++# define PC_sig(p) EIP_sig(p)
++#elif defined(JS_CPU_ARM)
++# define PC_sig(p) R15_sig(p)
++#endif
++
+ # if !defined(XP_MACOSX)
+ static uint8_t **
+ ContextToPC(CONTEXT *context)
+ {
+-# if defined(JS_CPU_X64)
+- JS_STATIC_ASSERT(sizeof(RIP_sig(context)) == sizeof(void*));
+- return reinterpret_cast<uint8_t**>(&RIP_sig(context));
+-# elif defined(JS_CPU_X86)
+- JS_STATIC_ASSERT(sizeof(EIP_sig(context)) == sizeof(void*));
+- return reinterpret_cast<uint8_t**>(&EIP_sig(context));
+-# elif defined(JS_CPU_ARM)
+ JS_STATIC_ASSERT(sizeof(PC_sig(context)) == sizeof(void*));
+ return reinterpret_cast<uint8_t**>(&PC_sig(context));
+-# endif
+ }
+
+ # if defined(JS_CPU_X64)
diff --git a/lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp b/lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp
new file mode 100644
index 000000000000..57ce2f2f40ea
--- /dev/null
+++ b/lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp
@@ -0,0 +1,11 @@
+--- jit/arm/Architecture-arm.cpp.orig 2013-10-29 20:40:20 UTC
++++ jit/arm/Architecture-arm.cpp
+@@ -15,7 +15,7 @@
+
+ // lame check for kernel version
+ // see bug 586550
+-#if !(defined(ANDROID) || defined(MOZ_B2G))
++#if !(defined(ANDROID) || defined(MOZ_B2G) || defined(__FreeBSD__))
+ #include <asm/hwcap.h>
+ #else
+ #define HWCAP_VFP (1<<0)
diff --git a/lang/spidermonkey24/pkg-plist b/lang/spidermonkey24/pkg-plist
index 1a4e1f413d26..c5ecdeabb657 100644
--- a/lang/spidermonkey24/pkg-plist
+++ b/lang/spidermonkey24/pkg-plist
@@ -1,5 +1,6 @@
bin/js24
bin/js24-config
+%%DTRACE%%include/mozjs-24/javascript-trace.h
include/mozjs-24/js-config.h
include/mozjs-24/js.msg
include/mozjs-24/js/Anchor.h
@@ -73,6 +74,7 @@ include/mozjs-24/mozilla/TypedEnum.h
include/mozjs-24/mozilla/Types.h
include/mozjs-24/mozilla/Util.h
include/mozjs-24/mozilla/WeakPtr.h
+@comment lib/libmozjs-24.a
lib/libmozjs-24.so
lib/libmozjs-24.so.1
libdata/pkgconfig/mozjs-24.pc