mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
fc52b62763
- Bug 1204192 - IonMonkey: MIPS: Split shareable code to mips-shared in BaselineIC-mips32. r=nbp (eeae38da4e)
- Bug 1204193 - IonMonkey: MIPS: Split shareable code to mips-shared in Bailouts-mips32. r=nbp (f24f496235)
- Bug 1204194 - IonMonkey: MIPS: Split shareable code to mips-shared in MoveEmitter-mips32. r=nbp (5c3bdc2fc2)
- Bug 1204214 - IonMonkey: MIPS: Split shareable code to mips-shared in BaselineCompiler-mips32. r=nbp (01903406d1)
- Bug 1205229 - IonMonkey: MIPS32: Make more CodeGenerator functions can be shared. r=nbp (d437fe618e)
- Bug 1209528 - IonMonkey: MIPS32: Add suffix 'f' for constant float32. r=arai (0f6600c083)
- Bug 1205232 - IonMonkey: MIPS32: Fix rounding of big negative float32 values in Ion. r=bbouvier (4652bb9b7a)
- Bug 1203044 - IonMonkey: MIPS32: Atomics operations should throw on oob access. r=lth (e898b3af95)
- Bug 1205135 - IonMonkey: MIPS: Split shareable code to mips-shared in CodeGenerator-mips32. r=nbp (b6d81b922d)
- readd some missing bits (2aa8c9fafd)
- Bug 1167189: Remove unnecessary checks after infallible allocations. r=bholley (fa7d8b9f7b)
- Bug 1209398 - Make AC_SUBST_SET emit a list of unique items instead of an actual set. r=gps (83e5877882)
- Bug 904572 - Add support for generating clang compilation database; r=glandium,r=gps (ab3e6e62fa)
- Bug 1209398 - Enable the FasterMake backend by default for desktop Firefox builds. r=gps (29f6fb3883)
- Bug 1204719 - Don't create interfaces.manifest files from the build backend. r=gps (5a63e36259)
- Bug 786520 - Install things to $(DIST)/branding from moz.build instead of manual rules in Makefile.ins. r=mshal (652552b547)
- Bug 1160563 - Part 1: Make ANDROID_RES_DIRS a moz.build variable. r=gps (e0719524f8)
- Bug 1159390 - Set sharedUserId in robocop.apk. r=gbrown (dde6716e2d)
- Bug 1160030 - Use TEST_HARNESS_FILES to install Robocop test files. r=froydnj (00cd01c3f2)
- Bug 1160030 - Use TEST_HARNESS_FILES to install Robocop ini files. r=froydnj (66d52518e7)
- Bug 938659 - Part 2: build system changes. r=mfinkle (0833d22ba3)
- Bug 1160563 - Pre: Allow ANDROID_RES_DIRS that are not relative to srcdir. r=gps (0d8a3ce66e)
- Bug 1160563 - Part 2: Make ANDROID_ASSETS_DIRS a moz.build variable. r=gps (9f4c132e2a)
- Bug 1195388 - Part 1: Make ANDROID_APK_{NAME,PACKAGE} moz.build variables. r=gps (4a2fa3fc09)
- Bug 1195388 - Part 2: Add ANDROID_EXTRA_{PACKAGES,RES_DIRS} moz.buildvariables. r=gps (7ad49e355e)
- Bug 1207893 - Change how we track object consumption from the build backend. r=gps (20ccc5b67a)
- Bug 1184405 - Add annotations for tags, file patterns, and test flavos to moz.build to specify tests potentially impacted by source files. r=gps (2db17131cc)
- Bug 1171105 - Ability to aggregate metadata from Files instances; r=glandium (59c8759e61)
- Bug 1184405 - Add a container type to mozbuild with a namedtuple-likeinterface and typed, mutable fields. r=gps (3062dbae71)
- Bug 1138283 - Fix bad documentation around wildcard patterns; r=glandium (5785d3284d)
- Bug 1155816 - part 2 - move EXTRA_*COMPONENTS manifest check to buildbackend time; r=mshal (c539616b45)
- Bug 1161270 - Add source manifest to reftest manifest representation in moz.build.;r=gps,roc (376b080084)
- Bug 1180813 - Use a cache for BuildConfig to improve mach speed. r=gps (d431b1ec23)
- Bug 1207882 - Associate an install target with every ContextDerived object. r=gps (62f63487a7)
- Bug 1126228 - Directory (--directory) argument for |mach warnings-list| and |mach warnings-summary|. r=gps (37a85d904f)
- Bug 1210642 - Allow to pass defines overrides when processing install manifests. r=gps (5eb483dc8d)
- Bug 1210642 - Add support for --silence-missing-directive-warnings for preprocessing within install manifests. r=gps (3a07d30b36)
- Bug 1176642 - Use absolute_import in mozpack; r=glandium (863ab20c4a)
- Bug 1162826 - Properly display full moz.build processing errors when empty KeyError or ValueError are thrown. r=mshal (57e8367680)
- Bug 1184405 - Add a mach command to expose test-deps file info. r=gps (7bcc10679c)
- Bug 1195735, r=zer0 (7fe14224e3)
- Bug 1205166 - IonMonkey: MIPS: Import MIPS64 support into Architecture-mips-shared. r=nbp f=rankov (84e1f9ec5d)
- Bug 1205166 - IonMonkey: MIPS64: Import Architecture-mips64. r=nbp f=rankov (fe173dd5af)
- Bug 1210322 - IonMonkey: MIPS: Rename BaseFloatRegister/s to FloatRegister/sMIPSShared. r=nbp (ac262cbb5d)
- Bug 1205167 - IonMonkey: MIPS64: Import Assembler-mips64. r=nbp f=rankov (079e84ea49)
- Bug 1215555 - Improve simulated OOM testing of ARM assembler buffer and fix bugs r=jolesen (253b976cec)
- Bug 1205167 - IonMonkey: MIPS: Import MIPS64 support into Assembler-mips-shared. r=froydnj f=rankov (94b23ac585)
- Bug 1213146 - IonMonkey: MIPS: Fix build failure caused by bug 1194139. r=nbp (12f7d5d572)
- Bug 1205566 - IonMonkey: MIPS: bailoutCmp32/Ptr optimization. r=nbp (9a40ee80d0)
- Bug 1209873 - IonMonkey; MIPS: Implement memory barrier. r=lth (964535cb6b)
- Bug 1209572 - IonMonkey: MIPS32: Goto done by short jump in convertUInt32ToFloat32. r=nbp (0b388199e7)
- pointer style (312fc6fe4f)
- missing bit of Bug 1140890 - Make sure the first argument cannot bail in between negative zero removal and creating result in substraction, r=nbp (afcc9bfdc7)
- and sync more build scripts with frontend branch
124 lines
3.9 KiB
Python
124 lines
3.9 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from __future__ import absolute_import
|
|
|
|
import os
|
|
import struct
|
|
import subprocess
|
|
from mozpack.errors import errors
|
|
|
|
MACHO_SIGNATURES = [
|
|
0xfeedface, # mach-o 32-bits big endian
|
|
0xcefaedfe, # mach-o 32-bits little endian
|
|
0xfeedfacf, # mach-o 64-bits big endian
|
|
0xcffaedfe, # mach-o 64-bits little endian
|
|
]
|
|
|
|
FAT_SIGNATURE = 0xcafebabe # mach-o FAT binary
|
|
|
|
ELF_SIGNATURE = 0x7f454c46 # Elf binary
|
|
|
|
UNKNOWN = 0
|
|
MACHO = 1
|
|
ELF = 2
|
|
|
|
def get_type(path):
|
|
'''
|
|
Check the signature of the give file and returns what kind of executable
|
|
matches.
|
|
'''
|
|
with open(path, 'rb') as f:
|
|
signature = f.read(4)
|
|
if len(signature) < 4:
|
|
return UNKNOWN
|
|
signature = struct.unpack('>L', signature)[0]
|
|
if signature == ELF_SIGNATURE:
|
|
return ELF
|
|
if signature in MACHO_SIGNATURES:
|
|
return MACHO
|
|
if signature != FAT_SIGNATURE:
|
|
return UNKNOWN
|
|
# We have to sanity check the second four bytes, because Java class
|
|
# files use the same magic number as Mach-O fat binaries.
|
|
# This logic is adapted from file(1), which says that Mach-O uses
|
|
# these bytes to count the number of architectures within, while
|
|
# Java uses it for a version number. Conveniently, there are only
|
|
# 18 labelled Mach-O architectures, and Java's first released
|
|
# class format used the version 43.0.
|
|
num = f.read(4)
|
|
if len(num) < 4:
|
|
return UNKNOWN
|
|
num = struct.unpack('>L', num)[0]
|
|
if num < 20:
|
|
return MACHO
|
|
return UNKNOWN
|
|
|
|
|
|
def is_executable(path):
|
|
'''
|
|
Return whether a given file path points to an executable or a library,
|
|
where an executable or library is identified by:
|
|
- the file extension on OS/2 and WINNT
|
|
- the file signature on OS/X and ELF systems (GNU/Linux, Android, BSD,
|
|
Solaris)
|
|
|
|
As this function is intended for use to choose between the ExecutableFile
|
|
and File classes in FileFinder, and choosing ExecutableFile only matters
|
|
on OS/2, OS/X, ELF and WINNT (in GCC build) systems, we don't bother
|
|
detecting other kind of executables.
|
|
'''
|
|
from buildconfig import substs
|
|
if not os.path.exists(path):
|
|
return False
|
|
|
|
if substs['OS_ARCH'] == 'WINNT':
|
|
return path.lower().endswith((substs['DLL_SUFFIX'],
|
|
substs['BIN_SUFFIX']))
|
|
|
|
return get_type(path) != UNKNOWN
|
|
|
|
|
|
def may_strip(path):
|
|
'''
|
|
Return whether strip() should be called
|
|
'''
|
|
from buildconfig import substs
|
|
return not substs['PKG_SKIP_STRIP']
|
|
|
|
|
|
def strip(path):
|
|
'''
|
|
Execute the STRIP command with STRIP_FLAGS on the given path.
|
|
'''
|
|
from buildconfig import substs
|
|
strip = substs['STRIP']
|
|
flags = substs['STRIP_FLAGS'].split() if 'STRIP_FLAGS' in substs else []
|
|
cmd = [strip] + flags + [path]
|
|
if subprocess.call(cmd) != 0:
|
|
errors.fatal('Error executing ' + ' '.join(cmd))
|
|
|
|
|
|
def may_elfhack(path):
|
|
'''
|
|
Return whether elfhack() should be called
|
|
'''
|
|
# elfhack only supports libraries. We should check the ELF header for
|
|
# the right flag, but checking the file extension works too.
|
|
from buildconfig import substs
|
|
return 'USE_ELF_HACK' in substs and substs['USE_ELF_HACK'] and \
|
|
path.endswith(substs['DLL_SUFFIX'])
|
|
|
|
|
|
def elfhack(path):
|
|
'''
|
|
Execute the elfhack command on the given path.
|
|
'''
|
|
from buildconfig import topobjdir
|
|
cmd = [os.path.join(topobjdir, 'build/unix/elfhack/elfhack'), path]
|
|
if 'ELF_HACK_FLAGS' in os.environ:
|
|
cmd[1:0] = os.environ['ELF_HACK_FLAGS'].split()
|
|
if subprocess.call(cmd) != 0:
|
|
errors.fatal('Error executing ' + ' '.join(cmd))
|