ports/152477: [patch] www/firefox-devel: enable tracejit on amd64
Anonymous
swell.k at gmail.com
Mon Nov 22 14:20:16 UTC 2010
>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:
More information about the freebsd-gecko
mailing list