Closed Bug 1376268 Opened 8 years ago Closed 8 years ago

js MacroAssembler-none.h has two problems

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: petr.sumbera, Assigned: petr.sumbera)

Details

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (X11; SunOS i86pc; rv:52.0) Gecko/20100101 Firefox/52.0 Build ID: 20170612021003 Steps to reproduce: There are two issue in MacroAssembler-none.h which I can see when building Firefox on sparc (probably no one else did sparc build recently). 1. Issues one: --------------- 9:42.41 /usr/bin/gcc -std=gnu99 -m32 -o pratom.o -c -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/system_wrappers -include /scratch/firefox/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -D_NSPR_BUILD_ -D_PR_INET6 -DHAVE_FCNTL_FILE_LOCKING -D_PR_HAVE_OFF64_T -DHAVE_SOCKLEN_T -DSOLARIS -D_PR_PTHREADS -I/scratch/firefox/config/external/nspr/pr -I/scratch/firefox/obj-sparc-sun-solaris2.12/config/external/nspr/pr -I/scratch/firefox/config/external/nspr -I/scratch/firefox/nsprpub/pr/include -I/scratch/firefox/nsprpub/pr/include/private -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include/nspr -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include/nss -fPIC -include /scratch/firefox/obj-sparc-sun-solaris2.12/mozilla-config.h -DMOZILLA_CLIENT -MD -MP -MF .deps/pratom.o.pp -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -fno-strict-aliasing -fno-math-errno -pthread -pipe -g -O -fno-omit-frame-pointer -fdiagnostics-color /scratch/firefox/nsprpub/pr/src/misc/pratom.c 9:42.94 /scratch/firefox/nsprpub/pr/src/misc/pratom.c: In function '_MD_INIT_ATOMIC': 9:42.95 /scratch/firefox/nsprpub/pr/src/misc/pratom.c:100:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] 9:42.95 for (index = 0; index < num_atomic_locks; index++) { 9:42.95 ^ 9:43.16 In file included from /scratch/firefox/js/src/jit/MacroAssembler.h:28:0, 9:43.17 from /scratch/firefox/js/src/jit/BaselineJIT.h:18, 9:43.17 from /scratch/firefox/js/src/vm/TypeInference-inl.h:19, 9:43.17 from /scratch/firefox/js/src/jsobjinlines.h:33, 9:43.17 from /scratch/firefox/js/src/ctypes/CTypes.cpp:50: 9:43.18 /scratch/firefox/js/src/jit/none/MacroAssembler-none.h:51:72: error: converting to 'js::jit::Register' from initializer list would use explicit constructor 'constexpr js::jit::Register::Register(js::jit::Register::Encoding)' 9:43.18 static constexpr Register WasmIonExitTlsReg = { Registers::invalid_reg }; 9:43.19 ^ 2. Issue two: --------------- 0:47.63 /usr/bin/gcc -std=gnu99 -m32 -o sqlite3.o -c -DNDEBUG=1 -DTRIMMED=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_THREADSAFE=1 -DSQLITE_CORE=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_DEFAULT_PAGE_SIZE=32768 -DSQLITE_MAX_DEFAULT_PAGE_SIZE=32768 -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_BUILTIN_TEST -DSQLITE_OMIT_DECLTYPE -I/scratch/firefox/db/sqlite3/src -I/scratch/firefox/obj-sparc-sun-solaris2.12/db/sqlite3/src -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include/nspr -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include/nss -fPIC -include /scratch/firefox/obj-sparc-sun-solaris2.12/mozilla-config.h -DMOZILLA_CLIENT -MD -MP -MF .deps/sqlite3.o.pp -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -fno-strict-aliasi/usr/bin/gcc -std=gnu99 -m32 -o stubdata.o -c -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/system_wrappers -include /scratch/firefox/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -I/scratch/firefox/config/external/icu/stubdata -I/scratch/firefox/obj-sparc-sun-solaris2.12/config/external/icu/stubdata -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include/nspr -I/scratch/firefox/obj-sparc-sun-solaris2.12/dist/include/nss -fPIC -include /scratch/firefox/obj-sparc-sun-solaris2.12/mozilla-config.h -DMOZILLA_CLIENT -MD -MP -MF .deps/stubdata.o.pp -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -fno-strict-aliasing -fno-math-errno -pthread -pipe -g -O -fno-omit-frame-pointer -fdiagnostics-color /scratch/firefox/intl/icu/source/stubdata/stubdata.c 0:47.63 ng -fno-math-errno -pthread -pipe -g -O -fno-omit-frame-pointer -Wno-sign-compare -Wno-type-limits -fdiagnostics-color /scratch/firefox/db/sqlite3/src/sqlite3.c 0:47.92 libicustubdata.a.desc 0:47.92 rm -f libicustubdata.a 0:47.93 /scratch/firefox/obj-sparc-sun-solaris2.12/_virtualenv/bin/python /scratch/firefox/config/expandlibs_gen.py -o libicustubdata.a.desc stubdata.o 0:48.52 In file included from /scratch/firefox/js/src/jit/IonAnalysis.h:13:0, 0:48.52 from /scratch/firefox/js/src/jsscriptinlines.h:13, 0:48.53 from /scratch/firefox/js/src/frontend/Parser.cpp:43: 0:48.53 /scratch/firefox/js/src/jit/MIR.h: In static member function 'static bool js::jit::MNearbyInt::HasAssemblerSupport(js::jit::RoundingMode)': 0:48.53 /scratch/firefox/js/src/jit/MIR.h:12440:16: error: 'HasRoundInstruction' is not a member of 'js::jit::Assembler' 0:48.53 return Assembler::HasRoundInstruction(mode); 0:48.53 ^ Issue 1 was introduced via Bug 1334504. Issue 2 was introduced via Bug 1339089.
Attached patch Bug1376268.patch (obsolete) — Splinter Review
Attachment #8881232 - Flags: review?(bbouvier)
Attached patch Bug1376268.patchSplinter Review
There is one more issue. executableCopy() can accept just one parameter: 1:06.76 In file included from /scratch/firefox/obj-sparc64-sun-solaris2.12/js/src/Unified_cpp_js_src13.cpp:20:0: 1:06.76 /scratch/firefox/js/src/jit/Ion.cpp: In member function 'void js::jit::JitCode::copyFrom(js::jit::MacroAssembler&)': 1:06.76 /scratch/firefox/js/src/jit/Ion.cpp:756:30: error: no matching function for call to 'js::jit::MacroAssembler::executableCopy(uint8_t*&)' 1:06.76 masm.executableCopy(code_); 1:06.76 ^
Attachment #8881232 - Attachment is obsolete: true
Attachment #8881232 - Flags: review?(bbouvier)
Attachment #8881238 - Flags: review?(bbouvier)
Comment on attachment 8881238 [details] [diff] [review] Bug1376268.patch Review of attachment 8881238 [details] [diff] [review]: ----------------------------------------------------------------- Looks good, thank you! I'll add another small fix needed on mozilla-inbound and will land this for you. Thanks for the patch! ::: js/src/jit/none/MacroAssembler-none.h @@ +198,4 @@ > static bool SupportsSimd() { return false; } > static bool SupportsUnalignedAccesses() { return false; } > > + void executableCopy(void*, bool=true) { MOZ_CRASH(); } For what it's worth, we'd want spaces before/after the equal sign. I'll add them for you.
Attachment #8881238 - Flags: review?(bbouvier) → review+
Pushed by bbouvier@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/29453e030eaa Fix Spidermonkey build with no jit backend; r=bbouvier
Component: Untriaged → JavaScript Engine: JIT
Product: Firefox → Core
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Assignee: nobody → petr.sumbera
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: