Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Jan 2015 09:58:04 +0000 (UTC)
From:      Koop Mast <kwm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r378144 - in head/lang/spidermonkey24: . files
Message-ID:  <201501300958.t0U9w4jr027319@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kwm
Date: Fri Jan 30 09:58:04 2015
New Revision: 378144
URL: https://svnweb.freebsd.org/changeset/ports/378144
QAT: https://qat.redports.org/buildarchive/r378144/

Log:
  Fix the build on ARM [1]
  Add DTRACE option (default off) [2]
  
  PR:		197058 [1]
  PR:		192614 [2]
  Submitted by:	sbruno@ [1], jbeich@ [2]

Added:
  head/lang/spidermonkey24/files/
  head/lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h   (contents, props changed)
  head/lang/spidermonkey24/files/patch-bug1041795   (contents, props changed)
  head/lang/spidermonkey24/files/patch-bug1046224   (contents, props changed)
  head/lang/spidermonkey24/files/patch-bug702179   (contents, props changed)
  head/lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp   (contents, props changed)
  head/lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp   (contents, props changed)
Modified:
  head/lang/spidermonkey24/Makefile
  head/lang/spidermonkey24/pkg-plist

Modified: head/lang/spidermonkey24/Makefile
==============================================================================
--- head/lang/spidermonkey24/Makefile	Fri Jan 30 09:34:03 2015	(r378143)
+++ head/lang/spidermonkey24/Makefile	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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>

Added: head/lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/spidermonkey24/files/patch-assembler_jit_ExecutableAllocator.h	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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:

Added: head/lang/spidermonkey24/files/patch-bug1041795
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/spidermonkey24/files/patch-bug1041795	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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

Added: head/lang/spidermonkey24/files/patch-bug1046224
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/spidermonkey24/files/patch-bug1046224	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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

Added: head/lang/spidermonkey24/files/patch-bug702179
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/spidermonkey24/files/patch-bug702179	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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

Added: head/lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/spidermonkey24/files/patch-jit_AsmJSSignalHandlers.cpp	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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)

Added: head/lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/spidermonkey24/files/patch-jit_arm_Architecture-arm.cpp	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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)

Modified: head/lang/spidermonkey24/pkg-plist
==============================================================================
--- head/lang/spidermonkey24/pkg-plist	Fri Jan 30 09:34:03 2015	(r378143)
+++ head/lang/spidermonkey24/pkg-plist	Fri Jan 30 09:58:04 2015	(r378144)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501300958.t0U9w4jr027319>