Closed Bug 1102925 Opened 11 years ago Closed 3 years ago

Build SpiderMonkey as static library without JIT

Categories

(Core :: JavaScript Engine, defect)

x86_64
Windows 8
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: alessarik, Unassigned)

Details

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0 Build ID: 20141105223254 Steps to reproduce: I expect that this options should work: --disable-shared-js --disable-ion --disable-gcincremental --disable-gcgenerational --disable-ctypes Actual results: A lot of errors during build: js\src\jit/Label.h(86) : error C3861: 'MaybeGetIonContext': identifier not found js\src\jit/Label.h(87) : error C2027: use of undefined type 'js::jit::IonContext' js\src\jscntxt.h(36) : see declaration of 'js::jit::IonContext' And more others. Expected results: Will be good if SpiderMonkey can be built: 1) from root of m-c 2) into static library 3) without JIT support
Component: Untriaged → JavaScript Engine
Product: Firefox → Core
> js\src\moz.build I really don't understand why? : FireFox 33: all of JIT files can be included to UNIFIED_SOURCE only if ENABLE_ION was set as true; FireFox m-c: all of JIT files be included always (I mean without check of ENABLE_ION)
IIRC Brian adjusted this, since we were always breaking --disable-ion builds. He proposed to still build everything but don't enable ionmonkey (The backend of IonMonkey in --disable-ion is a dummy representation that has MOZ_CRASH() for all functions). Seems like we still managed to break it? Another thing. Do we have --disable-jit? Since --disable-ion will only disable ionmonkey. I think it won't disable all jits we have...
(In reply to Hannes Verschore [:h4writer] from comment #2) Looks like --disable-jit were in FireFox 28 (or earlier). Now I found only --disable-ion. If anybody can suggest way how to build SpiderMonkey without any JIT's - welcome.
You can specify --disable-ion and you won't get any working JIT support. There is nothing else.
(In reply to Tom Schuster [:evilpie] from comment #4) > You can specify --disable-ion and you won't get any working JIT support. There is nothing else. Unfortunately, option "--disable-ion" does not work (please, see comment 1)
Attached patch disable_ion_part1.diff (obsolete) — Splinter Review
I tried to repair build of SpiderMonkey without JIT support. Can anybody check and put review+ for this patch?
Attachment #8530865 - Flags: review?(terrence)
Comment on attachment 8530865 [details] [diff] [review] disable_ion_part1.diff Review of attachment 8530865 [details] [diff] [review]: ----------------------------------------------------------------- Actually, the GC bits will be better solved by taking bug 1107288 and bug 1107349. Please test with igc and ggc enabled at build time and disabled at runtime, per those bugs. I'm not sure about the moz.build bits. Please re-upload a patch with just that part.
Attachment #8530865 - Flags: review?(terrence)
Update of patch according with GC bugs. Result of patch: looks like, js_static.lib is made.
Attachment #8530865 - Attachment is obsolete: true
Attachment #8540697 - Flags: review?(terrence)
Attachment #8540697 - Flags: feedback?(hv1989)
I just tested locally, and --disable-ion builds are not busted. So your changes to moz.build are not necessary, we changed to a stubbed none backend in bug 1102925.
Comment on attachment 8540697 [details] [diff] [review] disable_ion_part2.diff Review of attachment 8540697 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/builtin/TypedObject.cpp @@ +1665,5 @@ > owner->as<ArrayBufferObject>().hasInlineData())) > { > newData += reinterpret_cast<uint8_t *>(owner) - reinterpret_cast<uint8_t *>(oldOwner); > typedObj.setData(newData); > +#ifdef JSGC_GENERATIONAL The JSGC_GENERATIONAL and JSGC_INCREMENTAL flags do not exist anymore, so this just unconditionally disables the code here -- probably not what you meant to do. What errors are you hitting when building tip?
Attachment #8540697 - Flags: review?(terrence) → review-
(In reply to Tom Schuster [:evilpie] from comment #9) > I just tested locally, and --disable-ion builds are not busted. So your > changes to moz.build are not necessary, we changed to a stubbed none backend > in bug 1102925. You want to say that all files in js/src/jit should be included in build? Is it correct? In this case how I can disable JIT in SpiderMonkey, or how I can check that JIT is disabled?
(In reply to Maksim Lebedev from comment #12) > You want to say that all files in js/src/jit should be included in build? Is > it correct? Correct. Build with --disable-ion and the JIT will be disabled.
Comment on attachment 8540697 [details] [diff] [review] disable_ion_part2.diff Review of attachment 8540697 [details] [diff] [review]: ----------------------------------------------------------------- Removing f?, since the r- from terrence
Attachment #8540697 - Flags: feedback?(hv1989)
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: