Bug 1167230 - Don't pack ProfileEntry on ARM. r=shu
authorEric Rahm <erahm@mozilla.com>
Thu, 28 May 2015 15:26:52 -0700
changeset 246108 b65d8a1df422eb01c12c5ba413fbc77a309ba2c6
parent 246107 df24a0f5a0bc16564490eb906689498a2b730bdb
child 246109 831c5d95d197f4d0cef5434b3732aa6df0f1b619
push id60365
push usererahm@mozilla.com
push dateThu, 28 May 2015 22:27:01 +0000
treeherdermozilla-inbound@b65d8a1df422 [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
@@ -20,17 +20,20 @@
 #include "mozilla/Maybe.h"
 #include "mozilla/Mutex.h"
 #include "mozilla/Vector.h"
 #include "gtest/MozGtestFriend.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);
@@ -68,17 +71,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();
   }