Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Nov 2010 17:19:17 +0300
From:      Anonymous <swell.k@gmail.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/152477: [patch] www/firefox-devel: enable tracejit on amd64
Message-ID:  <86aal17862.fsf@gmail.com>
Resent-Message-ID: <201011221420.oAMEKGNH054527@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         152477
>Category:       ports
>Synopsis:       [patch] www/firefox-devel: enable tracejit on amd64
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    gecko
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Nov 22 14:20:15 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Anonymous
>Release:        FreeBSD 9.0-CURRENT amd64
>Organization:
>Environment:
mozilla trunk (57991:395e62c37851) wants JS_TRACER:

  $ make
  gmake[3]: Entering directory `/usr/ports/www/firefox-devel/work/mozilla-central/js/src'
  jsarray.cpp
  g++45 -o jsarray.o -c  -I./../../dist/system_wrappers_js -include ./config/gcc_hidden.h -DOSTYPE=\"FreeBSD9\" -DOSARCH=FreeBSD -DEXPORT_JS_API -D__STDC_LIMIT_MACROS -DJS_HAS_CTYPES -DDLL_PREFIX=\"lib\" -DDLL_SUFFIX=\".so\" -DFREEBSD -Ictypes/libffi/include -I.  -I. -I. -I./../../dist/include -I./../../dist/include/nsprpub -I/usr/local/include  -I/usr/local/include/nspr   -I. -I./assembler -I./yarr  -fPIC -I/usr/local/include -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -O2 -pipe -O3 -ggdb -fstack-protector -march=native -fno-strict-aliasing -fno-strict-aliasing -pipe  -DNDEBUG -DTRIMMED -O3 -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1  -I/usr/local/include -DMOZILLA_CLIENT -include ./js-confdefs.h jsarray.cpp
  jsarray.cpp: In function 'JSBool js_ArrayCompPush_tn(JSContext*, JSObject*, js::ValueArgType)':
  jsarray.cpp:2058:27: error: 'SetBuiltinError' was not declared in this scope
  jsarray.cpp:2062:16: error: 'struct JSContext' has no member named 'tracerState'
  jsarray.cpp:2063:1: error: control reaches end of non-void function

It's not present in beta7 but the underlying issue is still there.
>Description:
Due to our default CONFIGURE_TARGET tracejit ends up disabled by default

  case "$target" in
  x86_64*-*)
      ENABLE_TRACEJIT=1
      NANOJIT_ARCH=X64
      ENABLE_METHODJIT=1
      ENABLE_MONOIC=1
      ENABLE_POLYIC=1
      AC_DEFINE(JS_CPU_X64)
      AC_DEFINE(JS_PUNBOX64)
      ;;

I wonder how it affects performance.
>How-To-Repeat:
$ make clean configure
$ cp $(make -V WRKSRC)/js/src/js-config.h amd64.js-config.h

$ make clean configure CONFIGURE_TARGET=x86_64-portbld-freebsd9.0
$ cp $(make -V WRKSRC)/js/src/js-config.h x86_64.js-config.h

$ diff {amd64,x86_64}.js-config.h
--- amd64.js-config.h
+++ x86_64.js-config.h
@@ -86,7 +86,7 @@

 /* Some mozilla code uses JS-friend APIs that depend on JS_TRACER and
    JS_METHODJIT being correct. */
-/* #undef JS_TRACER */
-/* #undef JS_METHODJIT */
+#define JS_TRACER 1
+#define JS_METHODJIT 1

 #endif /* js_config_h___ */
>Fix:
--- a.diff begins here ---
Index: www/firefox-devel/files/patch-js-src-configure.in
===================================================================
--- www/firefox-devel/files/patch-js-src-configure.in	(revision 436)
+++ www/firefox-devel/files/patch-js-src-configure.in	(working copy)
@@ -1,5 +1,14 @@
 --- js/src/configure.in.orig	2010-11-09 13:03:31.000000000 +0100
 +++ js/src/configure.in	2010-11-09 13:03:46.000000000 +0100
+@@ -2621,7 +2621,7 @@ i?86-*)
+     AC_DEFINE(JS_CPU_X86)
+     AC_DEFINE(JS_NUNBOX32)
+     ;;
+-x86_64*-*)
++x86_64*-*|amd64*-*)
+     ENABLE_TRACEJIT=1
+     NANOJIT_ARCH=X64
+     ENABLE_METHODJIT=1
 @@ -2638,11 +2638,6 @@
      AC_DEFINE(JS_CPU_ARM)
      AC_DEFINE(JS_NUNBOX32)
--- a.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:



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