Dactyloidae source code mirror
  • C++ 38%
  • C 22.3%
  • JavaScript 18%
  • HTML 10.3%
  • Python 3.5%
  • Other 7.3%
Find a file
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
accessible MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up. 2019-11-04 11:52:13 +08:00
application MoonchildProductions#1251 - Part 21: Fix Flash player and some extensions being incompatible. 2019-11-04 11:53:59 +08:00
build MoonchildProductions#1251 - Part 7: All the posix_m* memory-related stuff, gathered together. 2019-11-04 11:52:22 +08:00
caps Stop building /caps unified and fix deprot. 2019-07-19 10:01:11 +08:00
chrome Stop building /chrome unified and fix deprot. 2019-07-19 10:01:08 +08:00
config MoonchildProductions#1251 - Part 23: Allow AMD64 build to work. 2019-11-04 11:54:02 +08:00
db/sqlite3 Update SQLite to 3.29.0 2019-08-02 13:48:44 +08:00
devtools Issue #1257 - Part 3: Remove/update tests. 2019-11-01 10:25:02 +08:00
docs Add commit message style guidelines (#1117) 2019-05-31 07:19:26 +08:00
docshell Stop building /docshell unified and fix deprot. 2019-02-22 14:32:39 +08:00
dom MoonchildProductions#1251 - Part 21: Fix Flash player and some extensions being incompatible. 2019-11-04 11:53:59 +08:00
editor MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up. 2019-11-04 11:52:13 +08:00
embedding Make nsFind::Find actually use a string type as input. 2019-05-31 07:22:21 +08:00
extensions Issue #1102 - Disable <meta http-equiv=set-cookie> 2019-05-31 07:17:21 +08:00
gfx Correctly return zero vertices if clipping plane 0 or 2 clip away the 2019-09-06 23:49:19 +08:00
gradle/wrapper import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
hal Bug 1469309 - Remove an unused sensor type. 2019-02-16 00:13:19 +08:00
image Convert dom/base/nsImageLoadingContent.cpp to use AsyncOpen2 and followups along with it (1445670 and 1373780 part 2 and 3) 2019-08-10 06:26:08 +08:00
intl MoonchildProductions#1251 - Part 4: Core build system changes, lots of libevent/IPC junk. 2019-11-04 11:52:17 +08:00
ipc MoonchildProductions#1251 - Part 23: Allow AMD64 build to work. 2019-11-04 11:54:02 +08:00
js MoonchildProductions#1251 - Part 23: Allow AMD64 build to work. 2019-11-04 11:54:02 +08:00
layout MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up. 2019-11-04 11:52:13 +08:00
media Fix a bunch of dumb typos and omissions. 2019-11-04 11:53:57 +08:00
memory MoonchildProductions#1251 - Part 13: Redefining abort in C++ requires extern "C" 2019-11-04 11:52:33 +08:00
mfbt MoonchildProductions#1251 - Part 7: All the posix_m* memory-related stuff, gathered together. 2019-11-04 11:52:22 +08:00
modules MoonchildProductions#1251 - Part 15: fdlibm should provide definition for u_int32_t and u_int64_t. 2019-11-04 11:52:36 +08:00
mozglue No issue - Add 360 Safeguard to DLL blocklist 2019-09-20 22:14:46 +08:00
netwerk Add null check in Http2Session::RecvAltSvc 2019-10-25 12:00:14 +08:00
nsprpub Update NSS to 3.41 2019-02-16 00:22:24 +08:00
other-licenses Update 7zSFX 2019-02-15 23:34:13 +08:00
parser Adjust tokenization of U+0000 2019-10-25 12:00:25 +08:00
probes import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
python MoonchildProductions#1251 - Part 19: Make the unpreprocessed file script work on Solaris. 2019-11-04 11:53:54 +08:00
rdf import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
security Properly implement various HSTS states. 2019-09-06 23:50:01 +08:00
services Issue #1208: Update Sync policies.js getters/setters to prevent race. 2019-08-17 13:33:21 +08:00
startupcache Remove all C++ Telemetry Accumulation calls. 2019-02-16 00:12:32 +08:00
storage Remove all C++ telemetry autotimers 2019-02-16 00:12:34 +08:00
taskcluster Remove MOZ_CRASHREPORTER_NO_REPORT except in /testing 2019-02-15 23:39:55 +08:00
testing 1333045 - Update Location object properties to current spec. 2019-07-22 19:47:15 +08:00
third_party/aom Update libaom to commit ID 1e227d41f0616de9548a673a83a21ef990b62591 2019-02-16 00:17:46 +08:00
toolkit Fix a bunch of dumb typos and omissions. 2019-11-04 11:53:57 +08:00
tools Fix build errors with newer glibc versions 2019-10-18 09:04:57 +08:00
uriloader Issue #991 Part 4: Network and URILoader 2019-04-27 08:21:53 +08:00
view import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
widget MoonchildProductions#1251 - Part 22: Remove some unused type declarations from IPC process_util. 2019-11-04 11:54:00 +08:00
xpcom MoonchildProductions#1251 - Part 23: Allow AMD64 build to work. 2019-11-04 11:54:02 +08:00
xpfe Remove MOZ_WIDGET_GONK [2/2] 2019-02-15 23:57:10 +08:00
.clang-format import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.clang-format-ignore import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.eslintignore Rename some remaining strings "firefox[-branding].js" to "basilisk[-branding.js]" (or [application].js) 2019-02-16 00:08:07 +08:00
.eslintrc.js Fix unsafe "instanceof" negations 2019-02-15 23:55:28 +08:00
.flake8 import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.gdbinit import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.gdbinit_python import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.gitignore Add Pale Moon 2018-02-02 03:35:06 -05:00
.lldbinit import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.taskcluster.yml import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.ycm_extra_conf.py import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
aclocal.m4 Remove jemalloc 4 from our tree. 2019-02-15 23:52:10 +08:00
Android.mk import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
AUTHORS Update AUTHORS 2019-02-16 00:09:39 +08:00
build.gradle import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
client.mk Make sure application confvars.sh files are apart of CONFIG_STATUS_DEPS 2019-02-16 00:06:07 +08:00
client.py import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
CLOBBER Force clobber. 2019-10-25 12:00:54 +08:00
configure.in import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
configure.py import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
GNUmakefile import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
gradle.properties import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
gradlew import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
LEGAL import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
LICENSE Add correct licensing statement in the source root. 2019-02-15 23:29:16 +08:00
mach import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
Makefile.in MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up. 2019-11-04 11:52:13 +08:00
moz.build Add a conditional to not build the platform so the build system can be exploited for non-binary projects 2019-02-16 00:14:30 +08:00
moz.configure Move --enable-tests out of Python configure and flip the default. 2019-02-15 23:53:16 +08:00
mozilla-config.h.in MoonchildProductions#1251 - Part 11: libpng uses C89 now to avoid buffer overflows. 2019-11-04 11:52:30 +08:00
old-configure.in Fix a bunch of dumb typos and omissions. 2019-11-04 11:53:57 +08:00
README.md Link to developer site from readme. 2019-02-16 00:10:24 +08:00
settings.gradle import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
sourcestamp.txt Add Pale Moon 2018-02-02 03:35:06 -05:00
test.mozbuild import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00

Unified XUL Platform (UXP)

This repository holds the code for a unified application platform for XUL-based applications. It is a hard fork from the Mozilla code repository (mozilla-central) with an ESR-52 fork point.

In addition to further development based on the Mozilla upstream code, and selective cherry-picking of directly-applicable patches, this repository has its own development and holds the base for a future platform to be used by XUL applications.

This repository will contain at least one application to demonstrate and make use of the platform: The Basilisk web browser, a close twin to Mozilla's Firefox.

Additional documentation

Additional documentation relevant to this source code can be found in the /docs directory. This will contain relevant documentation regarding contributing, using and distributing this code and its binaries.

If you are interested in the development and building side of things, some information will be available on the Pale Moon developer wiki.

A note about trademarks and branding

Although this repository is licensed under Mozilla Public License v2.0, the trademarks and brands contained herein remain the property of their respective owners. For more details, please see the notifications in the respective directories.

Foundation and maintainership

This repository has been founded and is maintained by Moonchild (M.C. Straver). If you fork this repository to perform your own work on it, please consider offering improvement patches upstream to its origin to mutually improve the platform and build a future for XUL.