summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/scripts
diff options
context:
space:
mode:
authorBill Seurer <seurer@linux.vnet.ibm.com>2015-03-25 14:56:02 +0000
committerBill Seurer <seurer@linux.vnet.ibm.com>2015-03-25 14:56:02 +0000
commitb752a662f6786d53284143eaed19c9be20cc116b (patch)
tree92611e54d8d371409ec3785e1f15d93806865553 /lib/sanitizer_common/scripts
parent683a4f18583d53ffe641d588289b5b7743ad8659 (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-xlib/sanitizer_common/scripts/sancov.py18
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)