Bug 1167230 - Don't pack ProfileEntry on ARM. r=shu
authorEric Rahm <erahm@mozilla.com>
Thu, 28 May 2015 15:26:52 -0700
changeset 250066 ae84f9adafc7ec4621687a1264a3b1b5cf3e42be
parent 250065 5b2d133bace37789601bcd52288f957d4e103486
child 250067 e15a71e0f6f3819ea5342d51969730ce914efe61
push id28943
push usercbook@mozilla.com
push dateWed, 24 Jun 2015 14:02:00 +0000
treeherdermozilla-central@4cdc1a95a672 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersshu
bugs1167230
milestone41.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1167230 - Don't pack ProfileEntry on ARM. r=shu
tools/profiler/ProfileEntry.h
--- a/tools/profiler/ProfileEntry.h
+++ b/tools/profiler/ProfileEntry.h
@@ -28,17 +28,20 @@
 #else
 #define FRIEND_TEST(a, b) // TODO Support standalone gtest
 #endif
 #include "mozilla/HashFunctions.h"
 #include "mozilla/UniquePtr.h"
 
 class ThreadProfile;
 
+// NB: Packing this structure has been shown to cause SIGBUS issues on ARM.
+#ifndef __arm__
 #pragma pack(push, 1)
+#endif
 
 class ProfileEntry
 {
 public:
   ProfileEntry();
 
   // aTagData must not need release (i.e. be a string from the text segment)
   ProfileEntry(char aTagName, const char *aTagData);
@@ -76,17 +79,19 @@ private:
     Address     mTagAddress;
     uintptr_t   mTagOffset;
     int         mTagInt;
     char        mTagChar;
   };
   char mTagName;
 };
 
+#ifndef __arm__
 #pragma pack(pop)
+#endif
 
 class UniqueJSONStrings
 {
 public:
   UniqueJSONStrings() {
     mStringTableWriter.StartBareList();
   }