Closed Bug 1325495 Opened 9 years ago Closed 9 years ago

xpcshell segfaulting during 'make install' on Linux/hppa

Categories

(Core :: XPCOM, defect)

51 Branch
Other
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla53
Tracking Status
firefox53 --- fixed

People

(Reporter: glaubitz, Unassigned)

Details

Attachments

(2 files, 8 obsolete files)

2.21 KB, patch
froydnj
: review+
Details | Diff | Splinter Review
953 bytes, patch
jandem
: review+
Details | Diff | Splinter Review
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0 Build ID: 20161201031821 Steps to reproduce: Building Firefox on Linux/hppa fails during the "make install" stage [1]: dh_auto_install --builddirectory=build-browser -- installdir=/usr/lib/firefox \ MOZ_APP_BASE_VERSION=50 \ MOZ_PKG_MANIFEST=/<<PKGBUILDDIR>>/build-browser/debian/installer/package-manifest \ MOZ_NONLOCALIZED_PKG_LIST="xpcom debian" \ MOZ_LOCALIZED_PKG_LIST=en-US \ TAR_CREATE_FLAGS="--exclude=.mkdir.done --hard-dereference -chf" \ SIGN_NSS= make -j1 install DESTDIR=/<<PKGBUILDDIR>>/debian/tmp AM_UPDATE_INFO_DIR=no installdir=/usr/lib/firefox MOZ_APP_BASE_VERSION=50 MOZ_PKG_MANIFEST=/<<PKGBUILDDIR>>/build-browser/debian/installer/package-manifest "MOZ_NONLOCALIZED_PKG_LIST=xpcom debian" MOZ_LOCALIZED_PKG_LIST=en-US "TAR_CREATE_FLAGS=--exclude=.mkdir.done --hard-dereference -chf" SIGN_NSS= make[2]: Entering directory '/<<PKGBUILDDIR>>/build-browser' make[3]: Entering directory '/<<PKGBUILDDIR>>/build-browser/browser/installer' OMNIJAR_NAME=omni.ja \ NO_PKG_FILES="core bsdecho js js-config jscpucfg nsinstall viewer TestGtkEmbed elf-dynstr-gc mangle* maptsv* mfc* msdump* msmap* nm2tsv* nsinstall* res/samples res/throbber shlibsign* certutil* pk12util* BadCertServer* OCSPStaplingServer* GenerateOCSPResponse* chrome/chrome.rdf chrome/app-chrome.manifest chrome/overlayinfo components/compreg.dat components/xpti.dat content_unit_tests necko_unit_tests *.dSYM " \ /<<PKGBUILDDIR>>/build-browser/_virtualenv/bin/python /<<PKGBUILDDIR>>/toolkit/mozapps/installer/packager.py -DMOZ_APP_NAME=firefox -DPREF_DIR=defaults/preferences -DMOZ_GTK=1 -DMOZ_GTK3=1 -DMOZ_SYSTEM_NSPR=1 -DMOZ_SYSTEM_NSS=1 -DJAREXT= -DMOZ_CHILD_PROCESS_NAME=plugin-container -DNECKO_WIFI -DDLL_PREFIX=lib -DDLL_SUFFIX=.so -DBIN_SUFFIX= -DDIR_MACOS= -DDIR_RESOURCES= -DBINPATH=bin -DRESPATH=bin -DLPROJ_ROOT=en -DMOZ_ICU_VERSION=56 -DMOZ_ICU_DATA_ARCHIVE -DMOZ_ICU_DBG_SUFFIX= -DICU_DATA_FILE=icudt56b.dat -DA11Y_LOG=1 -DACCESSIBILITY=1 -DATK_MAJOR_VERSION=2 -DATK_MINOR_VERSION=22 -DATK_REV_VERSION=0 -DATTRIBUTE_ALIGNED_MAX=64 -DBUILD_CTYPES=1 -DCROSS_COMPILE='' -DD_INO=d_ino -DENABLE_INTL_API=1 -DENABLE_MARIONETTE=1 -DENABLE_SYSTEM_EXTENSION_DIRS=1 -DENABLE_TESTS=1 -DEXPOSE_INTL_API=1 -DFIREFOX_VERSION=50.1.0 -DFORCE_PR_LOG=1 -DFUNCPROTO=15 -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4 -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -DGL_PROVIDER_GLX=1 -DGTEST_HAS_RTTI=0 -DHAVE_ALLOCA_H=1 -DHAVE_BYTESWAP_H=1 -DHAVE_CLOCK_MONOTONIC=1 -DHAVE_DIRENT_H=1 -DHAVE_DLADDR=1 -DHAVE_DLOPEN=1 -DHAVE_FONTCONFIG_FCFREETYPE_H=1 -DHAVE_FT_BITMAP_SIZE_Y_PPEM=1 -DHAVE_FT_GLYPHSLOT_EMBOLDEN=1 -DHAVE_FT_LOAD_SFNT_TABLE=1 -DHAVE_GETOPT_H=1 -DHAVE_GMTIME_R=1 -DHAVE_I18N_LC_MESSAGES=1 -DHAVE_INTTYPES_H=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_LCHOWN=1 -DHAVE_LIBVPX=1 -DHAVE_LIBX11_XCB=1 -DHAVE_LIBXCB=1 -DHAVE_LIBXCB_SHM=1 -DHAVE_LINUX_IF_ADDR_H=1 -DHAVE_LINUX_QUOTA_H=1 -DHAVE_LINUX_RTNETLINK_H=1 -DHAVE_LOCALECONV=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LSTAT64=1 -DHAVE_MALLINFO=1 -DHAVE_MALLOC_H=1 -DHAVE_MALLOC_USABLE_SIZE=1 -DHAVE_MEMALIGN=1 -DHAVE_MEMMEM=1 -DHAVE_NETINET_IN_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_PTHREAD_H=1 -DHAVE_RES_NINIT=1 -DHAVE_SETPRIORITY=1 -DHAVE_STAT64=1 -DHAVE_STDINT_H=1 -DHAVE_STRERROR=1 -DHAVE_STRNDUP=1 -DHAVE_SYSCALL=1 -DHAVE_SYS_QUEUE_H=1 -DHAVE_SYS_QUOTA_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_THREAD_TLS_KEYWORD=1 -DHAVE_TRUNCATE64=1 -DHAVE_UNISTD_H=1 -DHAVE_VALLOC=1 -DHAVE_VA_COPY=1 -DHAVE_VISIBILITY_ATTRIBUTE=1 -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1 -DHAVE__UNWIND_BACKTRACE=1 -DHAVE___CXA_DEMANGLE=1 -DJS_DEFAULT_JITREPORT_GRANULARITY=3 -DMALLOC_H='<malloc.h>' -DMALLOC_USABLE_SIZE_CONST_PTR='' -DMOZILLA_OFFICIAL=1 -DMOZILLA_UAVERSION='"50.0"' -DMOZILLA_VERSION='"50.1.0"' -DMOZILLA_VERSION_U=50.1.0 -DMOZ_ACCESSIBILITY_ATK=1 -DMOZ_ADDON_SIGNING=1 -DMOZ_APP_UA_NAME='""' -DMOZ_APP_UA_VERSION='"50.1.0"' -DMOZ_B2G_OS_NAME='""' -DMOZ_B2G_VERSION='"1.0.0"' -DMOZ_BUILD_APP=browser -DMOZ_BUNDLED_FONTS=1 -DMOZ_CRASHREPORTER_ENABLE_PERCENT=100 -DMOZ_DATA_REPORTING=1 -DMOZ_DEFAULT_MOZILLA_FIVE_HOME='"/usr/lib/firefox"' -DMOZ_DISTRIBUTION_ID='"org.mozilla"' -DMOZ_DLL_SUFFIX='".so"' -DMOZ_EME=1 -DMOZ_ENABLE_DBUS=1 -DMOZ_ENABLE_GIO=1 -DMOZ_ENABLE_SIGNMAR=1 -DMOZ_ENABLE_STARTUP_NOTIFICATION=1 -DMOZ_ENABLE_XREMOTE=1 -DMOZ_FEEDS=1 -DMOZ_FFMPEG=1 -DMOZ_FMP4=1 -DMOZ_GAMEPAD=1 -DMOZ_GLUE_IN_PROGRAM=1 -DMOZ_INSTRUMENT_EVENT_LOOP=1 -DMOZ_JSDOWNLOADS=1 -DMOZ_LOGGING=1 -DMOZ_MACBUNDLE_ID=org.mozilla.firefox -DMOZ_MEMORY=1 -DMOZ_MEMORY_LINUX=1 -DMOZ_OFFICIAL_BRANDING=1 -DMOZ_PAY=1 -DMOZ_PERMISSIONS=1 -DMOZ_PHOENIX=1 -DMOZ_PLACES=1 -DMOZ_SAFE_BROWSING=1 -DMOZ_SAMPLE_TYPE_FLOAT32=1 -DMOZ_SECUREELEMENT=1 -DMOZ_SERVICES_HEALTHREPORT=1 -DMOZ_STACKWALKING=1 -DMOZ_STATIC_JS=1 -DMOZ_SYSTEM_SQLITE=1 -DMOZ_TREE_CAIRO=1 -DMOZ_TREE_PIXMAN=1 -DMOZ_UPDATE_CHANNEL=default -DMOZ_URL_CLASSIFIER=1 -DMOZ_USER_DIR='".mozilla"' -DMOZ_VORBIS=1 -DMOZ_VPX_NO_MEM_REPORTING=1 -DMOZ_WEBGL_CONFORMANT=1 -DMOZ_WEBM_ENCODER=1 -DMOZ_WEBSPEECH=1 -DMOZ_WEBSPEECH_TEST_BACKEND=1 -DMOZ_WIDGET_GTK=3 -DMOZ_X11=1 -DMOZ_XUL=1 -DNO_NSPR_10_SUPPORT=1 -DNS_PRINTING=1 -DNS_PRINT_PREVIEW=1 -DRELEASE_BUILD=1 -DSPIDERMONKEY_PROMISE=1 -DSTATIC_JS_API=1 -DSTDC_HEADERS=1 -DTARGET_XPCOM_ABI='"hppa-gcc3"' -DU_STATIC_IMPLEMENTATION=1 -DU_USING_ICU_NAMESPACE=0 -DVA_COPY=va_copy -DXP_LINUX=1 -DXP_UNIX=1 -D_REENTRANT=1 -DAB_CD=en-US \ --format omni \ --removals /<<PKGBUILDDIR>>/browser/installer/removed-files.in \ \ \ \ \ --optimizejars \ \ \ /<<PKGBUILDDIR>>/build-browser/debian/installer/package-manifest ../../dist ../../dist/firefox \ Executing /<<PKGBUILDDIR>>/build-browser/dist/bin/xpcshell -g /<<PKGBUILDDIR>>/build-browser/dist/bin/ -a /<<PKGBUILDDIR>>/build-browser/dist/bin/ -f /<<PKGBUILDDIR>>/toolkit/mozapps/installer/precompile_cache.js -e precompile_startupcache("resource://gre/"); resource://gre/components/AlarmsManager.js resource://gre/components/AppsService.js resource://gre/components/BrowserElementParent.js resource://gre/components/BrowserElementProxy.js resource://gre/components/CSSUnprefixingService.js resource://gre/components/ChromeNotifications.js resource://gre/components/ColorAnalyzer.js resource://gre/components/ConsoleAPIStorage.js resource://gre/components/ContactManager.js resource://gre/components/ContentProcessSingleton.js resource://gre/components/DOMSecureElement.js resource://gre/components/DownloadLegacy.js resource://gre/components/EditorUtils.js resource://gre/components/FeedProcessor.js resource://gre/components/FormAutofillContentService.js resource://gre/components/FormAutofillStartup.js resource://gre/components/FormHistoryStartup.js resource://gre/components/FxAccountsPush.js resource://gre/components/InstallPackagedWebapp.js resource://gre/components/MainProcessSingleton.js resource://gre/components/MozKeyboard.js resource://gre/components/NetworkGeolocationProvider.js resource://gre/components/NotificationStorage.js resource://gre/components/PACGenerator.js resource://gre/components/PackagedAppUtils.js resource://gre/components/PageIconProtocolHandler.js resource://gre/components/PageThumbsProtocol.js resource://gre/components/Payment.js resource://gre/components/PaymentFlowInfo.js resource://gre/components/PaymentProvider.js resource://gre/components/PeerConnection.js resource://gre/components/PermissionPromptService.js resource://gre/components/PermissionSettings.js resource://gre/components/PhoneNumberService.js resource://gre/components/PlacesCategoriesStarter.js resource://gre/components/PresentationControlService.js resource://gre/components/PresentationDataChannelSessionTransport.js resource://gre/components/PresentationDeviceInfoManager.js resource://gre/components/PrivateBrowsingTrackingProtectionWhitelist.js resource://gre/components/Push.js resource://gre/components/PushComponents.js resource://gre/components/PushServiceHandler.js Traceback (most recent call last): File "/<<PKGBUILDDIR>>/toolkit/mozapps/installer/packager.py", line 415, in <module> main() File "/<<PKGBUILDDIR>>/toolkit/mozapps/installer/packager.py", line 409, in main args.source, gre_path, base) File "/<<PKGBUILDDIR>>/toolkit/mozapps/installer/packager.py", line 166, in precompile_cache errors.fatal('Error while running startup cache precompilation') File "/<<PKGBUILDDIR>>/python/mozbuild/mozpack/errors.py", line 103, in fatal self._handle(self.FATAL, msg) File "/<<PKGBUILDDIR>>/python/mozbuild/mozpack/errors.py", line 98, in _handle raise ErrorMessage(msg) mozpack.errors.ErrorMessage: Error: Error while running startup cache precompilation /<<PKGBUILDDIR>>/toolkit/mozapps/installer/packager.mk:41: recipe for target 'stage-package' failed make[3]: *** [stage-package] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/build-browser/browser/installer' /<<PKGBUILDDIR>>/browser/build.mk:21: recipe for target 'install' failed make[2]: *** [install] Error 2 make[2]: Leaving directory '/<<PKGBUILDDIR>>/build-browser' dh_auto_install: make -j1 install DESTDIR=/<<PKGBUILDDIR>>/debian/tmp AM_UPDATE_INFO_DIR=no installdir=/usr/lib/firefox MOZ_APP_BASE_VERSION=50 MOZ_PKG_MANIFEST=/<<PKGBUILDDIR>>/build-browser/debian/installer/package-manifest MOZ_NONLOCALIZED_PKG_LIST=xpcom debian MOZ_LOCALIZED_PKG_LIST=en-US TAR_CREATE_FLAGS=--exclude=.mkdir.done --hard-dereference -chf SIGN_NSS= returned exit code 2 debian/rules:296: recipe for target 'stamps/install-browser' failed Running the xpcshell command manually reveals it's actually xpcshell which is segfaulting: (unstable-hppa-sbuild)root@phantom:/build/firefox-bmck09/firefox-50.1.0/build-browser# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/build/firefox-bmck09/firefox-50.1.0/build-browser/dist/bin/(unstable-hppa-sbuild)root@phantom:/build/firefox-bmck09/firefox-50.1.0/build-browser# /build/firefox-bmck09/firefox-50.1.0/build-browser/dist/bin/xpcshell -g /build/firefox-bmck09/firefox-50.1.0/build-browser/dist/bin/ -a /build/firefox-bmck09/firefox-50.1.0/build-browser/dist/bin/ -f /build/firefox-bmck09/firefox-50.1.0/toolkit/mozapps/installer/precompile_cache.js -e precompile_startupcache\(\"resource://gre/\"\); resource://gre/components/AlarmsManager.js resource://gre/components/AppsService.js resource://gre/components/BrowserElementParent.js resource://gre/components/BrowserElementProxy.js resource://gre/components/CSSUnprefixingService.js resource://gre/components/ChromeNotifications.js resource://gre/components/ColorAnalyzer.js resource://gre/components/ConsoleAPIStorage.js resource://gre/components/ContactManager.js resource://gre/components/ContentProcessSingleton.js resource://gre/components/DOMSecureElement.js resource://gre/components/DownloadLegacy.js resource://gre/components/EditorUtils.js resource://gre/components/FeedProcessor.js resource://gre/components/FormAutofillContentService.js resource://gre/components/FormAutofillStartup.js resource://gre/components/FormHistoryStartup.js resource://gre/components/FxAccountsPush.js resource://gre/components/InstallPackagedWebapp.js resource://gre/components/MainProcessSingleton.js resource://gre/components/MozKeyboard.js resource://gre/components/NetworkGeolocationProvider.js resource://gre/components/NotificationStorage.js resource://gre/components/PACGenerator.js resource://gre/components/PackagedAppUtils.js resource://gre/components/PageIconProtocolHandler.js resource://gre/components/PageThumbsProtocol.js resource://gre/components/Payment.js resource://gre/components/PaymentFlowInfo.js resource://gre/components/PaymentProvider.js resource://gre/components/PeerConnection.js resource://gre/components/PermissionPromptService.js resource://gre/components/PermissionSettings.js resource://gre/components/PhoneNumberService.js resource://gre/components/PlacesCategoriesStarter.js resource://gre/components/PresentationControlService.js resource://gre/components/PresentationDataChannelSessionTransport.js resource://gre/components/PresentationDeviceInfoManager.js resource://gre/components/PrivateBrowsingTrackingProtectionWhitelist.js resource://gre/components/Push.js resource://gre/components/PushComponents.js resource://gre/components/PushServiceHandler.js Segmentation fault (unstable-hppa-sbuild)root@phantom:/build/firefox-bmck09/firefox-50.1.0/build-browser# The backtrace in gdb reveals that the crash is happening the xpcom code: Thread 1 "xpcshell" received signal SIGSEGV, Segmentation fault. xptiTypelibGuts::GetEntryAt (this=0x35b8f727, i=38634) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptinfo/xptiTypelibGuts.cpp:42 42 xptiInterfaceEntry* r = mEntryArray[i]; (gdb) bt #0 xptiTypelibGuts::GetEntryAt (this=0x35b8f727, i=38634) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptinfo/xptiTypelibGuts.cpp:42 #1 0xf6e1bffc in xptiInterfaceEntry::ResolveLocked (this=0xf9f116ba) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptinfo/xptiInterfaceInfo.cpp:77 #2 0xf6e1c11c in xptiInterfaceEntry::Resolve (this=this@entry=0xf9f116ba) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptinfo/xptiInterfaceInfo.cpp:54 #3 0xf6e1c168 in xptiInterfaceEntry::EnsureResolved (this=this@entry=0xf9f116ba) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptinfo/xptiprivate.h:219 #4 0xf6e1c354 in xptiInterfaceEntry::GetMethodInfo (this=0xf9f116ba, index=5818, index@entry=3, info=info@entry=0xfa705710) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptinfo/xptiInterfaceInfo.cpp:180 #5 0xf6e1d948 in PrepareAndDispatch (self=0xfa7053d4, methodIndex=<optimized out>, args=0xf9f116ba, floatargs=0xfa705630) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp:39 #6 0xf6e1fb9c in SharedStub () at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_parisc_linux.s:58 #7 0xf6e1db7c in nsXPTCStubBase::Stub3 (this=<optimized out>) at /build/firefox-bmck09/firefox-50.1.0/xpcom/reflect/xptcall/xptcstubsdef.inc:1 #8 0xf749e798 in mozJSComponentLoader::ModuleEntry::GetFactory (module=..., entry=...) at /build/firefox-bmck09/firefox-50.1.0/js/xpconnect/loader/mozJSComponentLoader.cpp:1364 #9 0xf6e0119c in nsFactoryEntry::GetFactory (this=0xf9f116ba) at /build/firefox-bmck09/firefox-50.1.0/xpcom/components/nsComponentManager.cpp:1907 Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) My suspicion is that there were some changes to the xptcall/xptinvoke code and the hppa-specific xpt stubs were not updated accordingly. I will try to follow up with a patch once I know more. > [1] https://buildd.debian.org/status/fetch.php?pkg=firefox&arch=hppa&ver=50.1.0-1&stamp=1481704086
OS: Unspecified → Linux
Hardware: Unspecified → Other
Component: Untriaged → Build Config
Component: Build Config → XPCOM
Product: Firefox → Core
So, the problem is very likely the missing atomic operations on hppa. From js/src/jit/AtomicOperations.h: // You can disable the JIT with --disable-ion but you must still // provide the atomic operations that will be used by the JS engine. // When the JIT is disabled the operations are simply safe-for-races // C++ realizations of atomics. These operations cannot be written // in portable C++, hence the default here is to crash. See the // top of the file for more guidance. We're missing these atomic operations on alpha, m68k and sh4 as well.
Attachment #8822708 - Flags: review?(mh+mozilla)
Attachment #8822708 - Flags: review?(martin)
Attachment #8822709 - Flags: review?(mh+mozilla)
Attachment #8822709 - Flags: review?(martin)
Attaching two patches which should fix the issue. The first patch by me enables SPARC AtomicOperations on hppa, the second one - by John David Anglin (a very active hppa porter) - adds new Linux hppa xptcstubs code.
Fix the commit message for the first patch.
Attachment #8822708 - Attachment is obsolete: true
Attachment #8822708 - Flags: review?(mh+mozilla)
Attachment #8822708 - Flags: review?(martin)
Attachment #8822710 - Flags: review?(mh+mozilla)
Attachment #8822710 - Flags: review?(martin)
Also improved the commit message for the second patch.
Attachment #8822709 - Attachment is obsolete: true
Attachment #8822709 - Flags: review?(mh+mozilla)
Attachment #8822709 - Flags: review?(martin)
Attachment #8822712 - Flags: review?(mh+mozilla)
Attachment #8822712 - Flags: review?(martin)
Attachment #8822710 - Attachment is obsolete: true
Attachment #8822710 - Flags: review?(mh+mozilla)
Attachment #8822710 - Flags: review?(martin)
Attachment #8822923 - Flags: review?(mh+mozilla)
Attachment #8822923 - Flags: review?(martin)
Attachment #8822712 - Attachment is obsolete: true
Attachment #8822712 - Flags: review?(mh+mozilla)
Attachment #8822712 - Flags: review?(martin)
Attachment #8822924 - Flags: review?(mh+mozilla)
Attachment #8822924 - Flags: review?(martin)
Attaching two new patches. It turns out, that Firefox on hppa can be fixed with two very minimal fixes.
Added a comment to the inline assembly as requested by John David Anglin who wrote the patch.
Attachment #8822924 - Attachment is obsolete: true
Attachment #8822924 - Flags: review?(mh+mozilla)
Attachment #8822924 - Flags: review?(martin)
Attachment #8822950 - Flags: review?(mh+mozilla)
Attachment #8822950 - Flags: review?(martin)
Attachment #8822923 - Flags: review?(mh+mozilla)
Attachment #8822923 - Flags: review?(martin)
Attachment #8822923 - Flags: review?(jdemooij)
Attachment #8822950 - Flags: review?(nfroyd)
Attachment #8822950 - Flags: review?(mh+mozilla)
Attachment #8822950 - Flags: review?(martin)
Comment on attachment 8822923 [details] [diff] [review] 0001-Bug-1325495-js-jit-Use-PowerPC-atomic-operations-on-.patch Review of attachment 8822923 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jit/AtomicOperations.h @@ +324,5 @@ > # include "jit/arm/AtomicOperations-arm.h" > #elif defined(JS_CODEGEN_ARM64) > # include "jit/arm64/AtomicOperations-arm64.h" > +#elif defined(__hppa__) > +# include "jit/none/AtomicOperations-ppc.h" Could you move this inside the "#elif defined(JS_CODEGEN_NONE)" block below? That way we handle all no-JIT platforms the same way.
Attachment #8822923 - Flags: review?(jdemooij)
Attachment #8822923 - Attachment is obsolete: true
Attachment #8825763 - Flags: review?(jdemooij)
Attachment #8822950 - Attachment is obsolete: true
Attachment #8822950 - Flags: review?(nfroyd)
Attachment #8825764 - Flags: review?(nfroyd)
(In reply to Jan de Mooij [:jandem] from comment #11) > Could you move this inside the "#elif defined(JS_CODEGEN_NONE)" block below? > That way we handle all no-JIT platforms the same way. Done. Also rebased both patches.
Comment on attachment 8825763 [details] [diff] [review] 0001-Bug-1325495-js-jit-Use-PowerPC-atomic-operations-on-.patch Review of attachment 8825763 [details] [diff] [review]: ----------------------------------------------------------------- Thanks! ::: js/src/jit/AtomicOperations.h @@ +341,5 @@ > # include "jit/none/AtomicOperations-ppc.h" > # elif defined(__aarch64__) > # include "jit/arm64/AtomicOperations-arm64.h" > +# elif defined(__hppa__) > +# include "jit/none/AtomicOperations-ppc.h" Nit: extra space before "include" so it matches the others.
Attachment #8825763 - Flags: review?(jdemooij) → review+
Attachment #8825763 - Attachment is obsolete: true
Attachment #8825788 - Flags: review?(jdemooij)
(In reply to Jan de Mooij [:jandem] from comment #15) > Comment on attachment 8825763 [details] [diff] [review] > 0001-Bug-1325495-js-jit-Use-PowerPC-atomic-operations-on-.patch > > Review of attachment 8825763 [details] [diff] [review]: > ----------------------------------------------------------------- > > Thanks! > > ::: js/src/jit/AtomicOperations.h > @@ +341,5 @@ > > # include "jit/none/AtomicOperations-ppc.h" > > # elif defined(__aarch64__) > > # include "jit/arm64/AtomicOperations-arm64.h" > > +# elif defined(__hppa__) > > +# include "jit/none/AtomicOperations-ppc.h" > > Nit: extra space before "include" so it matches the others. Fixed. Thanks.
Attachment #8825788 - Flags: review?(jdemooij) → review+
Comment on attachment 8825764 [details] [diff] [review] 0002-Bug-1325495-xpcom-Save-r26-in-arg0-stack-slot-on-hpp.patch Review of attachment 8825764 [details] [diff] [review]: ----------------------------------------------------------------- rs=me, though it would probably be more robust to rewrite StubN in assembly, as is done for other architectures.
Attachment #8825764 - Flags: review?(nfroyd) → review+
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/mozilla-inbound/rev/1328eedd9e60 js:jit: Use PowerPC atomic operations on hppa. r=jandem https://hg.mozilla.org/integration/mozilla-inbound/rev/ce9e9f0dc752 xpcom: Save %r26 in arg0 stack slot on hppa with gcc. r=froydnj
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
(whoops, wrong bug. Ignore the CC changes)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: