Bug 1658385 - Exclude mach_override code on aarch64 builds for now. r=froydnj
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 19 Aug 2020 04:22:15 +0000
changeset 545248 c878b0fb16c7b10587a50d79ae5fd81d94b85e9a
parent 545247 68017ced66c721dc480191de2ab4a7e0ccb0d4a1
child 545249 1ae21b324796c33236b5d1563739a8a31914ed62
push id37711
push usernbeleuzu@mozilla.com
push dateWed, 19 Aug 2020 10:01:16 +0000
treeherdermozilla-central@157db696462d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1658385
milestone81.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 1658385 - Exclude mach_override code on aarch64 builds for now. r=froydnj Differential Revision: https://phabricator.services.mozilla.com/D87385
xpcom/build/PoisonIOInterposerMac.cpp
xpcom/build/moz.build
--- a/xpcom/build/PoisonIOInterposerMac.cpp
+++ b/xpcom/build/PoisonIOInterposerMac.cpp
@@ -1,16 +1,19 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 /* 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/. */
 
 #include "PoisonIOInterposer.h"
+// Disabled until bug 1658385 is fixed.
+#ifndef __aarch64__
 #include "mach_override.h"
+#endif
 
 #include "mozilla/ArrayUtils.h"
 #include "mozilla/Assertions.h"
 #include "mozilla/DebugOnly.h"
 #include "mozilla/IOInterposer.h"
 #include "mozilla/Mutex.h"
 #include "mozilla/ProcessedStack.h"
 #include "mozilla/Telemetry.h"
@@ -321,19 +324,21 @@ void InitPoisonIOInterposer() {
   for (int i = 0; i < NumFunctions; ++i) {
     FuncData* d = Functions[i];
     if (!d->Function) {
       d->Function = dlsym(RTLD_DEFAULT, d->Name);
     }
     if (!d->Function) {
       continue;
     }
+#ifndef __aarch64__
     DebugOnly<mach_error_t> t =
         mach_override_ptr(d->Function, d->Wrapper, &d->Buffer);
     MOZ_ASSERT(t == err_none);
+#endif
   }
 }
 
 void OnlyReportDirtyWrites() { sOnlyReportDirtyWrites = true; }
 
 // Never called! See bug 1647107.
 void ClearPoisonIOInterposer() {
   // Not sure how or if we can unpoison the functions. Would be nice, but no
--- a/xpcom/build/moz.build
+++ b/xpcom/build/moz.build
@@ -36,18 +36,19 @@ if CONFIG['OS_ARCH'] == 'WINNT':
         'PoisonIOInterposerBase.cpp',
         'PoisonIOInterposerWin.cpp',
     ]
 elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     UNIFIED_SOURCES += [
         'PoisonIOInterposerBase.cpp',
         'PoisonIOInterposerMac.cpp',
     ]
-    SOURCES += ['mach_override.c']
-    SOURCES['mach_override.c'].flags += ['-Wno-unused-function']
+    if CONFIG['CPU_ARCH'] != 'aarch64':
+        SOURCES += ['mach_override.c']
+        SOURCES['mach_override.c'].flags += ['-Wno-unused-function']
 else:
     SOURCES += ['PoisonIOInterposerStub.cpp']
 
 include('../glue/objs.mozbuild')
 
 XPCOM_MANIFESTS += [
     'components.conf',
 ]