mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-11 09:47:32 +09:00
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. |
||
|---|---|---|
| .. | ||
| external | ||
| faster | ||
| makefiles | ||
| Moz | ||
| tests | ||
| android-common.mk | ||
| autoconf-js.mk.in | ||
| autoconf.mk.in | ||
| baseconfig.mk | ||
| check_js_msg_encoding.py | ||
| check_macroassembler_style.py | ||
| check_source_count.py | ||
| check_spidermonkey_style.py | ||
| check_vanilla_allocations.py | ||
| config.mk | ||
| createprecomplete.py | ||
| doxygen.cfg.in | ||
| emptyvars-js.mk.in | ||
| emptyvars.mk.in | ||
| expandlibs.py | ||
| expandlibs_config.py | ||
| expandlibs_exec.py | ||
| expandlibs_gen.py | ||
| find_OOM_errors.py | ||
| gcc-stl-wrapper.template.h | ||
| gcc_hidden.h | ||
| install.bat | ||
| link.py | ||
| make-stl-wrappers.py | ||
| Makefile.in | ||
| milestone.txt | ||
| moz.build | ||
| mozunit.py | ||
| MozZipFile.py | ||
| msvc-stl-wrapper.template.h | ||
| nsinstall.c | ||
| nsinstall.py | ||
| pathsub.c | ||
| pathsub.h | ||
| printconfigsetting.py | ||
| printprereleasesuffix.py | ||
| pythonpath.py | ||
| rebuild_check.py | ||
| recurse.mk | ||
| rules.mk | ||
| static-checking-config.mk | ||
| stl-headers | ||
| string-format.js | ||
| system-headers | ||
| version.mk | ||
| version_win.pl | ||