Commit graph

34 commits

Author SHA1 Message Date
athenian200
45bf760ac5 MoonchildProductions#1251 - Part 27: Fix ifdef style.
This should do it for all the commits to files I changed, but while I'm in here I could probably go ahead and turn ALL the singular if defined statements into ifdef statements by using grep/find on the tree. On the other hand, perhaps we should do that as a separate issue so that this doesn't become a case of scope creep.
2019-11-04 11:54:07 +08:00
athenian200
0239eb8ac9 MoonchildProductions#1251 - Part 23: Allow AMD64 build to work.
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Compiling_32-bit_Firefox_on_a_Linux_64-bit_OS

Setting this up turned out to be easier than I thought it would be. All I had to do was apply these instructions in reverse and add the following to my .mozconfig file:

CC="gcc -m64"
CXX="g++ -m64"
AS="gas --64"
ac_add_options --target=x86_64-pc-solaris2.11
export PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig
ac_add_options --libdir=/usr/lib/amd64
ac_add_options --x-libraries=/usr/lib/amd64

Most of these changes were fairly trivial, just requiring me to make a few of the changes I made earlier conditional on a 32-bit build. The biggest challenge was figuring out why the JavaScript engine triggered a segfault everytime it tried to allocate memory. But this patch fixes it:

https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/web/firefox/patches/patch-js_src_gc_Memory.cpp.patch

Turns out that Solaris on AMD64 handles memory management in a fairly unusual way with a segmented memory model, but it's not that different from what we see on other 64-bit processors. In fact, I saw a SPARC crash for a similar reason, and noticed that it looked just like mine except the numbers in the first segment were reversed. Having played around with hex editors before, I had a feeling I might be dealing with a little-endian version of a big-endian problem, but I didn't expect that knowledge to actually yield an easy solution.

https://bugzilla.mozilla.org/show_bug.cgi?id=577056

https://www.oracle.com/technetwork/server-storage/solaris10/solaris-memory-135224.html

As far as I can tell, this was the last barrier to an AMD64 Solaris build of Pale Moon.
2019-11-04 11:54:02 +08:00
athenian200
b652dd59ae MoonchildProductions#1251 - Part 7: All the posix_m* memory-related stuff, gathered together.
https://bugzilla.mozilla.org/show_bug.cgi?id=1158445
https://bugzilla.mozilla.org/show_bug.cgi?id=963983
https://bugzilla.mozilla.org/show_bug.cgi?id=1542758

Solaris madvise and malign don't perfectly map to their POSIX counterparts, and some Linux versions (especially Android) don't define the POSIX counterparts at all, so options are limited. Ideally posix_madvise and posix_malign should be the safer and more portable options for all platforms.
2019-11-04 11:52:22 +08:00
wolfbeast
ca9e376e55 Issue #1257 - Part 2: Remove watch/unwatch and JS watchpoint class. 2019-11-01 10:24:09 +08:00
wolfbeast
54b6b407a9 Remove UnboxedArray code part 2 2019-06-19 21:34:02 +08:00
wolfbeast
d73dc74bd1 Remove unboxed objects from GC 2019-05-24 21:55:58 +08:00
win7-7
965a10e9ce tab to spaces js/src/gc 2019-05-03 21:32:20 +08:00
win7-7
9051e1dd6a add newline at end of files js/src/gc 2019-05-03 21:32:09 +08:00
win7-7
c1b4fc1442 Improve dead compartment collection js/src/gc 2019-05-03 21:31:57 +08:00
wolfbeast
78d61fd2b1 Issue #187: Remove solaris conditional code. 2019-04-04 20:26:26 +08:00
Jon Coppeard
4105e6bba4 Reset nursery position when it's disabled. 2019-03-23 06:44:21 +08:00
adeshkp
521c918660 Remove telemetry leftovers from JS engine. 2019-02-16 00:27:38 +08:00
trav90
02e07860b2 Stop using PodZero in several places to initialize values of non-trivial type 2019-02-16 00:13:45 +08:00
trav90
4cbf54089a Convert the trailing array of BindingNames at the end of the various kinds of scope data into raw unsigned chars into which those BindingNames are placement-new'd, rather than memcpy-ing non-trivial classes around and failing to comply with the C++ object model 2019-02-16 00:12:57 +08:00
trav90
4f91b109d0 Simplify HeapSlot to make it trivially copyable
This removes the constructors, which were never called since we allocate arrays of HeapSlot with pod_malloc. The destructor is only ever called explicitly since we free this memory with js_free so it has been renamed to destroy(). Also removed is an unused manual barrier.
2019-02-16 00:11:06 +08:00
Jon Coppeard
89e332cfec Bug 1465108 - Use function pointers rather than virtual run method for GC parallel tasks r=sfink a=abillings a=RyanVM 2019-02-16 00:01:53 +08:00
trav90
10b24b8110 Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
janekptacijarabaci
49ce6a7928 Bug 1323868: Report object allocation failure when running off-main-thread
Issue #77
[Depends on] Bug 1192038: RegExp.prototype should be an ordinary object
2019-02-15 23:38:31 +08:00
wolfbeast
54cfba5b8f Always initialize nursery data structures even if size is smaller than one chunk. 2019-02-15 23:29:41 +08:00
wolfbeast
93578c788f Remove unused compileBarriers() 2019-02-14 14:38:16 +08:00
wolfbeast
f8ab99eba0 Remove SetGCZeal() stub and its callers. 2019-02-14 14:38:14 +08:00
wolfbeast
ed9ef4d079 Remove runDebugGC() stub 2019-02-14 14:38:13 +08:00
wolfbeast
7e54c3428c Remove pushZealSelectedObjects() and caller 2019-02-14 14:38:11 +08:00
wolfbeast
55743711cc Remove finishMarkingValidation and caller 2019-02-14 14:38:10 +08:00
wolfbeast
e7140f36c5 Remove validateIncrementalMarking() and caller 2019-02-14 14:38:08 +08:00
wolfbeast
55d5d48137 Remove computeNonIncrementalMarkingForValidation(lock) and caller 2019-02-14 14:38:07 +08:00
wolfbeast
10e8869a61 Remove AutoStopVerifyingBarriers RAII stub struct no longer in use. 2019-02-14 14:38:03 +08:00
wolfbeast
344da7aee8 Remove needZealousGC() 2019-02-14 14:38:01 +08:00
wolfbeast
3723589e52 Remove upcomingZealousGC() and caller 2019-02-14 14:38:00 +08:00
wolfbeast
c3cf90ca74 Remove clearZealMode(mode) 2019-02-14 14:37:58 +08:00
wolfbeast
0c01eb7ec6 Remove hasZealMode(mode) and callers 2019-02-14 14:37:57 +08:00
wolfbeast
a2355a9bc6 Remove isVerifyPreBarriersEnabled() stub and callers 2019-02-14 14:37:55 +08:00
wolfbeast
97a0673483 Remove GCZeal: Base cleanup
UXP repo issue #8
2019-02-14 14:37:49 +08:00
Roy Tam
dcd9973243 import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00