diff options
author | Bill Seurer <seurer@linux.vnet.ibm.com> | 2015-03-25 14:56:02 +0000 |
---|---|---|
committer | Bill Seurer <seurer@linux.vnet.ibm.com> | 2015-03-25 14:56:02 +0000 |
commit | b752a662f6786d53284143eaed19c9be20cc116b (patch) | |
tree | 92611e54d8d371409ec3785e1f15d93806865553 /lib/sanitizer_common/scripts | |
parent | 683a4f18583d53ffe641d588289b5b7743ad8659 (diff) |
[PowerPC]Fix sancov.py to once again support big endian
Some recent changes to sancov.py broke ASAN for big endian. This fixes it.
http://reviews.llvm.org/D8594
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@233189 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/scripts')
-rwxr-xr-x | lib/sanitizer_common/scripts/sancov.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/sanitizer_common/scripts/sancov.py b/lib/sanitizer_common/scripts/sancov.py index fc886c6f7..53180d09b 100755 --- a/lib/sanitizer_common/scripts/sancov.py +++ b/lib/sanitizer_common/scripts/sancov.py @@ -21,32 +21,32 @@ def Usage(): def CheckBits(bits): if bits != 32 and bits != 64: - raise Exception("Wrond bitness: %d" % bits) + raise Exception("Wrong bitness: %d" % bits) def TypeCodeForBits(bits): CheckBits(bits) return 'L' if bits == 64 else 'I' -kMagic64 = 0xC0BFFFFFFFFFFF64 -kMagic32 = 0xC0BFFFFFFFFFFF32 kMagic32SecondHalf = 0xFFFFFF32; kMagic64SecondHalf = 0xFFFFFF64; kMagicFirstHalf = 0xC0BFFFFF; def MagicForBits(bits): CheckBits(bits) - # Little endian. - return [kMagic64SecondHalf if bits == 64 else kMagic32SecondHalf, kMagicFirstHalf] + if sys.byteorder == 'little': + return [kMagic64SecondHalf if bits == 64 else kMagic32SecondHalf, kMagicFirstHalf] + else: + return [kMagicFirstHalf, kMagic64SecondHalf if bits == 64 else kMagic32SecondHalf] def ReadMagicAndReturnBitness(f, path): magic_bytes = f.read(8) magic_words = struct.unpack('II', magic_bytes); bits = 0 - # Assuming little endian. - if magic_words[1] == kMagicFirstHalf: - if magic_words[0] == kMagic64SecondHalf: + idx = 1 if sys.byteorder == 'little' else 0 + if magic_words[idx] == kMagicFirstHalf: + if magic_words[1-idx] == kMagic64SecondHalf: bits = 64 - elif magic_words[0] == kMagic32SecondHalf: + elif magic_words[1-idx] == kMagic32SecondHalf: bits = 32 if bits == 0: raise Exception('Bad magic word in %s' % path) |