+diff -ur mozjs-60.1.0/build/moz.configure/init.configure mozjs-60.1.0-x32/build/moz.configure/init.configure
+--- mozjs-60.1.0/build/moz.configure/init.configure 2018-06-19 00:23:55.000000000 +0200
++++ mozjs-60.1.0-x32/build/moz.configure/init.configure 2019-03-31 10:40:40.743730317 +0200
+@@ -630,6 +630,8 @@
+ endianness = 'little'
+ elif cpu in ('x86_64', 'ia64'):
+ canonical_cpu = cpu
++ if os.endswith('gnux32'):
++ canonical_cpu = 'x32'
+ endianness = 'little'
+ elif cpu in ('s390', 's390x'):
+ canonical_cpu = cpu
+diff -ur mozjs-60.1.0/js/src/jsmath.cpp mozjs-60.1.0-x32/js/src/jsmath.cpp
+--- mozjs-60.1.0/js/src/jsmath.cpp 2018-06-19 00:23:59.000000000 +0200
++++ mozjs-60.1.0-x32/js/src/jsmath.cpp 2019-03-31 11:02:09.300861938 +0200
+@@ -58,7 +58,9 @@
+
+ // Older glibc versions don't define SYS_getrandom, so we define it here if
+ // it's not available. See bug 995069.
+-# if defined(__x86_64__)
++# if defined(__x86_64__) && defined(__ILP32__)
++# define GETRANDOM_NR (__X32_SYSCALL_BIT + 318)
++# elif defined(__x86_64__)
+ # define GETRANDOM_NR 318
+ # elif defined(__i386__)
+ # define GETRANDOM_NR 355
+diff -ur mozjs-60.1.0/python/mozbuild/mozbuild/configure/constants.py mozjs-60.1.0-x32/python/mozbuild/mozbuild/configure/constants.py
+--- mozjs-60.1.0/python/mozbuild/mozbuild/configure/constants.py 2018-06-19 00:24:03.000000000 +0200
++++ mozjs-60.1.0-x32/python/mozbuild/mozbuild/configure/constants.py 2019-03-31 10:39:21.792681467 +0200
+@@ -57,6 +57,7 @@
+ 'sparc64': 64,
+ 'x86': 32,
+ 'x86_64': 64,
++ 'x32': 32,
+ }
+
+ CPU = EnumString.subclass(*CPU_bitness.keys())
+@@ -73,6 +74,7 @@
+
+ # The order of those checks matter
+ CPU_preprocessor_checks = OrderedDict((
++ ('x32', '__x86_64__ && __ILP32__'),
+ ('x86', '__i386__ || _M_IX86'),
+ ('x86_64', '__x86_64__ || _M_X64'),
+ ('arm', '__arm__ || _M_ARM'),