diff --git a/SConstruct b/SConstruct index a4e5ec0c09a2d..110a76478a833 100644 --- a/SConstruct +++ b/SConstruct @@ -1228,6 +1228,7 @@ processor_macros = { 'sparc' : { 'endian': 'big', 'defines': ('__sparc',)}, 'x86_64' : { 'endian': 'little', 'defines': ('__x86_64', '_M_AMD64')}, 'emscripten' : { 'endian': 'little', 'defines': ('__EMSCRIPTEN__', )}, + 'mips64el' : { 'endian': 'little', 'defines': ('__MIPSEL__',) }, } def CheckForProcessor(context, which_arch): diff --git a/src/mongo/platform/pause.h b/src/mongo/platform/pause.h index e2feb310f97fe..2b61a26e89e19 100644 --- a/src/mongo/platform/pause.h +++ b/src/mongo/platform/pause.h @@ -73,6 +73,10 @@ // TODO: What should this be? #define MONGO_YIELD_CORE_FOR_SMT() +#elif defined(__MIPSEL__) + +#define MONGO_YIELD_CORE_FOR_SMT() __asm__ volatile("pause\n" ::: "memory") + #else #error "No processor pause implementation for this architecture." #endif diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript index 58e1b7ba65371..665a9bb107a6d 100644 --- a/src/third_party/IntelRDFPMathLib20U1/SConscript +++ b/src/third_party/IntelRDFPMathLib20U1/SConscript @@ -313,7 +313,7 @@ elif processor == "aarch64": cpp_defines['efi2'] = '1' cpp_defines['EFI2'] = '1' # Using 64 bit little endian -elif processor == 'x86_64' or processor == 'ppc64le': +elif processor == 'x86_64' or processor == 'ppc64le' or processor == 'mips64el': cpp_defines['efi2'] = '1' cpp_defines['EFI2'] = '1' # Using 64 bit big endian diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/heap-checker.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/heap-checker.h new file mode 100644 index 0000000000000..6b9ffe5a2ce18 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/heap-checker.h @@ -0,0 +1,36 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/heap-checker.h is deprecated. Use gperftools/heap-checker.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/heap-profiler.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/heap-profiler.h new file mode 100644 index 0000000000000..6155484986a09 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/heap-profiler.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2005, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/heap-profiler.h is deprecated. Use gperftools/heap-profiler.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_extension.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_extension.h new file mode 100644 index 0000000000000..fdad25a350e67 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_extension.h @@ -0,0 +1,36 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/malloc_extension.h is deprecated. Use gperftools/malloc_extension.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_extension_c.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_extension_c.h new file mode 100644 index 0000000000000..3c5cd38e6a8b4 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_extension_c.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2008, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/malloc_extension_c.h is deprecated. Use gperftools/malloc_extension_c.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_hook.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_hook.h new file mode 100644 index 0000000000000..7ec000261d440 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_hook.h @@ -0,0 +1,36 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/malloc_hook.h is deprecated. Use gperftools/malloc_hook.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_hook_c.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_hook_c.h new file mode 100644 index 0000000000000..eb21aaf2e23c6 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/malloc_hook_c.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2008, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/malloc_hook_c.h is deprecated. Use gperftools/malloc_hook_c.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/profiler.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/profiler.h new file mode 100644 index 0000000000000..293d60557cc7b --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/profiler.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2005, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/profiler.h is deprecated. Use gperftools/profiler.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/stacktrace.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/stacktrace.h new file mode 100644 index 0000000000000..55f12d2ee1d17 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/stacktrace.h @@ -0,0 +1,36 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/stacktrace.h is deprecated. Use gperftools/stacktrace.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/tcmalloc.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/tcmalloc.h new file mode 100644 index 0000000000000..1addeb6132ca2 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/google/tcmalloc.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2003, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* The code has moved to gperftools/. Use that include-directory for + * new code. + */ +#if defined(__GNUC__) && !defined(GPERFTOOLS_SUPPRESS_LEGACY_WARNING) +#warning "google/tcmalloc.h is deprecated. Use gperftools/tcmalloc.h instead" +#endif +#include diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/heap-checker.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/heap-checker.h new file mode 100644 index 0000000000000..edd6cc7fb5039 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/heap-checker.h @@ -0,0 +1,422 @@ +// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// --- +// Author: Maxim Lifantsev (with design ideas by Sanjay Ghemawat) +// +// +// Module for detecing heap (memory) leaks. +// +// For full(er) information, see docs/heap_checker.html +// +// This module can be linked into programs with +// no slowdown caused by this unless you activate the leak-checker: +// +// 1. Set the environment variable HEAPCHEK to _type_ before +// running the program. +// +// _type_ is usually "normal" but can also be "minimal", "strict", or +// "draconian". (See the html file for other options, like 'local'.) +// +// After that, just run your binary. If the heap-checker detects +// a memory leak at program-exit, it will print instructions on how +// to track down the leak. + +#ifndef BASE_HEAP_CHECKER_H_ +#define BASE_HEAP_CHECKER_H_ + +#include // for size_t +// I can't #include config.h in this public API file, but I should +// really use configure (and make malloc_extension.h a .in file) to +// figure out if the system has stdint.h or not. But I'm lazy, so +// for now I'm assuming it's a problem only with MSVC. +#ifndef _MSC_VER +#include // for uintptr_t +#endif +#include // for va_list +#include + +// Annoying stuff for windows -- makes sure clients can import these functions +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + + +// The class is thread-safe with respect to all the provided static methods, +// as well as HeapLeakChecker objects: they can be accessed by multiple threads. +class PERFTOOLS_DLL_DECL HeapLeakChecker { + public: + + // ----------------------------------------------------------------------- // + // Static functions for working with (whole-program) leak checking. + + // If heap leak checking is currently active in some mode + // e.g. if leak checking was started (and is still active now) + // due to HEAPCHECK=... defined in the environment. + // The return value reflects iff HeapLeakChecker objects manually + // constructed right now will be doing leak checking or nothing. + // Note that we can go from active to inactive state during InitGoogle() + // if FLAGS_heap_check gets set to "" by some code before/during InitGoogle(). + static bool IsActive(); + + // Return pointer to the whole-program checker if it has been created + // and NULL otherwise. + // Once GlobalChecker() returns non-NULL that object will not disappear and + // will be returned by all later GlobalChecker calls. + // This is mainly to access BytesLeaked() and ObjectsLeaked() (see below) + // for the whole-program checker after one calls NoGlobalLeaks() + // or similar and gets false. + static HeapLeakChecker* GlobalChecker(); + + // Do whole-program leak check now (if it was activated for this binary); + // return false only if it was activated and has failed. + // The mode of the check is controlled by the command-line flags. + // This method can be called repeatedly. + // Things like GlobalChecker()->SameHeap() can also be called explicitly + // to do the desired flavor of the check. + static bool NoGlobalLeaks(); + + // If whole-program checker if active, + // cancel its automatic execution after main() exits. + // This requires that some leak check (e.g. NoGlobalLeaks()) + // has been called at least once on the whole-program checker. + static void CancelGlobalCheck(); + + // ----------------------------------------------------------------------- // + // Non-static functions for starting and doing leak checking. + + // Start checking and name the leak check performed. + // The name is used in naming dumped profiles + // and needs to be unique only within your binary. + // It must also be a string that can be a part of a file name, + // in particular not contain path expressions. + explicit HeapLeakChecker(const char *name); + + // Destructor (verifies that some *NoLeaks or *SameHeap method + // has been called at least once). + ~HeapLeakChecker(); + + // These used to be different but are all the same now: they return + // true iff all memory allocated since this HeapLeakChecker object + // was constructor is still reachable from global state. + // + // Because we fork to convert addresses to symbol-names, and forking + // is not thread-safe, and we may be called in a threaded context, + // we do not try to symbolize addresses when called manually. + bool NoLeaks() { return DoNoLeaks(DO_NOT_SYMBOLIZE); } + + // These forms are obsolete; use NoLeaks() instead. + // TODO(csilvers): mark as DEPRECATED. + bool QuickNoLeaks() { return NoLeaks(); } + bool BriefNoLeaks() { return NoLeaks(); } + bool SameHeap() { return NoLeaks(); } + bool QuickSameHeap() { return NoLeaks(); } + bool BriefSameHeap() { return NoLeaks(); } + + // Detailed information about the number of leaked bytes and objects + // (both of these can be negative as well). + // These are available only after a *SameHeap or *NoLeaks + // method has been called. + // Note that it's possible for both of these to be zero + // while SameHeap() or NoLeaks() returned false in case + // of a heap state change that is significant + // but preserves the byte and object counts. + ssize_t BytesLeaked() const; + ssize_t ObjectsLeaked() const; + + // ----------------------------------------------------------------------- // + // Static helpers to make us ignore certain leaks. + + // Scoped helper class. Should be allocated on the stack inside a + // block of code. Any heap allocations done in the code block + // covered by the scoped object (including in nested function calls + // done by the code block) will not be reported as leaks. This is + // the recommended replacement for the GetDisableChecksStart() and + // DisableChecksToHereFrom() routines below. + // + // Example: + // void Foo() { + // HeapLeakChecker::Disabler disabler; + // ... code that allocates objects whose leaks should be ignored ... + // } + // + // REQUIRES: Destructor runs in same thread as constructor + class Disabler { + public: + Disabler(); + ~Disabler(); + private: + Disabler(const Disabler&); // disallow copy + void operator=(const Disabler&); // and assign + }; + + // Ignore an object located at 'ptr' (can go at the start or into the object) + // as well as all heap objects (transitively) referenced from it for the + // purposes of heap leak checking. Returns 'ptr' so that one can write + // static T* obj = IgnoreObject(new T(...)); + // + // If 'ptr' does not point to an active allocated object at the time of this + // call, it is ignored; but if it does, the object must not get deleted from + // the heap later on. + // + // See also HiddenPointer, below, if you need to prevent a pointer from + // being traversed by the heap checker but do not wish to transitively + // whitelist objects referenced through it. + template + static T* IgnoreObject(T* ptr) { + DoIgnoreObject(static_cast(const_cast(ptr))); + return ptr; + } + + // Undo what an earlier IgnoreObject() call promised and asked to do. + // At the time of this call 'ptr' must point at or inside of an active + // allocated object which was previously registered with IgnoreObject(). + static void UnIgnoreObject(const void* ptr); + + // ----------------------------------------------------------------------- // + // Internal types defined in .cc + + class Allocator; + struct RangeValue; + + private: + + // ----------------------------------------------------------------------- // + // Various helpers + + // Create the name of the heap profile file. + // Should be deleted via Allocator::Free(). + char* MakeProfileNameLocked(); + + // Helper for constructors + void Create(const char *name, bool make_start_snapshot); + + enum ShouldSymbolize { SYMBOLIZE, DO_NOT_SYMBOLIZE }; + + // Helper for *NoLeaks and *SameHeap + bool DoNoLeaks(ShouldSymbolize should_symbolize); + + // Helper for NoGlobalLeaks, also called by the global destructor. + static bool NoGlobalLeaksMaybeSymbolize(ShouldSymbolize should_symbolize); + + // These used to be public, but they are now deprecated. + // Will remove entirely when all internal uses are fixed. + // In the meantime, use friendship so the unittest can still test them. + static void* GetDisableChecksStart(); + static void DisableChecksToHereFrom(const void* start_address); + static void DisableChecksIn(const char* pattern); + friend void RangeDisabledLeaks(); + friend void NamedTwoDisabledLeaks(); + friend void* RunNamedDisabledLeaks(void*); + friend void TestHeapLeakCheckerNamedDisabling(); + + // Actually implements IgnoreObject(). + static void DoIgnoreObject(const void* ptr); + + // Disable checks based on stack trace entry at a depth <= + // max_depth. Used to hide allocations done inside some special + // libraries. + static void DisableChecksFromToLocked(const void* start_address, + const void* end_address, + int max_depth); + + // Helper for DoNoLeaks to ignore all objects reachable from all live data + static void IgnoreAllLiveObjectsLocked(const void* self_stack_top); + + // Callback we pass to TCMalloc_ListAllProcessThreads (see thread_lister.h) + // that is invoked when all threads of our process are found and stopped. + // The call back does the things needed to ignore live data reachable from + // thread stacks and registers for all our threads + // as well as do other global-live-data ignoring + // (via IgnoreNonThreadLiveObjectsLocked) + // during the quiet state of all threads being stopped. + // For the argument meaning see the comment by TCMalloc_ListAllProcessThreads. + // Here we only use num_threads and thread_pids, that TCMalloc_ListAllProcessThreads + // fills for us with the number and pids of all the threads of our process + // it found and attached to. + static int IgnoreLiveThreadsLocked(void* parameter, + int num_threads, + pid_t* thread_pids, + va_list ap); + + // Helper for IgnoreAllLiveObjectsLocked and IgnoreLiveThreadsLocked + // that we prefer to execute from IgnoreLiveThreadsLocked + // while all threads are stopped. + // This helper does live object discovery and ignoring + // for all objects that are reachable from everything + // not related to thread stacks and registers. + static void IgnoreNonThreadLiveObjectsLocked(); + + // Helper for IgnoreNonThreadLiveObjectsLocked and IgnoreLiveThreadsLocked + // to discover and ignore all heap objects + // reachable from currently considered live objects + // (live_objects static global variable in out .cc file). + // "name", "name2" are two strings that we print one after another + // in a debug message to describe what kind of live object sources + // are being used. + static void IgnoreLiveObjectsLocked(const char* name, const char* name2); + + // Do the overall whole-program heap leak check if needed; + // returns true when did the leak check. + static bool DoMainHeapCheck(); + + // Type of task for UseProcMapsLocked + enum ProcMapsTask { + RECORD_GLOBAL_DATA, + DISABLE_LIBRARY_ALLOCS + }; + + // Success/Error Return codes for UseProcMapsLocked. + enum ProcMapsResult { + PROC_MAPS_USED, + CANT_OPEN_PROC_MAPS, + NO_SHARED_LIBS_IN_PROC_MAPS + }; + + // Read /proc/self/maps, parse it, and do the 'proc_maps_task' for each line. + static ProcMapsResult UseProcMapsLocked(ProcMapsTask proc_maps_task); + + // A ProcMapsTask to disable allocations from 'library' + // that is mapped to [start_address..end_address) + // (only if library is a certain system library). + static void DisableLibraryAllocsLocked(const char* library, + uintptr_t start_address, + uintptr_t end_address); + + // Return true iff "*ptr" points to a heap object + // ("*ptr" can point at the start or inside of a heap object + // so that this works e.g. for pointers to C++ arrays, C++ strings, + // multiple-inherited objects, or pointers to members). + // We also fill *object_size for this object then + // and we move "*ptr" to point to the very start of the heap object. + static inline bool HaveOnHeapLocked(const void** ptr, size_t* object_size); + + // Helper to shutdown heap leak checker when it's not needed + // or can't function properly. + static void TurnItselfOffLocked(); + + // Internally-used c-tor to start whole-executable checking. + HeapLeakChecker(); + + // ----------------------------------------------------------------------- // + // Friends and externally accessed helpers. + + // Helper for VerifyHeapProfileTableStackGet in the unittest + // to get the recorded allocation caller for ptr, + // which must be a heap object. + static const void* GetAllocCaller(void* ptr); + friend void VerifyHeapProfileTableStackGet(); + + // This gets to execute before constructors for all global objects + static void BeforeConstructorsLocked(); + friend void HeapLeakChecker_BeforeConstructors(); + + // This gets to execute after destructors for all global objects + friend void HeapLeakChecker_AfterDestructors(); + + // Full starting of recommended whole-program checking. + friend void HeapLeakChecker_InternalInitStart(); + + // Runs REGISTER_HEAPCHECK_CLEANUP cleanups and potentially + // calls DoMainHeapCheck + friend void HeapLeakChecker_RunHeapCleanups(); + + // ----------------------------------------------------------------------- // + // Member data. + + class SpinLock* lock_; // to make HeapLeakChecker objects thread-safe + const char* name_; // our remembered name (we own it) + // NULL means this leak checker is a noop + + // Snapshot taken when the checker was created. May be NULL + // for the global heap checker object. We use void* instead of + // HeapProfileTable::Snapshot* to avoid including heap-profile-table.h. + void* start_snapshot_; + + bool has_checked_; // if we have done the leak check, so these are ready: + ssize_t inuse_bytes_increase_; // bytes-in-use increase for this checker + ssize_t inuse_allocs_increase_; // allocations-in-use increase + // for this checker + bool keep_profiles_; // iff we should keep the heap profiles we've made + + // ----------------------------------------------------------------------- // + + // Disallow "evil" constructors. + HeapLeakChecker(const HeapLeakChecker&); + void operator=(const HeapLeakChecker&); +}; + + +// Holds a pointer that will not be traversed by the heap checker. +// Contrast with HeapLeakChecker::IgnoreObject(o), in which o and +// all objects reachable from o are ignored by the heap checker. +template +class HiddenPointer { + public: + explicit HiddenPointer(T* t) + : masked_t_(reinterpret_cast(t) ^ kHideMask) { + } + // Returns unhidden pointer. Be careful where you save the result. + T* get() const { return reinterpret_cast(masked_t_ ^ kHideMask); } + + private: + // Arbitrary value, but not such that xor'ing with it is likely + // to map one valid pointer to another valid pointer: + static const uintptr_t kHideMask = + static_cast(0xF03A5F7BF03A5F7Bll); + uintptr_t masked_t_; +}; + +// A class that exists solely to run its destructor. This class should not be +// used directly, but instead by the REGISTER_HEAPCHECK_CLEANUP macro below. +class PERFTOOLS_DLL_DECL HeapCleaner { + public: + typedef void (*void_function)(void); + HeapCleaner(void_function f); + static void RunHeapCleanups(); + private: + static std::vector* heap_cleanups_; +}; + +// A macro to declare module heap check cleanup tasks +// (they run only if we are doing heap leak checking.) +// 'body' should be the cleanup code to run. 'name' doesn't matter, +// but must be unique amongst all REGISTER_HEAPCHECK_CLEANUP calls. +#define REGISTER_HEAPCHECK_CLEANUP(name, body) \ + namespace { \ + void heapcheck_cleanup_##name() { body; } \ + static HeapCleaner heapcheck_cleaner_##name(&heapcheck_cleanup_##name); \ + } + +#endif // BASE_HEAP_CHECKER_H_ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/heap-profiler.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/heap-profiler.h new file mode 100644 index 0000000000000..38c6afef8caad --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/heap-profiler.h @@ -0,0 +1,105 @@ +// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- +/* Copyright (c) 2005, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * --- + * Author: Sanjay Ghemawat + * + * Module for heap-profiling. + * + * For full(er) information, see docs/heapprofile.html + * + * This module can be linked into your program with + * no slowdown caused by this unless you activate the profiler + * using one of the following methods: + * + * 1. Before starting the program, set the environment variable + * "HEAPPROFILE" to be the name of the file to which the profile + * data should be written. + * + * 2. Programmatically, start and stop the profiler using the + * routines "HeapProfilerStart(filename)" and "HeapProfilerStop()". + * + */ + +#ifndef BASE_HEAP_PROFILER_H_ +#define BASE_HEAP_PROFILER_H_ + +#include + +/* Annoying stuff for windows; makes sure clients can import these functions */ +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +/* All this code should be usable from within C apps. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Start profiling and arrange to write profile data to file names + * of the form: "prefix.0000", "prefix.0001", ... + */ +PERFTOOLS_DLL_DECL void HeapProfilerStart(const char* prefix); + +/* Returns non-zero if we are currently profiling the heap. (Returns + * an int rather than a bool so it's usable from C.) This is true + * between calls to HeapProfilerStart() and HeapProfilerStop(), and + * also if the program has been run with HEAPPROFILER, or some other + * way to turn on whole-program profiling. + */ +int IsHeapProfilerRunning(); + +/* Stop heap profiling. Can be restarted again with HeapProfilerStart(), + * but the currently accumulated profiling information will be cleared. + */ +PERFTOOLS_DLL_DECL void HeapProfilerStop(); + +/* Dump a profile now - can be used for dumping at a hopefully + * quiescent state in your program, in order to more easily track down + * memory leaks. Will include the reason in the logged message + */ +PERFTOOLS_DLL_DECL void HeapProfilerDump(const char *reason); + +/* Generate current heap profiling information. + * Returns an empty string when heap profiling is not active. + * The returned pointer is a '\0'-terminated string allocated using malloc() + * and should be free()-ed as soon as the caller does not need it anymore. + */ +PERFTOOLS_DLL_DECL char* GetHeapProfile(); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* BASE_HEAP_PROFILER_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_extension.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_extension.h new file mode 100644 index 0000000000000..a8313b954e910 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_extension.h @@ -0,0 +1,451 @@ +// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// --- +// Author: Sanjay Ghemawat +// +// Extra extensions exported by some malloc implementations. These +// extensions are accessed through a virtual base class so an +// application can link against a malloc that does not implement these +// extensions, and it will get default versions that do nothing. +// +// NOTE FOR C USERS: If you wish to use this functionality from within +// a C program, see malloc_extension_c.h. + +#ifndef BASE_MALLOC_EXTENSION_H_ +#define BASE_MALLOC_EXTENSION_H_ + +#include +// I can't #include config.h in this public API file, but I should +// really use configure (and make malloc_extension.h a .in file) to +// figure out if the system has stdint.h or not. But I'm lazy, so +// for now I'm assuming it's a problem only with MSVC. +#ifndef _MSC_VER +#include +#endif +#include +#include + +// Annoying stuff for windows -- makes sure clients can import these functions +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +static const int kMallocHistogramSize = 64; + +// One day, we could support other types of writers (perhaps for C?) +typedef std::string MallocExtensionWriter; + +namespace base { +struct MallocRange; +struct MallocSizeClass; +} + +// Interface to a pluggable system allocator. +class PERFTOOLS_DLL_DECL SysAllocator { + public: + SysAllocator() { + } + virtual ~SysAllocator(); + + // Allocates "size"-byte of memory from system aligned with "alignment". + // Returns NULL if failed. Otherwise, the returned pointer p up to and + // including (p + actual_size -1) have been allocated. + virtual void* Alloc(size_t size, size_t *actual_size, size_t alignment) = 0; +}; + +// The default implementations of the following routines do nothing. +// All implementations should be thread-safe; the current one +// (TCMallocImplementation) is. +class PERFTOOLS_DLL_DECL MallocExtension { + public: + virtual ~MallocExtension(); + + // Call this very early in the program execution -- say, in a global + // constructor -- to set up parameters and state needed by all + // instrumented malloc implemenatations. One example: this routine + // sets environemnt variables to tell STL to use libc's malloc() + // instead of doing its own memory management. This is safe to call + // multiple times, as long as each time is before threads start up. + static void Initialize(); + + // See "verify_memory.h" to see what these routines do + virtual bool VerifyAllMemory(); + virtual bool VerifyNewMemory(const void* p); + virtual bool VerifyArrayNewMemory(const void* p); + virtual bool VerifyMallocMemory(const void* p); + virtual bool MallocMemoryStats(int* blocks, size_t* total, + int histogram[kMallocHistogramSize]); + + // Get a human readable description of the following malloc data structures. + // - Total inuse memory by application. + // - Free memory(thread, central and page heap), + // - Freelist of central cache, each class. + // - Page heap freelist. + // The state is stored as a null-terminated string + // in a prefix of "buffer[0,buffer_length-1]". + // REQUIRES: buffer_length > 0. + virtual void GetStats(char* buffer, int buffer_length); + + // Outputs to "writer" a sample of live objects and the stack traces + // that allocated these objects. The format of the returned output + // is equivalent to the output of the heap profiler and can + // therefore be passed to "pprof". This function is equivalent to + // ReadStackTraces. The main difference is that this function returns + // serialized data appropriately formatted for use by the pprof tool. + // NOTE: by default, tcmalloc does not do any heap sampling, and this + // function will always return an empty sample. To get useful + // data from GetHeapSample, you must also set the environment + // variable TCMALLOC_SAMPLE_PARAMETER to a value such as 524288. + virtual void GetHeapSample(MallocExtensionWriter* writer); + + // Outputs to "writer" the stack traces that caused growth in the + // address space size. The format of the returned output is + // equivalent to the output of the heap profiler and can therefore + // be passed to "pprof". This function is equivalent to + // ReadHeapGrowthStackTraces. The main difference is that this function + // returns serialized data appropriately formatted for use by the + // pprof tool. (This does not depend on, or require, + // TCMALLOC_SAMPLE_PARAMETER.) + virtual void GetHeapGrowthStacks(MallocExtensionWriter* writer); + + // Invokes func(arg, range) for every controlled memory + // range. *range is filled in with information about the range. + // + // This is a best-effort interface useful only for performance + // analysis. The implementation may not call func at all. + typedef void (RangeFunction)(void*, const base::MallocRange*); + virtual void Ranges(void* arg, RangeFunction func); + + // ------------------------------------------------------------------- + // Control operations for getting and setting malloc implementation + // specific parameters. Some currently useful properties: + // + // generic + // ------- + // "generic.current_allocated_bytes" + // Number of bytes currently allocated by application + // This property is not writable. + // + // "generic.heap_size" + // Number of bytes in the heap == + // current_allocated_bytes + + // fragmentation + + // freed memory regions + // This property is not writable. + // + // tcmalloc + // -------- + // "tcmalloc.max_total_thread_cache_bytes" + // Upper limit on total number of bytes stored across all + // per-thread caches. Default: 16MB. + // + // "tcmalloc.current_total_thread_cache_bytes" + // Number of bytes used across all thread caches. + // This property is not writable. + // + // "tcmalloc.central_cache_free_bytes" + // Number of free bytes in the central cache that have been + // assigned to size classes. They always count towards virtual + // memory usage, and unless the underlying memory is swapped out + // by the OS, they also count towards physical memory usage. + // This property is not writable. + // + // "tcmalloc.transfer_cache_free_bytes" + // Number of free bytes that are waiting to be transfered between + // the central cache and a thread cache. They always count + // towards virtual memory usage, and unless the underlying memory + // is swapped out by the OS, they also count towards physical + // memory usage. This property is not writable. + // + // "tcmalloc.thread_cache_free_bytes" + // Number of free bytes in thread caches. They always count + // towards virtual memory usage, and unless the underlying memory + // is swapped out by the OS, they also count towards physical + // memory usage. This property is not writable. + // + // "tcmalloc.pageheap_free_bytes" + // Number of bytes in free, mapped pages in page heap. These + // bytes can be used to fulfill allocation requests. They + // always count towards virtual memory usage, and unless the + // underlying memory is swapped out by the OS, they also count + // towards physical memory usage. This property is not writable. + // + // "tcmalloc.pageheap_unmapped_bytes" + // Number of bytes in free, unmapped pages in page heap. + // These are bytes that have been released back to the OS, + // possibly by one of the MallocExtension "Release" calls. + // They can be used to fulfill allocation requests, but + // typically incur a page fault. They always count towards + // virtual memory usage, and depending on the OS, typically + // do not count towards physical memory usage. This property + // is not writable. + // ------------------------------------------------------------------- + + // Get the named "property"'s value. Returns true if the property + // is known. Returns false if the property is not a valid property + // name for the current malloc implementation. + // REQUIRES: property != NULL; value != NULL + virtual bool GetNumericProperty(const char* property, size_t* value); + + // Set the named "property"'s value. Returns true if the property + // is known and writable. Returns false if the property is not a + // valid property name for the current malloc implementation, or + // is not writable. + // REQUIRES: property != NULL + virtual bool SetNumericProperty(const char* property, size_t value); + + // Mark the current thread as "idle". This routine may optionally + // be called by threads as a hint to the malloc implementation that + // any thread-specific resources should be released. Note: this may + // be an expensive routine, so it should not be called too often. + // + // Also, if the code that calls this routine will go to sleep for + // a while, it should take care to not allocate anything between + // the call to this routine and the beginning of the sleep. + // + // Most malloc implementations ignore this routine. + virtual void MarkThreadIdle(); + + // Mark the current thread as "busy". This routine should be + // called after MarkThreadIdle() if the thread will now do more + // work. If this method is not called, performance may suffer. + // + // Most malloc implementations ignore this routine. + virtual void MarkThreadBusy(); + + // Gets the system allocator used by the malloc extension instance. Returns + // NULL for malloc implementations that do not support pluggable system + // allocators. + virtual SysAllocator* GetSystemAllocator(); + + // Sets the system allocator to the specified. + // + // Users could register their own system allocators for malloc implementation + // that supports pluggable system allocators, such as TCMalloc, by doing: + // alloc = new MyOwnSysAllocator(); + // MallocExtension::instance()->SetSystemAllocator(alloc); + // It's up to users whether to fall back (recommended) to the default + // system allocator (use GetSystemAllocator() above) or not. The caller is + // responsible to any necessary locking. + // See tcmalloc/system-alloc.h for the interface and + // tcmalloc/memfs_malloc.cc for the examples. + // + // It's a no-op for malloc implementations that do not support pluggable + // system allocators. + virtual void SetSystemAllocator(SysAllocator *a); + + // Try to release num_bytes of free memory back to the operating + // system for reuse. Use this extension with caution -- to get this + // memory back may require faulting pages back in by the OS, and + // that may be slow. (Currently only implemented in tcmalloc.) + virtual void ReleaseToSystem(size_t num_bytes); + + // Same as ReleaseToSystem() but release as much memory as possible. + virtual void ReleaseFreeMemory(); + + // Sets the rate at which we release unused memory to the system. + // Zero means we never release memory back to the system. Increase + // this flag to return memory faster; decrease it to return memory + // slower. Reasonable rates are in the range [0,10]. (Currently + // only implemented in tcmalloc). + virtual void SetMemoryReleaseRate(double rate); + + // Gets the release rate. Returns a value < 0 if unknown. + virtual double GetMemoryReleaseRate(); + + // Returns the estimated number of bytes that will be allocated for + // a request of "size" bytes. This is an estimate: an allocation of + // SIZE bytes may reserve more bytes, but will never reserve less. + // (Currently only implemented in tcmalloc, other implementations + // always return SIZE.) + // This is equivalent to malloc_good_size() in OS X. + virtual size_t GetEstimatedAllocatedSize(size_t size); + + // Returns the actual number N of bytes reserved by tcmalloc for the + // pointer p. The client is allowed to use the range of bytes + // [p, p+N) in any way it wishes (i.e. N is the "usable size" of this + // allocation). This number may be equal to or greater than the number + // of bytes requested when p was allocated. + // p must have been allocated by this malloc implementation, + // must not be an interior pointer -- that is, must be exactly + // the pointer returned to by malloc() et al., not some offset + // from that -- and should not have been freed yet. p may be NULL. + // (Currently only implemented in tcmalloc; other implementations + // will return 0.) + // This is equivalent to malloc_size() in OS X, malloc_usable_size() + // in glibc, and _msize() for windows. + virtual size_t GetAllocatedSize(const void* p); + + // Returns kOwned if this malloc implementation allocated the memory + // pointed to by p, or kNotOwned if some other malloc implementation + // allocated it or p is NULL. May also return kUnknownOwnership if + // the malloc implementation does not keep track of ownership. + // REQUIRES: p must be a value returned from a previous call to + // malloc(), calloc(), realloc(), memalign(), posix_memalign(), + // valloc(), pvalloc(), new, or new[], and must refer to memory that + // is currently allocated (so, for instance, you should not pass in + // a pointer after having called free() on it). + enum Ownership { + // NOTE: Enum values MUST be kept in sync with the version in + // malloc_extension_c.h + kUnknownOwnership = 0, + kOwned, + kNotOwned + }; + virtual Ownership GetOwnership(const void* p); + + // The current malloc implementation. Always non-NULL. + static MallocExtension* instance(); + + // Change the malloc implementation. Typically called by the + // malloc implementation during initialization. + static void Register(MallocExtension* implementation); + + // Returns detailed information about malloc's freelists. For each list, + // return a FreeListInfo: + struct FreeListInfo { + size_t min_object_size; + size_t max_object_size; + size_t total_bytes_free; + const char* type; + }; + // Each item in the vector refers to a different freelist. The lists + // are identified by the range of allocations that objects in the + // list can satisfy ([min_object_size, max_object_size]) and the + // type of freelist (see below). The current size of the list is + // returned in total_bytes_free (which count against a processes + // resident and virtual size). + // + // Currently supported types are: + // + // "tcmalloc.page{_unmapped}" - tcmalloc's page heap. An entry for each size + // class in the page heap is returned. Bytes in "page_unmapped" + // are no longer backed by physical memory and do not count against + // the resident size of a process. + // + // "tcmalloc.large{_unmapped}" - tcmalloc's list of objects larger + // than the largest page heap size class. Only one "large" + // entry is returned. There is no upper-bound on the size + // of objects in the large free list; this call returns + // kint64max for max_object_size. Bytes in + // "large_unmapped" are no longer backed by physical memory + // and do not count against the resident size of a process. + // + // "tcmalloc.central" - tcmalloc's central free-list. One entry per + // size-class is returned. Never unmapped. + // + // "debug.free_queue" - free objects queued by the debug allocator + // and not returned to tcmalloc. + // + // "tcmalloc.thread" - tcmalloc's per-thread caches. Never unmapped. + virtual void GetFreeListSizes(std::vector* v); + + // Get a list of stack traces of sampled allocation points. Returns + // a pointer to a "new[]-ed" result array, and stores the sample + // period in "sample_period". + // + // The state is stored as a sequence of adjacent entries + // in the returned array. Each entry has the following form: + // uintptr_t count; // Number of objects with following trace + // uintptr_t size; // Total size of objects with following trace + // uintptr_t depth; // Number of PC values in stack trace + // void* stack[depth]; // PC values that form the stack trace + // + // The list of entries is terminated by a "count" of 0. + // + // It is the responsibility of the caller to "delete[]" the returned array. + // + // May return NULL to indicate no results. + // + // This is an internal extension. Callers should use the more + // convenient "GetHeapSample(string*)" method defined above. + virtual void** ReadStackTraces(int* sample_period); + + // Like ReadStackTraces(), but returns stack traces that caused growth + // in the address space size. + virtual void** ReadHeapGrowthStackTraces(); + + // Returns the size in bytes of the calling threads cache. + virtual size_t GetThreadCacheSize(); + + // Like MarkThreadIdle, but does not destroy the internal data + // structures of the thread cache. When the thread resumes, it wil + // have an empty cache but will not need to pay to reconstruct the + // cache data structures. + virtual void MarkThreadTemporarilyIdle(); + + // Invokes func(arg, classinfo) for every size class. + // *classinfo is filled in with information about the size class. + typedef void (SizeClassFunction)(void*, const base::MallocSizeClass*); + virtual void SizeClasses(void* arg, SizeClassFunction func); +}; + +namespace base { + +// Information passed per range. More fields may be added later. +struct MallocRange { + enum Type { + INUSE, // Application is using this range + FREE, // Range is currently free + UNMAPPED, // Backing physical memory has been returned to the OS + UNKNOWN + // More enum values may be added in the future + }; + + uintptr_t address; // Address of range + size_t length; // Byte length of range + Type type; // Type of this range + double fraction; // Fraction of range that is being used (0 if !INUSE) + + // Perhaps add the following: + // - stack trace if this range was sampled + // - heap growth stack trace if applicable to this range + // - age when allocated (for inuse) or freed (if not in use) +}; + +struct MallocSizeClass { + size_t bytes_per_obj; + size_t pages_per_span; + size_t num_spans; + size_t num_thread_objs; + size_t num_central_objs; + size_t num_transfer_objs; + size_t free_bytes; + size_t alloc_bytes; +}; + +} // namespace base + +#endif // BASE_MALLOC_EXTENSION_H_ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_extension_c.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_extension_c.h new file mode 100644 index 0000000000000..70ff6868ecfca --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_extension_c.h @@ -0,0 +1,101 @@ +/* Copyright (c) 2008, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * -- + * Author: Craig Silverstein + * + * C shims for the C++ malloc_extension.h. See malloc_extension.h for + * details. Note these C shims always work on + * MallocExtension::instance(); it is not possible to have more than + * one MallocExtension object in C applications. + */ + +#ifndef _MALLOC_EXTENSION_C_H_ +#define _MALLOC_EXTENSION_C_H_ + +#include +#include + +/* Annoying stuff for windows -- makes sure clients can import these fns */ +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define kMallocExtensionHistogramSize 64 + +PERFTOOLS_DLL_DECL int MallocExtension_VerifyAllMemory(void); +PERFTOOLS_DLL_DECL int MallocExtension_VerifyNewMemory(const void* p); +PERFTOOLS_DLL_DECL int MallocExtension_VerifyArrayNewMemory(const void* p); +PERFTOOLS_DLL_DECL int MallocExtension_VerifyMallocMemory(const void* p); +PERFTOOLS_DLL_DECL int MallocExtension_MallocMemoryStats(int* blocks, size_t* total, + int histogram[kMallocExtensionHistogramSize]); +PERFTOOLS_DLL_DECL void MallocExtension_GetStats(char* buffer, int buffer_length); + +/* TODO(csilvers): write a C version of these routines, that perhaps + * takes a function ptr and a void *. + */ +/* void MallocExtension_GetHeapSample(string* result); */ +/* void MallocExtension_GetHeapGrowthStacks(string* result); */ + +PERFTOOLS_DLL_DECL int MallocExtension_GetNumericProperty(const char* property, size_t* value); +PERFTOOLS_DLL_DECL int MallocExtension_SetNumericProperty(const char* property, size_t value); +PERFTOOLS_DLL_DECL void MallocExtension_MarkThreadIdle(void); +PERFTOOLS_DLL_DECL void MallocExtension_MarkThreadBusy(void); +PERFTOOLS_DLL_DECL void MallocExtension_ReleaseToSystem(size_t num_bytes); +PERFTOOLS_DLL_DECL void MallocExtension_ReleaseFreeMemory(void); +PERFTOOLS_DLL_DECL size_t MallocExtension_GetEstimatedAllocatedSize(size_t size); +PERFTOOLS_DLL_DECL size_t MallocExtension_GetAllocatedSize(const void* p); +PERFTOOLS_DLL_DECL size_t MallocExtension_GetThreadCacheSize(void); +PERFTOOLS_DLL_DECL void MallocExtension_MarkThreadTemporarilyIdle(void); + +/* + * NOTE: These enum values MUST be kept in sync with the version in + * malloc_extension.h + */ +typedef enum { + MallocExtension_kUnknownOwnership = 0, + MallocExtension_kOwned, + MallocExtension_kNotOwned +} MallocExtension_Ownership; + +PERFTOOLS_DLL_DECL MallocExtension_Ownership MallocExtension_GetOwnership(const void* p); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _MALLOC_EXTENSION_C_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_hook.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_hook.h new file mode 100644 index 0000000000000..b76411fb5901f --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_hook.h @@ -0,0 +1,359 @@ +// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// --- +// Author: Sanjay Ghemawat +// +// Some of our malloc implementations can invoke the following hooks whenever +// memory is allocated or deallocated. MallocHook is thread-safe, and things +// you do before calling AddFooHook(MyHook) are visible to any resulting calls +// to MyHook. Hooks must be thread-safe. If you write: +// +// CHECK(MallocHook::AddNewHook(&MyNewHook)); +// +// MyNewHook will be invoked in subsequent calls in the current thread, but +// there are no guarantees on when it might be invoked in other threads. +// +// There are a limited number of slots available for each hook type. Add*Hook +// will return false if there are no slots available. Remove*Hook will return +// false if the given hook was not already installed. +// +// The order in which individual hooks are called in Invoke*Hook is undefined. +// +// It is safe for a hook to remove itself within Invoke*Hook and add other +// hooks. Any hooks added inside a hook invocation (for the same hook type) +// will not be invoked for the current invocation. +// +// One important user of these hooks is the heap profiler. +// +// CAVEAT: If you add new MallocHook::Invoke* calls then those calls must be +// directly in the code of the (de)allocation function that is provided to the +// user and that function must have an ATTRIBUTE_SECTION(malloc_hook) attribute. +// +// Note: the Invoke*Hook() functions are defined in malloc_hook-inl.h. If you +// need to invoke a hook (which you shouldn't unless you're part of tcmalloc), +// be sure to #include malloc_hook-inl.h in addition to malloc_hook.h. +// +// NOTE FOR C USERS: If you want to use malloc_hook functionality from +// a C program, #include malloc_hook_c.h instead of this file. + +#ifndef _MALLOC_HOOK_H_ +#define _MALLOC_HOOK_H_ + +#include +#include +extern "C" { +#include "malloc_hook_c.h" // a C version of the malloc_hook interface +} + +// Annoying stuff for windows -- makes sure clients can import these functions +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +// The C++ methods below call the C version (MallocHook_*), and thus +// convert between an int and a bool. Windows complains about this +// (a "performance warning") which we don't care about, so we suppress. +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4800) +#endif + +// Note: malloc_hook_c.h defines MallocHook_*Hook and +// MallocHook_{Add,Remove}*Hook. The version of these inside the MallocHook +// class are defined in terms of the malloc_hook_c version. See malloc_hook_c.h +// for details of these types/functions. + +class PERFTOOLS_DLL_DECL MallocHook { + public: + // The NewHook is invoked whenever an object is allocated. + // It may be passed NULL if the allocator returned NULL. + typedef MallocHook_NewHook NewHook; + inline static bool AddNewHook(NewHook hook) { + return MallocHook_AddNewHook(hook); + } + inline static bool RemoveNewHook(NewHook hook) { + return MallocHook_RemoveNewHook(hook); + } + inline static void InvokeNewHook(const void* p, size_t s); + + // The DeleteHook is invoked whenever an object is deallocated. + // It may be passed NULL if the caller is trying to delete NULL. + typedef MallocHook_DeleteHook DeleteHook; + inline static bool AddDeleteHook(DeleteHook hook) { + return MallocHook_AddDeleteHook(hook); + } + inline static bool RemoveDeleteHook(DeleteHook hook) { + return MallocHook_RemoveDeleteHook(hook); + } + inline static void InvokeDeleteHook(const void* p); + + // The PreMmapHook is invoked with mmap or mmap64 arguments just + // before the call is actually made. Such a hook may be useful + // in memory limited contexts, to catch allocations that will exceed + // a memory limit, and take outside actions to increase that limit. + typedef MallocHook_PreMmapHook PreMmapHook; + inline static bool AddPreMmapHook(PreMmapHook hook) { + return MallocHook_AddPreMmapHook(hook); + } + inline static bool RemovePreMmapHook(PreMmapHook hook) { + return MallocHook_RemovePreMmapHook(hook); + } + inline static void InvokePreMmapHook(const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset); + + // The MmapReplacement is invoked after the PreMmapHook but before + // the call is actually made. The MmapReplacement should return true + // if it handled the call, or false if it is still necessary to + // call mmap/mmap64. + // This should be used only by experts, and users must be be + // extremely careful to avoid recursive calls to mmap. The replacement + // should be async signal safe. + // Only one MmapReplacement is supported. After setting an MmapReplacement + // you must call RemoveMmapReplacement before calling SetMmapReplacement + // again. + typedef MallocHook_MmapReplacement MmapReplacement; + inline static bool SetMmapReplacement(MmapReplacement hook) { + return MallocHook_SetMmapReplacement(hook); + } + inline static bool RemoveMmapReplacement(MmapReplacement hook) { + return MallocHook_RemoveMmapReplacement(hook); + } + inline static bool InvokeMmapReplacement(const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset, + void** result); + + + // The MmapHook is invoked whenever a region of memory is mapped. + // It may be passed MAP_FAILED if the mmap failed. + typedef MallocHook_MmapHook MmapHook; + inline static bool AddMmapHook(MmapHook hook) { + return MallocHook_AddMmapHook(hook); + } + inline static bool RemoveMmapHook(MmapHook hook) { + return MallocHook_RemoveMmapHook(hook); + } + inline static void InvokeMmapHook(const void* result, + const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset); + + // The MunmapReplacement is invoked with munmap arguments just before + // the call is actually made. The MunmapReplacement should return true + // if it handled the call, or false if it is still necessary to + // call munmap. + // This should be used only by experts. The replacement should be + // async signal safe. + // Only one MunmapReplacement is supported. After setting an + // MunmapReplacement you must call RemoveMunmapReplacement before + // calling SetMunmapReplacement again. + typedef MallocHook_MunmapReplacement MunmapReplacement; + inline static bool SetMunmapReplacement(MunmapReplacement hook) { + return MallocHook_SetMunmapReplacement(hook); + } + inline static bool RemoveMunmapReplacement(MunmapReplacement hook) { + return MallocHook_RemoveMunmapReplacement(hook); + } + inline static bool InvokeMunmapReplacement(const void* p, + size_t size, + int* result); + + // The MunmapHook is invoked whenever a region of memory is unmapped. + typedef MallocHook_MunmapHook MunmapHook; + inline static bool AddMunmapHook(MunmapHook hook) { + return MallocHook_AddMunmapHook(hook); + } + inline static bool RemoveMunmapHook(MunmapHook hook) { + return MallocHook_RemoveMunmapHook(hook); + } + inline static void InvokeMunmapHook(const void* p, size_t size); + + // The MremapHook is invoked whenever a region of memory is remapped. + typedef MallocHook_MremapHook MremapHook; + inline static bool AddMremapHook(MremapHook hook) { + return MallocHook_AddMremapHook(hook); + } + inline static bool RemoveMremapHook(MremapHook hook) { + return MallocHook_RemoveMremapHook(hook); + } + inline static void InvokeMremapHook(const void* result, + const void* old_addr, + size_t old_size, + size_t new_size, + int flags, + const void* new_addr); + + // The PreSbrkHook is invoked just before sbrk is called -- except when + // the increment is 0. This is because sbrk(0) is often called + // to get the top of the memory stack, and is not actually a + // memory-allocation call. It may be useful in memory-limited contexts, + // to catch allocations that will exceed the limit and take outside + // actions to increase such a limit. + typedef MallocHook_PreSbrkHook PreSbrkHook; + inline static bool AddPreSbrkHook(PreSbrkHook hook) { + return MallocHook_AddPreSbrkHook(hook); + } + inline static bool RemovePreSbrkHook(PreSbrkHook hook) { + return MallocHook_RemovePreSbrkHook(hook); + } + inline static void InvokePreSbrkHook(ptrdiff_t increment); + + // The SbrkHook is invoked whenever sbrk is called -- except when + // the increment is 0. This is because sbrk(0) is often called + // to get the top of the memory stack, and is not actually a + // memory-allocation call. + typedef MallocHook_SbrkHook SbrkHook; + inline static bool AddSbrkHook(SbrkHook hook) { + return MallocHook_AddSbrkHook(hook); + } + inline static bool RemoveSbrkHook(SbrkHook hook) { + return MallocHook_RemoveSbrkHook(hook); + } + inline static void InvokeSbrkHook(const void* result, ptrdiff_t increment); + + // Get the current stack trace. Try to skip all routines up to and + // and including the caller of MallocHook::Invoke*. + // Use "skip_count" (similarly to GetStackTrace from stacktrace.h) + // as a hint about how many routines to skip if better information + // is not available. + inline static int GetCallerStackTrace(void** result, int max_depth, + int skip_count) { + return MallocHook_GetCallerStackTrace(result, max_depth, skip_count); + } + + // Unhooked versions of mmap() and munmap(). These should be used + // only by experts, since they bypass heapchecking, etc. + // Note: These do not run hooks, but they still use the MmapReplacement + // and MunmapReplacement. + static void* UnhookedMMap(void *start, size_t length, int prot, int flags, + int fd, off_t offset); + static int UnhookedMUnmap(void *start, size_t length); + + // The following are DEPRECATED. + inline static NewHook GetNewHook(); + inline static NewHook SetNewHook(NewHook hook) { + return MallocHook_SetNewHook(hook); + } + + inline static DeleteHook GetDeleteHook(); + inline static DeleteHook SetDeleteHook(DeleteHook hook) { + return MallocHook_SetDeleteHook(hook); + } + + inline static PreMmapHook GetPreMmapHook(); + inline static PreMmapHook SetPreMmapHook(PreMmapHook hook) { + return MallocHook_SetPreMmapHook(hook); + } + + inline static MmapHook GetMmapHook(); + inline static MmapHook SetMmapHook(MmapHook hook) { + return MallocHook_SetMmapHook(hook); + } + + inline static MunmapHook GetMunmapHook(); + inline static MunmapHook SetMunmapHook(MunmapHook hook) { + return MallocHook_SetMunmapHook(hook); + } + + inline static MremapHook GetMremapHook(); + inline static MremapHook SetMremapHook(MremapHook hook) { + return MallocHook_SetMremapHook(hook); + } + + inline static PreSbrkHook GetPreSbrkHook(); + inline static PreSbrkHook SetPreSbrkHook(PreSbrkHook hook) { + return MallocHook_SetPreSbrkHook(hook); + } + + inline static SbrkHook GetSbrkHook(); + inline static SbrkHook SetSbrkHook(SbrkHook hook) { + return MallocHook_SetSbrkHook(hook); + } + // End of DEPRECATED methods. + + private: + // Slow path versions of Invoke*Hook. + static void InvokeNewHookSlow(const void* p, size_t s); + static void InvokeDeleteHookSlow(const void* p); + static void InvokePreMmapHookSlow(const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset); + static void InvokeMmapHookSlow(const void* result, + const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset); + static bool InvokeMmapReplacementSlow(const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset, + void** result); + static void InvokeMunmapHookSlow(const void* p, size_t size); + static bool InvokeMunmapReplacementSlow(const void* p, + size_t size, + int* result); + static void InvokeMremapHookSlow(const void* result, + const void* old_addr, + size_t old_size, + size_t new_size, + int flags, + const void* new_addr); + static void InvokePreSbrkHookSlow(ptrdiff_t increment); + static void InvokeSbrkHookSlow(const void* result, ptrdiff_t increment); +}; + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + + +#endif /* _MALLOC_HOOK_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_hook_c.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_hook_c.h new file mode 100644 index 0000000000000..56337e15e83fb --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/malloc_hook_c.h @@ -0,0 +1,173 @@ +/* Copyright (c) 2008, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * -- + * Author: Craig Silverstein + * + * C shims for the C++ malloc_hook.h. See malloc_hook.h for details + * on how to use these. + */ + +#ifndef _MALLOC_HOOK_C_H_ +#define _MALLOC_HOOK_C_H_ + +#include +#include + +/* Annoying stuff for windows; makes sure clients can import these functions */ +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Get the current stack trace. Try to skip all routines up to and + * and including the caller of MallocHook::Invoke*. + * Use "skip_count" (similarly to GetStackTrace from stacktrace.h) + * as a hint about how many routines to skip if better information + * is not available. + */ +PERFTOOLS_DLL_DECL +int MallocHook_GetCallerStackTrace(void** result, int max_depth, + int skip_count); + +/* The MallocHook_{Add,Remove}*Hook functions return 1 on success and 0 on + * failure. + */ + +typedef void (*MallocHook_NewHook)(const void* ptr, size_t size); +PERFTOOLS_DLL_DECL +int MallocHook_AddNewHook(MallocHook_NewHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemoveNewHook(MallocHook_NewHook hook); + +typedef void (*MallocHook_DeleteHook)(const void* ptr); +PERFTOOLS_DLL_DECL +int MallocHook_AddDeleteHook(MallocHook_DeleteHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemoveDeleteHook(MallocHook_DeleteHook hook); + +typedef void (*MallocHook_PreMmapHook)(const void *start, + size_t size, + int protection, + int flags, + int fd, + off_t offset); +PERFTOOLS_DLL_DECL +int MallocHook_AddPreMmapHook(MallocHook_PreMmapHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemovePreMmapHook(MallocHook_PreMmapHook hook); + +typedef void (*MallocHook_MmapHook)(const void* result, + const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset); +PERFTOOLS_DLL_DECL +int MallocHook_AddMmapHook(MallocHook_MmapHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemoveMmapHook(MallocHook_MmapHook hook); + +typedef int (*MallocHook_MmapReplacement)(const void* start, + size_t size, + int protection, + int flags, + int fd, + off_t offset, + void** result); +int MallocHook_SetMmapReplacement(MallocHook_MmapReplacement hook); +int MallocHook_RemoveMmapReplacement(MallocHook_MmapReplacement hook); + +typedef void (*MallocHook_MunmapHook)(const void* ptr, size_t size); +PERFTOOLS_DLL_DECL +int MallocHook_AddMunmapHook(MallocHook_MunmapHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemoveMunmapHook(MallocHook_MunmapHook hook); + +typedef int (*MallocHook_MunmapReplacement)(const void* ptr, + size_t size, + int* result); +int MallocHook_SetMunmapReplacement(MallocHook_MunmapReplacement hook); +int MallocHook_RemoveMunmapReplacement(MallocHook_MunmapReplacement hook); + +typedef void (*MallocHook_MremapHook)(const void* result, + const void* old_addr, + size_t old_size, + size_t new_size, + int flags, + const void* new_addr); +PERFTOOLS_DLL_DECL +int MallocHook_AddMremapHook(MallocHook_MremapHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemoveMremapHook(MallocHook_MremapHook hook); + +typedef void (*MallocHook_PreSbrkHook)(ptrdiff_t increment); +PERFTOOLS_DLL_DECL +int MallocHook_AddPreSbrkHook(MallocHook_PreSbrkHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemovePreSbrkHook(MallocHook_PreSbrkHook hook); + +typedef void (*MallocHook_SbrkHook)(const void* result, ptrdiff_t increment); +PERFTOOLS_DLL_DECL +int MallocHook_AddSbrkHook(MallocHook_SbrkHook hook); +PERFTOOLS_DLL_DECL +int MallocHook_RemoveSbrkHook(MallocHook_SbrkHook hook); + +/* The following are DEPRECATED. */ +PERFTOOLS_DLL_DECL +MallocHook_NewHook MallocHook_SetNewHook(MallocHook_NewHook hook); +PERFTOOLS_DLL_DECL +MallocHook_DeleteHook MallocHook_SetDeleteHook(MallocHook_DeleteHook hook); +PERFTOOLS_DLL_DECL +MallocHook_PreMmapHook MallocHook_SetPreMmapHook(MallocHook_PreMmapHook hook); +PERFTOOLS_DLL_DECL +MallocHook_MmapHook MallocHook_SetMmapHook(MallocHook_MmapHook hook); +PERFTOOLS_DLL_DECL +MallocHook_MunmapHook MallocHook_SetMunmapHook(MallocHook_MunmapHook hook); +PERFTOOLS_DLL_DECL +MallocHook_MremapHook MallocHook_SetMremapHook(MallocHook_MremapHook hook); +PERFTOOLS_DLL_DECL +MallocHook_PreSbrkHook MallocHook_SetPreSbrkHook(MallocHook_PreSbrkHook hook); +PERFTOOLS_DLL_DECL +MallocHook_SbrkHook MallocHook_SetSbrkHook(MallocHook_SbrkHook hook); +/* End of DEPRECATED functions. */ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* _MALLOC_HOOK_C_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/nallocx.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/nallocx.h new file mode 100644 index 0000000000000..01f874ca268b9 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/nallocx.h @@ -0,0 +1,37 @@ +#ifndef _NALLOCX_H_ +#define _NALLOCX_H_ +#include + +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define MALLOCX_LG_ALIGN(la) ((int)(la)) + +/* + * The nallocx function allocates no memory, but it performs the same size + * computation as the malloc function, and returns the real size of the + * allocation that would result from the equivalent malloc function call. + * nallocx is a malloc extension originally implemented by jemalloc: + * http://www.unix.com/man-page/freebsd/3/nallocx/ + * + * Note, we only support MALLOCX_LG_ALIGN flag and nothing else. + */ +PERFTOOLS_DLL_DECL size_t nallocx(size_t size, int flags); + +/* same as above but never weak */ +PERFTOOLS_DLL_DECL size_t tc_nallocx(size_t size, int flags); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _NALLOCX_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/profiler.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/profiler.h new file mode 100644 index 0000000000000..1e7eb127b465d --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/profiler.h @@ -0,0 +1,169 @@ +// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- +/* Copyright (c) 2005, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * --- + * Author: Sanjay Ghemawat + * + * Module for CPU profiling based on periodic pc-sampling. + * + * For full(er) information, see docs/cpuprofile.html + * + * This module is linked into your program with + * no slowdown caused by this unless you activate the profiler + * using one of the following methods: + * + * 1. Before starting the program, set the environment variable + * "CPUPROFILE" to be the name of the file to which the profile + * data should be written. + * + * 2. Programmatically, start and stop the profiler using the + * routines "ProfilerStart(filename)" and "ProfilerStop()". + * + * + * (Note: if using linux 2.4 or earlier, only the main thread may be + * profiled.) + * + * Use pprof to view the resulting profile output. + * % pprof + * % pprof --gv + * + * These functions are thread-safe. + */ + +#ifndef BASE_PROFILER_H_ +#define BASE_PROFILER_H_ + +#include /* For time_t */ + +/* Annoying stuff for windows; makes sure clients can import these functions */ +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +/* All this code should be usable from within C apps. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Profiler options, for use with ProfilerStartWithOptions. To use: + * + * struct ProfilerOptions options; + * memset(&options, 0, sizeof options); + * + * then fill in fields as needed. + * + * This structure is intended to be usable from C code, so no constructor + * is provided to initialize it. (Use memset as described above). + */ +struct ProfilerOptions { + /* Filter function and argument. + * + * If filter_in_thread is not NULL, when a profiling tick is delivered + * the profiler will call: + * + * (*filter_in_thread)(filter_in_thread_arg) + * + * If it returns nonzero, the sample will be included in the profile. + * Note that filter_in_thread runs in a signal handler, so must be + * async-signal-safe. + * + * A typical use would be to set up filter results for each thread + * in the system before starting the profiler, then to make + * filter_in_thread be a very simple function which retrieves those + * results in an async-signal-safe way. Retrieval could be done + * using thread-specific data, or using a shared data structure that + * supports async-signal-safe lookups. + */ + int (*filter_in_thread)(void *arg); + void *filter_in_thread_arg; +}; + +/* Start profiling and write profile info into fname, discarding any + * existing profiling data in that file. + * + * This is equivalent to calling ProfilerStartWithOptions(fname, NULL). + */ +PERFTOOLS_DLL_DECL int ProfilerStart(const char* fname); + +/* Start profiling and write profile into fname, discarding any + * existing profiling data in that file. + * + * The profiler is configured using the options given by 'options'. + * Options which are not specified are given default values. + * + * 'options' may be NULL, in which case all are given default values. + * + * Returns nonzero if profiling was started successfully, or zero else. + */ +PERFTOOLS_DLL_DECL int ProfilerStartWithOptions( + const char *fname, const struct ProfilerOptions *options); + +/* Stop profiling. Can be started again with ProfilerStart(), but + * the currently accumulated profiling data will be cleared. + */ +PERFTOOLS_DLL_DECL void ProfilerStop(void); + +/* Flush any currently buffered profiling state to the profile file. + * Has no effect if the profiler has not been started. + */ +PERFTOOLS_DLL_DECL void ProfilerFlush(void); + + +/* DEPRECATED: these functions were used to enable/disable profiling + * in the current thread, but no longer do anything. + */ +PERFTOOLS_DLL_DECL void ProfilerEnable(void); +PERFTOOLS_DLL_DECL void ProfilerDisable(void); + +/* Returns nonzero if profile is currently enabled, zero if it's not. */ +PERFTOOLS_DLL_DECL int ProfilingIsEnabledForAllThreads(void); + +/* Routine for registering new threads with the profiler. + */ +PERFTOOLS_DLL_DECL void ProfilerRegisterThread(void); + +/* Stores state about profiler's current status into "*state". */ +struct ProfilerState { + int enabled; /* Is profiling currently enabled? */ + time_t start_time; /* If enabled, when was profiling started? */ + char profile_name[1024]; /* Name of profile file being written, or '\0' */ + int samples_gathered; /* Number of samples gathered so far (or 0) */ +}; +PERFTOOLS_DLL_DECL void ProfilerGetCurrentState(struct ProfilerState* state); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* BASE_PROFILER_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/stacktrace.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/stacktrace.h new file mode 100644 index 0000000000000..2b9c5a13209e8 --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/stacktrace.h @@ -0,0 +1,117 @@ +// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// --- +// Author: Sanjay Ghemawat +// +// Routines to extract the current stack trace. These functions are +// thread-safe. + +#ifndef GOOGLE_STACKTRACE_H_ +#define GOOGLE_STACKTRACE_H_ + +// Annoying stuff for windows -- makes sure clients can import these functions +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + + +// Skips the most recent "skip_count" stack frames (also skips the +// frame generated for the "GetStackFrames" routine itself), and then +// records the pc values for up to the next "max_depth" frames in +// "result", and the corresponding stack frame sizes in "sizes". +// Returns the number of values recorded in "result"/"sizes". +// +// Example: +// main() { foo(); } +// foo() { bar(); } +// bar() { +// void* result[10]; +// int sizes[10]; +// int depth = GetStackFrames(result, sizes, 10, 1); +// } +// +// The GetStackFrames call will skip the frame for "bar". It will +// return 2 and will produce pc values that map to the following +// procedures: +// result[0] foo +// result[1] main +// (Actually, there may be a few more entries after "main" to account for +// startup procedures.) +// And corresponding stack frame sizes will also be recorded: +// sizes[0] 16 +// sizes[1] 16 +// (Stack frame sizes of 16 above are just for illustration purposes.) +// Stack frame sizes of 0 or less indicate that those frame sizes couldn't +// be identified. +// +// This routine may return fewer stack frame entries than are +// available. Also note that "result" and "sizes" must both be non-NULL. +extern PERFTOOLS_DLL_DECL int GetStackFrames(void** result, int* sizes, int max_depth, + int skip_count); + +// Same as above, but to be used from a signal handler. The "uc" parameter +// should be the pointer to ucontext_t which was passed as the 3rd parameter +// to sa_sigaction signal handler. It may help the unwinder to get a +// better stack trace under certain conditions. The "uc" may safely be NULL. +extern PERFTOOLS_DLL_DECL int GetStackFramesWithContext(void** result, int* sizes, int max_depth, + int skip_count, const void *uc); + +// This is similar to the GetStackFrames routine, except that it returns +// the stack trace only, and not the stack frame sizes as well. +// Example: +// main() { foo(); } +// foo() { bar(); } +// bar() { +// void* result[10]; +// int depth = GetStackTrace(result, 10, 1); +// } +// +// This produces: +// result[0] foo +// result[1] main +// .... ... +// +// "result" must not be NULL. +extern PERFTOOLS_DLL_DECL int GetStackTrace(void** result, int max_depth, + int skip_count); + +// Same as above, but to be used from a signal handler. The "uc" parameter +// should be the pointer to ucontext_t which was passed as the 3rd parameter +// to sa_sigaction signal handler. It may help the unwinder to get a +// better stack trace under certain conditions. The "uc" may safely be NULL. +extern PERFTOOLS_DLL_DECL int GetStackTraceWithContext(void** result, int max_depth, + int skip_count, const void *uc); + +#endif /* GOOGLE_STACKTRACE_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/tcmalloc.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/tcmalloc.h new file mode 100644 index 0000000000000..fe4506270765a --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/include/gperftools/tcmalloc.h @@ -0,0 +1,163 @@ +// -*- Mode: C; c-basic-offset: 2; indent-tabs-mode: nil -*- +/* Copyright (c) 2003, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * --- + * Author: Sanjay Ghemawat + * .h file by Craig Silverstein + */ + +#ifndef TCMALLOC_TCMALLOC_H_ +#define TCMALLOC_TCMALLOC_H_ + +#include /* for size_t */ +#ifdef __cplusplus +#include /* for std::nothrow_t, std::align_val_t */ +#endif + +/* Define the version number so folks can check against it */ +#define TC_VERSION_MAJOR 2 +#define TC_VERSION_MINOR 7 +#define TC_VERSION_PATCH "" +#define TC_VERSION_STRING "gperftools 2.7" + +/* For struct mallinfo, if it's defined. */ +#if 0 +# include +#endif + +#ifndef PERFTOOLS_NOTHROW + +#if __cplusplus >= 201103L +#define PERFTOOLS_NOTHROW noexcept +#elif defined(__cplusplus) +#define PERFTOOLS_NOTHROW throw() +#else +# ifdef __GNUC__ +# define PERFTOOLS_NOTHROW __attribute__((__nothrow__)) +# else +# define PERFTOOLS_NOTHROW +# endif +#endif + +#endif + +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + /* + * Returns a human-readable version string. If major, minor, + * and/or patch are not NULL, they are set to the major version, + * minor version, and patch-code (a string, usually ""). + */ + PERFTOOLS_DLL_DECL const char* tc_version(int* major, int* minor, + const char** patch) PERFTOOLS_NOTHROW; + + PERFTOOLS_DLL_DECL void* tc_malloc(size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_malloc_skip_new_handler(size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_free(void* ptr) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_free_sized(void *ptr, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_realloc(void* ptr, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_calloc(size_t nmemb, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_cfree(void* ptr) PERFTOOLS_NOTHROW; + + PERFTOOLS_DLL_DECL void* tc_memalign(size_t __alignment, + size_t __size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL int tc_posix_memalign(void** ptr, + size_t align, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_valloc(size_t __size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_pvalloc(size_t __size) PERFTOOLS_NOTHROW; + + PERFTOOLS_DLL_DECL void tc_malloc_stats(void) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL int tc_mallopt(int cmd, int value) PERFTOOLS_NOTHROW; +#if 0 + PERFTOOLS_DLL_DECL struct mallinfo tc_mallinfo(void) PERFTOOLS_NOTHROW; +#endif + + /* + * This is an alias for MallocExtension::instance()->GetAllocatedSize(). + * It is equivalent to + * OS X: malloc_size() + * glibc: malloc_usable_size() + * Windows: _msize() + */ + PERFTOOLS_DLL_DECL size_t tc_malloc_size(void* ptr) PERFTOOLS_NOTHROW; + +#ifdef __cplusplus + PERFTOOLS_DLL_DECL int tc_set_new_mode(int flag) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_new(size_t size); + PERFTOOLS_DLL_DECL void* tc_new_nothrow(size_t size, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete(void* p) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_sized(void* p, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_nothrow(void* p, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_newarray(size_t size); + PERFTOOLS_DLL_DECL void* tc_newarray_nothrow(size_t size, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray(void* p) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_sized(void* p, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_nothrow(void* p, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + +#if 1 && __cplusplus >= 201703L + PERFTOOLS_DLL_DECL void* tc_new_aligned(size_t size, std::align_val_t al); + PERFTOOLS_DLL_DECL void* tc_new_aligned_nothrow(size_t size, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_aligned(void* p, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_sized_aligned(void* p, size_t size, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_aligned_nothrow(void* p, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_newarray_aligned(size_t size, std::align_val_t al); + PERFTOOLS_DLL_DECL void* tc_newarray_aligned_nothrow(size_t size, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_aligned(void* p, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_sized_aligned(void* p, size_t size, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_aligned_nothrow(void* p, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; +#endif +} +#endif + +/* We're only un-defining for public */ +#if !defined(GPERFTOOLS_CONFIG_H_) + +#undef PERFTOOLS_NOTHROW + +#endif /* GPERFTOOLS_CONFIG_H_ */ + +#endif /* #ifndef TCMALLOC_TCMALLOC_H_ */ diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/internal/src/config.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/internal/src/config.h new file mode 100644 index 0000000000000..cbd0352cc83bb --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/internal/src/config.h @@ -0,0 +1,323 @@ +/* src/config.h. Generated from config.h.in by configure. */ +/* src/config.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef GPERFTOOLS_CONFIG_H_ +#define GPERFTOOLS_CONFIG_H_ + + +/* Build new/delete operators for overaligned types */ +#define ENABLE_ALIGNED_NEW_DELETE 1 + +/* Build runtime detection for sized delete */ +/* #undef ENABLE_DYNAMIC_SIZED_DELETE */ + +/* Build sized deletion operators */ +#define ENABLE_SIZED_DELETE 1 + +/* Define to 1 if compiler supports __builtin_expect */ +#define HAVE_BUILTIN_EXPECT 1 + +/* Define to 1 if compiler supports __builtin_stack_pointer */ +/* #undef HAVE_BUILTIN_STACK_POINTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONFLICT_SIGNAL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CYGWIN_SIGNAL_H */ + +/* Define to 1 if you have the declaration of `backtrace', and to 0 if you + don't. */ +/* #undef HAVE_DECL_BACKTRACE */ + +/* Define to 1 if you have the declaration of `cfree', and to 0 if you don't. + */ +#define HAVE_DECL_CFREE 0 + +/* Define to 1 if you have the declaration of `memalign', and to 0 if you + don't. */ +#define HAVE_DECL_MEMALIGN 1 + +/* Define to 1 if you have the declaration of `nanosleep', and to 0 if you + don't. */ +/* #undef HAVE_DECL_NANOSLEEP */ + +/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if + you don't. */ +#define HAVE_DECL_POSIX_MEMALIGN 1 + +/* Define to 1 if you have the declaration of `pvalloc', and to 0 if you + don't. */ +#define HAVE_DECL_PVALLOC 1 + +/* Define to 1 if you have the declaration of `sleep', and to 0 if you don't. + */ +/* #undef HAVE_DECL_SLEEP */ + +/* Define to 1 if you have the declaration of `uname', and to 0 if you don't. + */ +#define HAVE_DECL_UNAME 1 + +/* Define to 1 if you have the declaration of `valloc', and to 0 if you don't. + */ +#define HAVE_DECL_VALLOC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if the system has the type `Elf32_Versym'. */ +#define HAVE_ELF32_VERSYM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_EXECINFO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FEATURES_H 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GLOB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUNWIND_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_PTRACE_H 1 + +/* Define if this is Linux that has SIGEV_THREAD_ID */ +#define HAVE_LINUX_SIGEV_THREAD_ID 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MALLOC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* define if the compiler implements namespaces */ +#define HAVE_NAMESPACES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* define if libc has program_invocation_name */ +#define HAVE_PROGRAM_INVOCATION_NAME 1 + +/* Define if you have POSIX threads libraries and header files. */ +#define HAVE_PTHREAD 1 + +/* defined to 1 if pthread symbols are exposed even without include pthread.h + */ +/* #undef HAVE_PTHREAD_DESPITE_ASKING_FOR */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PWD_H 1 + +/* Define to 1 if you have the `sbrk' function. */ +#define HAVE_SBRK 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if the system has the type `struct mallinfo'. */ +/* #undef HAVE_STRUCT_MALLINFO */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_CDEFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PRCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UCONTEXT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if compiler supports __thread */ +#define HAVE_TLS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UCONTEXT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Whether contains _Unwind_Backtrace */ +#define HAVE_UNWIND_BACKTRACE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNWIND_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VALGRIND_H */ + +/* define if your compiler has __attribute__ */ +#define HAVE___ATTRIBUTE__ 1 + +/* define if your compiler supports alignment of functions */ +#define HAVE___ATTRIBUTE__ALIGNED_FN 1 + +/* Define to 1 if compiler supports __environ */ +#define HAVE___ENVIRON 1 + +/* Define to 1 if the system has the type `__int64'. */ +/* #undef HAVE___INT64 */ + +/* prefix where we look for installed files */ +#define INSTALL_PREFIX "/home/loongson/wyw/opensource/mongoDB/r4.2.6/mongo/src/third_party/gperftools-2.7/platform/linux_mips64/junk" + +/* Define to 1 if int32_t is equivalent to intptr_t */ +/* #undef INT32_EQUALS_INTPTR */ + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "gperftools" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "gperftools@googlegroups.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "gperftools" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "gperftools 2.7" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gperftools" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "2.7" + +/* How to access the PC from a struct ucontext */ +#define PC_FROM_UCONTEXT uc_mcontext.pc + +/* Always the empty-string on non-windows systems. On windows, should be + "__declspec(dllexport)". This way, when we compile the dll, we export our + functions/classes. It's safe to define this here because config.h is only + used internally, to compile the DLL, and every DLL source file #includes + "config.h" before anything else. */ +#define PERFTOOLS_DLL_DECL /**/ + +/* printf format code for printing a size_t and ssize_t */ +#define PRIdS "ld" + +/* printf format code for printing a size_t and ssize_t */ +#define PRIuS "lu" + +/* printf format code for printing a size_t and ssize_t */ +#define PRIxS "lx" + +/* Mark the systems where we know it's bad if pthreads runs too + early before main (before threads are initialized, presumably). */ +#ifdef __FreeBSD__ +#define PTHREADS_CRASHES_IF_RUN_TOO_EARLY 1 +#endif + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* the namespace where STL code like vector<> is defined */ +#define STL_NAMESPACE std + +/* Define to 1 to try to reduce the number of size classes. */ +#define TCMALLOC_AGGRESSIVE_MERGE 1 + +/* Define 8 bytes of allocation alignment for tcmalloc */ +/* #undef TCMALLOC_ALIGN_8BYTES */ + +/* Define to 0 to disable malloc override in libc. */ +#define TCMALLOC_ENABLE_LIBC_OVERRIDE 1 + +/* Define max size of cached allocations for tcmalloc */ +#define TCMALLOC_MAX_SIZE_KB 16 + +/* Define internal page size for tcmalloc as number of left bitshift */ +#define TCMALLOC_PAGE_SIZE_SHIFT 12 + +/* Optimal transfer size between thread and central caches */ +#define TCMALLOC_TARGET_TRANSFER_KB 8 + +/* A detail of the "blocks_to_move" loop of "SizeMap::Init" */ +#define TCMALLOC_USE_UNCLAMPED_TRANSFER_SIZES 1 + +/* Version number of package */ +#define VERSION "2.7" + +/* C99 says: define this to get the PRI... macros from stdint.h */ +#ifndef __STDC_FORMAT_MACROS +# define __STDC_FORMAT_MACROS 1 +#endif + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + + +#ifdef __MINGW32__ +#include "windows/mingw.h" +#endif + +#endif /* #ifndef GPERFTOOLS_CONFIG_H_ */ + diff --git a/src/third_party/gperftools-2.7/platform/linux_mips64el/internal/src/gperftools/tcmalloc.h b/src/third_party/gperftools-2.7/platform/linux_mips64el/internal/src/gperftools/tcmalloc.h new file mode 100644 index 0000000000000..fe4506270765a --- /dev/null +++ b/src/third_party/gperftools-2.7/platform/linux_mips64el/internal/src/gperftools/tcmalloc.h @@ -0,0 +1,163 @@ +// -*- Mode: C; c-basic-offset: 2; indent-tabs-mode: nil -*- +/* Copyright (c) 2003, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * --- + * Author: Sanjay Ghemawat + * .h file by Craig Silverstein + */ + +#ifndef TCMALLOC_TCMALLOC_H_ +#define TCMALLOC_TCMALLOC_H_ + +#include /* for size_t */ +#ifdef __cplusplus +#include /* for std::nothrow_t, std::align_val_t */ +#endif + +/* Define the version number so folks can check against it */ +#define TC_VERSION_MAJOR 2 +#define TC_VERSION_MINOR 7 +#define TC_VERSION_PATCH "" +#define TC_VERSION_STRING "gperftools 2.7" + +/* For struct mallinfo, if it's defined. */ +#if 0 +# include +#endif + +#ifndef PERFTOOLS_NOTHROW + +#if __cplusplus >= 201103L +#define PERFTOOLS_NOTHROW noexcept +#elif defined(__cplusplus) +#define PERFTOOLS_NOTHROW throw() +#else +# ifdef __GNUC__ +# define PERFTOOLS_NOTHROW __attribute__((__nothrow__)) +# else +# define PERFTOOLS_NOTHROW +# endif +#endif + +#endif + +#ifndef PERFTOOLS_DLL_DECL +# ifdef _WIN32 +# define PERFTOOLS_DLL_DECL __declspec(dllimport) +# else +# define PERFTOOLS_DLL_DECL +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + /* + * Returns a human-readable version string. If major, minor, + * and/or patch are not NULL, they are set to the major version, + * minor version, and patch-code (a string, usually ""). + */ + PERFTOOLS_DLL_DECL const char* tc_version(int* major, int* minor, + const char** patch) PERFTOOLS_NOTHROW; + + PERFTOOLS_DLL_DECL void* tc_malloc(size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_malloc_skip_new_handler(size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_free(void* ptr) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_free_sized(void *ptr, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_realloc(void* ptr, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_calloc(size_t nmemb, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_cfree(void* ptr) PERFTOOLS_NOTHROW; + + PERFTOOLS_DLL_DECL void* tc_memalign(size_t __alignment, + size_t __size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL int tc_posix_memalign(void** ptr, + size_t align, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_valloc(size_t __size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_pvalloc(size_t __size) PERFTOOLS_NOTHROW; + + PERFTOOLS_DLL_DECL void tc_malloc_stats(void) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL int tc_mallopt(int cmd, int value) PERFTOOLS_NOTHROW; +#if 0 + PERFTOOLS_DLL_DECL struct mallinfo tc_mallinfo(void) PERFTOOLS_NOTHROW; +#endif + + /* + * This is an alias for MallocExtension::instance()->GetAllocatedSize(). + * It is equivalent to + * OS X: malloc_size() + * glibc: malloc_usable_size() + * Windows: _msize() + */ + PERFTOOLS_DLL_DECL size_t tc_malloc_size(void* ptr) PERFTOOLS_NOTHROW; + +#ifdef __cplusplus + PERFTOOLS_DLL_DECL int tc_set_new_mode(int flag) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_new(size_t size); + PERFTOOLS_DLL_DECL void* tc_new_nothrow(size_t size, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete(void* p) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_sized(void* p, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_nothrow(void* p, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_newarray(size_t size); + PERFTOOLS_DLL_DECL void* tc_newarray_nothrow(size_t size, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray(void* p) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_sized(void* p, size_t size) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_nothrow(void* p, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + +#if 1 && __cplusplus >= 201703L + PERFTOOLS_DLL_DECL void* tc_new_aligned(size_t size, std::align_val_t al); + PERFTOOLS_DLL_DECL void* tc_new_aligned_nothrow(size_t size, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_aligned(void* p, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_sized_aligned(void* p, size_t size, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_delete_aligned_nothrow(void* p, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void* tc_newarray_aligned(size_t size, std::align_val_t al); + PERFTOOLS_DLL_DECL void* tc_newarray_aligned_nothrow(size_t size, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_aligned(void* p, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_sized_aligned(void* p, size_t size, std::align_val_t al) PERFTOOLS_NOTHROW; + PERFTOOLS_DLL_DECL void tc_deletearray_aligned_nothrow(void* p, std::align_val_t al, + const std::nothrow_t&) PERFTOOLS_NOTHROW; +#endif +} +#endif + +/* We're only un-defining for public */ +#if !defined(GPERFTOOLS_CONFIG_H_) + +#undef PERFTOOLS_NOTHROW + +#endif /* GPERFTOOLS_CONFIG_H_ */ + +#endif /* #ifndef TCMALLOC_TCMALLOC_H_ */ diff --git a/src/third_party/mozjs-60/extract/js/src/jit/mips-shared/LIR-mips-shared.h b/src/third_party/mozjs-60/extract/js/src/jit/mips-shared/LIR-mips-shared.h index 43decd1e2c0f1..19a3fbbba4d5e 100644 --- a/src/third_party/mozjs-60/extract/js/src/jit/mips-shared/LIR-mips-shared.h +++ b/src/third_party/mozjs-60/extract/js/src/jit/mips-shared/LIR-mips-shared.h @@ -16,7 +16,7 @@ class LWasmUint32ToDouble : public LInstructionHelper<1, 1, 0> public: LIR_HEADER(WasmUint32ToDouble) - LWasmUint32ToDouble(const LAllocation& input) { + LWasmUint32ToDouble(const LAllocation& input) : LInstructionHelper(classOpcode){ setOperand(0, input); } }; @@ -27,7 +27,7 @@ class LWasmUint32ToFloat32 : public LInstructionHelper<1, 1, 0> public: LIR_HEADER(WasmUint32ToFloat32) - LWasmUint32ToFloat32(const LAllocation& input) { + LWasmUint32ToFloat32(const LAllocation& input) : LInstructionHelper(classOpcode){ setOperand(0, input); } }; @@ -39,7 +39,7 @@ class LDivI : public LBinaryMath<1> LIR_HEADER(DivI); LDivI(const LAllocation& lhs, const LAllocation& rhs, - const LDefinition& temp) { + const LDefinition& temp) : LBinaryMath(classOpcode){ setOperand(0, lhs); setOperand(1, rhs); setTemp(0, temp); @@ -58,7 +58,7 @@ class LDivPowTwoI : public LInstructionHelper<1, 1, 1> LIR_HEADER(DivPowTwoI) LDivPowTwoI(const LAllocation& lhs, int32_t shift, const LDefinition& temp) - : shift_(shift) + : shift_(shift), LInstructionHelper(classOpcode) { setOperand(0, lhs); setTemp(0, temp); @@ -83,7 +83,7 @@ class LModI : public LBinaryMath<1> LIR_HEADER(ModI); LModI(const LAllocation& lhs, const LAllocation& rhs, - const LDefinition& callTemp) + const LDefinition& callTemp) : LBinaryMath(classOpcode) { setOperand(0, lhs); setOperand(1, rhs); @@ -111,7 +111,7 @@ class LModPowTwoI : public LInstructionHelper<1, 1, 0> } LModPowTwoI(const LAllocation& lhs, int32_t shift) - : shift_(shift) + : shift_(shift), LInstructionHelper(classOpcode) { setOperand(0, lhs); } @@ -130,7 +130,7 @@ class LModMaskI : public LInstructionHelper<1, 1, 2> LModMaskI(const LAllocation& lhs, const LDefinition& temp0, const LDefinition& temp1, int32_t shift) - : shift_(shift) + : shift_(shift), LInstructionHelper(classOpcode) { setOperand(0, lhs); setTemp(0, temp0); @@ -153,7 +153,7 @@ class LTableSwitch : public LInstructionHelper<0, 1, 2> LIR_HEADER(TableSwitch); LTableSwitch(const LAllocation& in, const LDefinition& inputCopy, - const LDefinition& jumpTablePointer, MTableSwitch* ins) { + const LDefinition& jumpTablePointer, MTableSwitch* ins) : LInstructionHelper(classOpcode){ setOperand(0, in); setTemp(0, inputCopy); setTemp(1, jumpTablePointer); @@ -184,7 +184,7 @@ class LTableSwitchV : public LInstructionHelper<0, BOX_PIECES, 3> LTableSwitchV(const LBoxAllocation& input, const LDefinition& inputCopy, const LDefinition& floatCopy, const LDefinition& jumpTablePointer, - MTableSwitch* ins) + MTableSwitch* ins): LInstructionHelper(classOpcode) { setBoxOperand(InputValue, input); setTemp(0, inputCopy); @@ -215,6 +215,9 @@ class LMulI : public LBinaryMath<0> public: LIR_HEADER(MulI); + LMulI() + : LBinaryMath(classOpcode) + {} MMul* mir() { return mir_->toMul(); } @@ -225,6 +228,10 @@ class LUDivOrMod : public LBinaryMath<0> public: LIR_HEADER(UDivOrMod); + LUDivOrMod() + : LBinaryMath(classOpcode) + {} + MBinaryArithInstruction* mir() const { MOZ_ASSERT(mir_->isDiv() || mir_->isMod()); return static_cast(mir_); @@ -255,12 +262,13 @@ namespace details { // Base class for the int64 and non-int64 variants. template class LWasmUnalignedLoadBase : public details::LWasmLoadBase + { public: typedef LWasmLoadBase Base; - explicit LWasmUnalignedLoadBase(const LAllocation& ptr, const LDefinition& valueHelper) - : Base(ptr, LAllocation()) + explicit LWasmUnalignedLoadBase(LNode::Opcode opcode, const LAllocation& ptr, const LDefinition& valueHelper) + : Base(opcode, ptr, LAllocation()) { Base::setTemp(0, LDefinition::BogusTemp()); Base::setTemp(1, valueHelper); @@ -279,7 +287,7 @@ class LWasmUnalignedLoad : public details::LWasmUnalignedLoadBase<1> { public: explicit LWasmUnalignedLoad(const LAllocation& ptr, const LDefinition& valueHelper) - : LWasmUnalignedLoadBase(ptr, valueHelper) + : LWasmUnalignedLoadBase(classOpcode, ptr, valueHelper) {} LIR_HEADER(WasmUnalignedLoad); }; @@ -288,7 +296,7 @@ class LWasmUnalignedLoadI64 : public details::LWasmUnalignedLoadBase static const size_t PtrIndex = 0; static const size_t ValueIndex = 1; - LWasmUnalignedStoreBase(const LAllocation& ptr, const LDefinition& valueHelper) + LWasmUnalignedStoreBase(LNode::Opcode opcode, const LAllocation& ptr, const LDefinition& valueHelper) : Base(opcode) { Base::setOperand(0, ptr); Base::setTemp(0, LDefinition::BogusTemp()); @@ -330,7 +338,7 @@ class LWasmUnalignedStore : public details::LWasmUnalignedStoreBase<2> LIR_HEADER(WasmUnalignedStore); LWasmUnalignedStore(const LAllocation& ptr, const LAllocation& value, const LDefinition& valueHelper) - : LWasmUnalignedStoreBase(ptr, valueHelper) + : LWasmUnalignedStoreBase(classOpcode, ptr, valueHelper) { setOperand(1, value); } @@ -345,7 +353,7 @@ class LWasmUnalignedStoreI64 : public details::LWasmUnalignedStoreBase<1 + INT64 LIR_HEADER(WasmUnalignedStoreI64); LWasmUnalignedStoreI64(const LAllocation& ptr, const LInt64Allocation& value, const LDefinition& valueHelper) - : LWasmUnalignedStoreBase(ptr, valueHelper) + : LWasmUnalignedStoreBase(classOpcode, ptr, valueHelper) { setInt64Operand(1, value); } @@ -359,7 +367,7 @@ class LWasmCompareExchangeI64 : public LInstructionHelper public: LIR_HEADER(Unbox); - explicit LUnbox(const LAllocation& input) { + explicit LUnbox(const LAllocation& input) : LInstructionHelper(classOpcode){ setOperand(0, input); } @@ -51,7 +51,7 @@ class LDivOrModI64 : public LBinaryMath<1> public: LIR_HEADER(DivOrModI64) - LDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) { + LDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) : LBinaryMath(classOpcode){ setOperand(0, lhs); setOperand(1, rhs); setTemp(0, temp); @@ -88,7 +88,7 @@ class LUDivOrModI64 : public LBinaryMath<1> public: LIR_HEADER(UDivOrModI64); - LUDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) { + LUDivOrModI64(const LAllocation& lhs, const LAllocation& rhs, const LDefinition& temp) : LBinaryMath(classOpcode){ setOperand(0, lhs); setOperand(1, rhs); setTemp(0, temp); @@ -125,7 +125,7 @@ class LWasmTruncateToInt64 : public LInstructionHelper<1, 1, 0> public: LIR_HEADER(WasmTruncateToInt64); - explicit LWasmTruncateToInt64(const LAllocation& in) { + explicit LWasmTruncateToInt64(const LAllocation& in) : LInstructionHelper(classOpcode){ setOperand(0, in); } @@ -139,7 +139,7 @@ class LInt64ToFloatingPoint : public LInstructionHelper<1, 1, 0> public: LIR_HEADER(Int64ToFloatingPoint); - explicit LInt64ToFloatingPoint(const LInt64Allocation& in) { + explicit LInt64ToFloatingPoint(const LInt64Allocation& in) : LInstructionHelper(classOpcode){ setInt64Operand(0, in); } diff --git a/src/third_party/mozjs-60/gen-config.sh b/src/third_party/mozjs-60/gen-config.sh index 76533e49fc3fb..a9aa39e656282 100755 --- a/src/third_party/mozjs-60/gen-config.sh +++ b/src/third_party/mozjs-60/gen-config.sh @@ -28,6 +28,9 @@ _xcode_setup() { } case "$_Path" in + "platform/mips64el/linux") + _CONFIG_OPTS="--host=mips64el-linux" + ;; "platform/aarch64/linux") _CONFIG_OPTS="--host=aarch64-linux" ;; diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src0.cpp new file mode 100644 index 0000000000000..ff30f0f5ee34e --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src0.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "builtin/AtomicsObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/DataViewObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/DataViewObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/DataViewObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/Eval.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/JSON.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/JSON.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/JSON.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/MapObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/ModuleObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src1.cpp new file mode 100644 index 0000000000000..e237414b4024b --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src1.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "builtin/Object.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/Profilers.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/Promise.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Promise.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Promise.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/Reflect.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/ReflectParse.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/SIMD.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src10.cpp new file mode 100644 index 0000000000000..e2b82cf222a2b --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src10.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "irregexp/RegExpParser.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "irregexp/RegExpStack.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/AliasAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/AliasAnalysisShared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/AliasAnalysisShared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/AliasAnalysisShared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/AlignmentMaskAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BacktrackingAllocator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src11.cpp new file mode 100644 index 0000000000000..6a644109bb3bb --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src11.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/Bailouts.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineBailouts.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineCacheIRCompiler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineCacheIRCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineCacheIRCompiler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineCompiler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineDebugModeOSR.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineFrame.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src12.cpp new file mode 100644 index 0000000000000..8790c5fa8ed57 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src12.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/BaselineFrameInfo.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineIC.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineInspector.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BaselineJIT.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BitSet.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/BytecodeAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src13.cpp new file mode 100644 index 0000000000000..971f2aa505352 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src13.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/C1Spewer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/CacheIR.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/CacheIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/CacheIR.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/CacheIRCompiler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/CacheIRCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/CacheIRCompiler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/CacheIRSpewer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/CacheIRSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/CacheIRSpewer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/CodeGenerator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/CompileWrappers.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src14.cpp new file mode 100644 index 0000000000000..a95c7bf45ccb4 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src14.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/Disassembler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/EagerSimdUnbox.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/EdgeCaseAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/EffectiveAddressAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/ExecutableAllocator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/FlowAliasAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/FlowAliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/FlowAliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src15.cpp new file mode 100644 index 0000000000000..ca5d63070ae0d --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src15.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/FoldLinearArithConstants.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/FoldLinearArithConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/FoldLinearArithConstants.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/InstructionReordering.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/Ion.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/IonAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/IonBuilder.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/IonCacheIRCompiler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/IonCacheIRCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/IonCacheIRCompiler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src16.cpp new file mode 100644 index 0000000000000..be9a2bc77e4f7 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src16.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/IonControlFlow.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/IonControlFlow.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/IonControlFlow.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/IonIC.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/IonIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/IonIC.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/IonOptimizationLevels.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/JSJitFrameIter.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/JSJitFrameIter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/JSJitFrameIter.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/JSONSpewer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/Jit.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Jit.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Jit.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src17.cpp new file mode 100644 index 0000000000000..63c1dbeeefc02 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src17.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/JitFrames.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/JitOptions.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/JitSpewer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/JitcodeMap.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/LICM.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/LIR.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src18.cpp new file mode 100644 index 0000000000000..d246f6c069ee3 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src18.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/Linker.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Linker.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Linker.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/LoopUnroller.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/Lowering.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/MCallOptimize.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/MIR.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/MIRGraph.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src19.cpp new file mode 100644 index 0000000000000..fc6e23603c93e --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src19.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/MacroAssembler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/MoveResolver.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/OptimizationTracking.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/PerfSpewer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/ProcessExecutableMemory.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/RangeAnalysis.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src2.cpp new file mode 100644 index 0000000000000..20c18b2d0ff20 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src2.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "builtin/Stream.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Stream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Stream.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/String.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/String.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/Symbol.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/Symbol.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/TestingFunctions.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/TypedObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/WeakMapObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src20.cpp new file mode 100644 index 0000000000000..9094c3d5af3b6 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src20.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/Recover.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/RegisterAllocator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/RematerializedFrame.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/Safepoints.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/ScalarReplacement.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/SharedIC.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src21.cpp new file mode 100644 index 0000000000000..37d06b77428ce --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src21.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/Sink.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/Snapshots.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/StupidAllocator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/TypePolicy.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/TypedObjectPrediction.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/VMFunctions.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src22.cpp new file mode 100644 index 0000000000000..bec1f949ad6d7 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src22.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/ValueNumbering.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/WasmBCE.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/WasmBCE.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/WasmBCE.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/Architecture-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/Architecture-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/Architecture-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/Assembler-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/Assembler-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/Assembler-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/Bailouts-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/Bailouts-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/Bailouts-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/BaselineCompiler-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/BaselineCompiler-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/BaselineCompiler-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src23.cpp new file mode 100644 index 0000000000000..04c81fd08b52a --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src23.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/mips-shared/BaselineIC-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/BaselineIC-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/BaselineIC-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/CodeGenerator-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/CodeGenerator-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/CodeGenerator-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/Lowering-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/Lowering-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/Lowering-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/MacroAssembler-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/MacroAssembler-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/MacroAssembler-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips-shared/MoveEmitter-mips-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips-shared/MoveEmitter-mips-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips-shared/MoveEmitter-mips-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/Architecture-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/Architecture-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/Architecture-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src24.cpp new file mode 100644 index 0000000000000..0589d2bde521c --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src24.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/mips64/Assembler-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/Assembler-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/Assembler-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/Bailouts-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/Bailouts-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/Bailouts-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/BaselineCompiler-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/BaselineCompiler-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/BaselineCompiler-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/BaselineIC-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/BaselineIC-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/BaselineIC-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/CodeGenerator-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/CodeGenerator-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/CodeGenerator-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/Lowering-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/Lowering-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/Lowering-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src25.cpp new file mode 100644 index 0000000000000..7fdc251b026b6 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src25.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/mips64/MacroAssembler-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/MacroAssembler-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/MacroAssembler-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/MoveEmitter-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/MoveEmitter-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/MoveEmitter-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/SharedIC-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/SharedIC-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/SharedIC-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/mips64/Trampoline-mips64.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/mips64/Trampoline-mips64.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/mips64/Trampoline-mips64.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/shared/Assembler-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/shared/Assembler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/shared/Assembler-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/shared/BaselineCompiler-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src26.cpp new file mode 100644 index 0000000000000..ffc43861a4037 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src26.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jit/shared/CodeGenerator-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/shared/Disassembler-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/shared/Disassembler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/shared/Disassembler-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jit/shared/Lowering-shared.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jsapi.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jsbool.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jsdate.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src27.cpp new file mode 100644 index 0000000000000..acb55205579c4 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src27.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "jsexn.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jsfriendapi.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "jsnum.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "perf/jsperf.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/BaseProxyHandler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/CrossCompartmentWrapper.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src28.cpp new file mode 100644 index 0000000000000..9eb9835cb4d90 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src28.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "proxy/DeadObjectProxy.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/OpaqueCrossCompartmentWrapper.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/Proxy.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/ScriptedProxyHandler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/ScriptedProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/ScriptedProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/SecurityWrapper.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "proxy/Wrapper.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src29.cpp new file mode 100644 index 0000000000000..9b1d61bb3d1d5 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src29.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "threading/Mutex.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "threading/Mutex.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "threading/Mutex.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "threading/ProtectedData.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "threading/ProtectedData.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "threading/ProtectedData.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "threading/posix/CpuCount.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "threading/posix/CpuCount.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "threading/posix/CpuCount.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "threading/posix/Thread.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "threading/posix/Thread.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "threading/posix/Thread.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "util/AllocPolicy.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "util/AllocPolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "util/AllocPolicy.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "util/NativeStack.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "util/NativeStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "util/NativeStack.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src3.cpp new file mode 100644 index 0000000000000..69deef22a1b32 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src3.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "builtin/WeakSetObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/Collator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/Collator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/Collator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/CommonFunctions.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/CommonFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/CommonFunctions.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/DateTimeFormat.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/DateTimeFormat.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/DateTimeFormat.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/IntlObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/IntlObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/IntlObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/NumberFormat.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/NumberFormat.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/NumberFormat.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src30.cpp new file mode 100644 index 0000000000000..2ad591c4ccd12 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src30.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "util/Printf.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "util/Printf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "util/Printf.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "util/StringBuffer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "util/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "util/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "util/Text.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "util/Text.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "util/Text.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "util/Unicode.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "util/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "util/Unicode.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/ArgumentsObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/ArrayBufferObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src31.cpp new file mode 100644 index 0000000000000..98fc4c3f4e0b0 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src31.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/AsyncFunction.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/AsyncFunction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/AsyncFunction.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/AsyncIteration.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/AsyncIteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/AsyncIteration.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/BytecodeUtil.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/BytecodeUtil.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/BytecodeUtil.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Caches.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Caches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Caches.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/CallNonGenericMethod.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/CharacterEncoding.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src32.cpp new file mode 100644 index 0000000000000..c5f682e2ada43 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src32.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/CodeCoverage.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Compression.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/DateTime.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Debugger.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/DebuggerMemory.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/EnvironmentObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/EnvironmentObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/EnvironmentObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src33.cpp new file mode 100644 index 0000000000000..b06846255626a --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src33.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/ErrorObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/ErrorReporting.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ErrorReporting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ErrorReporting.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/ForOfIterator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/GeckoProfiler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/GeckoProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/GeckoProfiler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/GeneratorObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/GlobalObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src34.cpp new file mode 100644 index 0000000000000..405f41adf3efb --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src34.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/HelperThreads.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Id.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Initialization.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Initialization.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Initialization.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Iteration.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Iteration.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/JSCompartment.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSCompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSCompartment.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/JSContext.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSContext.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSContext.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src35.cpp new file mode 100644 index 0000000000000..8003c14c8c8be --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src35.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/JSFunction.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSFunction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSFunction.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/JSONParser.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/JSONPrinter.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSONPrinter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSONPrinter.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/JSObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/JSScript.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/JSScript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/JSScript.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/MemoryMetrics.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src36.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src36.cpp new file mode 100644 index 0000000000000..9e43dfb7367a4 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src36.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/NativeObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/ObjectGroup.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/PIC.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/PosixNSPR.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Printer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Probes.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src37.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src37.cpp new file mode 100644 index 0000000000000..9ce03bde33402 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src37.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/ProxyObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Realm.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Realm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Realm.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/ReceiverGuard.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/RegExpObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/RegExpStatics.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Runtime.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src38.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src38.cpp new file mode 100644 index 0000000000000..6492ae7222b9a --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src38.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/SavedStacks.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Scope.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Scope.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Scope.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/SelfHosting.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Shape.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/SharedArrayObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/SharedImmutableStringsCache.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/SharedImmutableStringsCache.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/SharedImmutableStringsCache.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src39.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src39.cpp new file mode 100644 index 0000000000000..38779b6ea03ad --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src39.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/Stack.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Stopwatch.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/StringType.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/StringType.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/StringType.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/StructuredClone.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/SymbolType.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/SymbolType.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/SymbolType.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/TaggedProto.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src4.cpp new file mode 100644 index 0000000000000..621a63951a0c3 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src4.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "builtin/intl/PluralRules.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/PluralRules.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/PluralRules.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/RelativeTimeFormat.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/RelativeTimeFormat.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/RelativeTimeFormat.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "builtin/intl/SharedIntlData.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "builtin/intl/SharedIntlData.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "builtin/intl/SharedIntlData.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "devtools/sharkctl.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "ds/Bitmap.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "ds/Bitmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "ds/Bitmap.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "ds/LifoAlloc.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src40.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src40.cpp new file mode 100644 index 0000000000000..11d92d46139f0 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src40.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/Time.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/TypeInference.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/TypedArrayObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/UbiNode.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/UbiNodeCensus.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/UbiNodeShortestPaths.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/UbiNodeShortestPaths.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/UbiNodeShortestPaths.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src41.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src41.cpp new file mode 100644 index 0000000000000..cfc7a74b5a3e5 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src41.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "vm/UnboxedObject.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Value.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "vm/Xdr.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/AsmJS.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/AsmJS.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/AsmJS.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmBaselineCompile.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmBaselineCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmBaselineCompile.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmBinaryIterator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmBinaryIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmBinaryIterator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src42.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src42.cpp new file mode 100644 index 0000000000000..0d3e032073978 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src42.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "wasm/WasmBinaryToAST.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmBinaryToAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmBinaryToAST.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmBinaryToText.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmBinaryToText.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmBinaryToText.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmBuiltins.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmBuiltins.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmBuiltins.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmCode.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmCode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmCode.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmCompartment.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmCompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmCompartment.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmCompile.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmCompile.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src43.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src43.cpp new file mode 100644 index 0000000000000..a5dd6aa2cbd74 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src43.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "wasm/WasmDebug.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmDebug.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmDebug.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmFrameIter.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmFrameIter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmFrameIter.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmGenerator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmInstance.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmInstance.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmInstance.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmIonCompile.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmJS.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmJS.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmJS.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src44.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src44.cpp new file mode 100644 index 0000000000000..47b7883ef1d9b --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src44.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "wasm/WasmModule.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmModule.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmProcess.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmProcess.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmProcess.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmSignalHandlers.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmStubs.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmTable.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmTable.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmTable.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmTextToBinary.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmTextToBinary.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmTextToBinary.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src45.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src45.cpp new file mode 100644 index 0000000000000..f158c1fa09f70 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src45.cpp @@ -0,0 +1,28 @@ +#define MOZ_UNIFIED_BUILD +#include "wasm/WasmTextUtils.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmTextUtils.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmTextUtils.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmTypes.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmTypes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmTypes.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "wasm/WasmValidate.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "wasm/WasmValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "wasm/WasmValidate.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src5.cpp new file mode 100644 index 0000000000000..88fa04c30f093 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src5.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "ds/MemoryProtectionExceptionHandler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "ds/MemoryProtectionExceptionHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "ds/MemoryProtectionExceptionHandler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "frontend/BytecodeCompiler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "frontend/BytecodeEmitter.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "frontend/FoldConstants.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "frontend/NameFunctions.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "frontend/ParseNode.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src6.cpp new file mode 100644 index 0000000000000..f1a59d2c9af42 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src6.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "frontend/TokenStream.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Allocator.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/AtomMarking.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/AtomMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/AtomMarking.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Barrier.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/GC.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/GC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/GC.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/GCTrace.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src7.cpp new file mode 100644 index 0000000000000..0a531ec77bdfa --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src7.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "gc/Marking.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Memory.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Nursery.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/PublicIterators.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/PublicIterators.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/PublicIterators.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/RootMarking.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Statistics.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src8.cpp new file mode 100644 index 0000000000000..48a399b5c146e --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src8.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "gc/Tracer.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Verifier.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/WeakMap.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/WeakMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/WeakMap.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/WeakMapPtr.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/Zone.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "gc/ZoneGroup.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "gc/ZoneGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "gc/ZoneGroup.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src9.cpp new file mode 100644 index 0000000000000..c9d780f3d3667 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/Unified_cpp_js_src9.cpp @@ -0,0 +1,55 @@ +#define MOZ_UNIFIED_BUILD +#include "irregexp/NativeRegExpMacroAssembler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "irregexp/RegExpAST.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "irregexp/RegExpCharacters.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpCharacters.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpCharacters.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "irregexp/RegExpEngine.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "irregexp/RegExpInterpreter.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif +#include "irregexp/RegExpMacroAssembler.cpp" +#ifdef PL_ARENA_CONST_ALIGN_MASK +#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode." +#undef PL_ARENA_CONST_ALIGN_MASK +#endif +#ifdef INITGUID +#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode." +#undef INITGUID +#endif \ No newline at end of file diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/build/js-confdefs.h b/src/third_party/mozjs-60/platform/mips64el/linux/build/js-confdefs.h new file mode 100644 index 0000000000000..85385ea9e8290 --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/build/js-confdefs.h @@ -0,0 +1,88 @@ +/* List of defines generated by configure. Included with preprocessor flag, + * -include, to avoid long list of -D defines on the compile command-line. + * Do not edit. + */ + +#ifndef js_confdefs_h +#define js_confdefs_h + +// Expands to all the defines from configure. +#define CPP_THROW_NEW throw() +#define CROSS_COMPILE +#define EDITLINE 1 +#define HAVE_64BIT_BUILD 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_BYTESWAP_H 1 +#define HAVE_CLOCK_MONOTONIC 1 +#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1 +#define HAVE_DIRENT_H 1 +#define HAVE_DLOPEN 1 +#define HAVE_GETC_UNLOCKED 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GMTIME_R 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LANGINFO_CODESET 1 +#define HAVE_LIBM 1 +#define HAVE_LINUX_IF_ADDR_H 1 +#define HAVE_LINUX_PERF_EVENT_H 1 +#define HAVE_LINUX_QUOTA_H 1 +#define HAVE_LINUX_RTNETLINK_H 1 +#define HAVE_LOCALECONV 1 +#define HAVE_LOCALTIME_R 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MALLOC_USABLE_SIZE 1 +#define HAVE_MEMALIGN 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_NL_TYPES_H 1 +#define HAVE_POSIX_FADVISE 1 +#define HAVE_POSIX_FALLOCATE 1 +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PTHREAD_GETNAME_NP 1 +#define HAVE_RES_NINIT 1 +#define HAVE_SINCOS 1 +#define HAVE_SSIZE_T 1 +#define HAVE_STDINT_H 1 +#define HAVE_STRNDUP 1 +#define HAVE_SYS_MOUNT_H 1 +#define HAVE_SYS_QUEUE_H 1 +#define HAVE_SYS_QUOTA_H 1 +#define HAVE_SYS_STATFS_H 1 +#define HAVE_SYS_STATVFS_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_VFS_H 1 +#define HAVE_TM_ZONE_TM_GMTOFF 1 +#define HAVE_UNISTD_H 1 +#define HAVE_VALLOC 1 +#define HAVE_VA_COPY 1 +#define HAVE_VISIBILITY_ATTRIBUTE 1 +#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1 +#define HAVE___CXA_DEMANGLE 1 +#define JS_64BIT 1 +#define JS_CODEGEN_MIPS64 1 +#define JS_DEFAULT_JITREPORT_GRANULARITY 3 +#define JS_POSIX_NSPR 1 +#define JS_PUNBOX64 1 +#define JS_STANDALONE 1 +#define MALLOC_H +#define MALLOC_USABLE_SIZE_CONST_PTR +#define MOZILLA_UAVERSION "60.0" +#define MOZILLA_VERSION "60.3.0" +#define MOZILLA_VERSION_U 60.3.0 +#define MOZJS_MAJOR_VERSION 60 +#define MOZJS_MINOR_VERSION 3 +#define MOZ_BUILD_APP js +#define MOZ_DLL_SUFFIX ".so" +#define MOZ_GLUE_IN_PROGRAM 1 +#define MOZ_MEMORY 1 +#define MOZ_UPDATE_CHANNEL default +#define NO_NSPR_10_SUPPORT 1 +#define RELEASE_OR_BETA 1 +#define STDC_HEADERS 1 +#define VA_COPY va_copy +#define XP_LINUX 1 +#define XP_UNIX 1 +#define _REENTRANT 1 + +#include "js/RequiredDefines.h" + +#endif /* js_confdefs_h */ diff --git a/src/third_party/mozjs-60/platform/mips64el/linux/include/js-config.h b/src/third_party/mozjs-60/platform/mips64el/linux/include/js-config.h new file mode 100644 index 0000000000000..197a7c282741b --- /dev/null +++ b/src/third_party/mozjs-60/platform/mips64el/linux/include/js-config.h @@ -0,0 +1,61 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * vim: set ts=8 sw=4 et tw=78: + * + * 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/. */ + +#ifndef js_config_h +#define js_config_h + +/* Definitions set at build time that affect SpiderMonkey's public API. + This header file is generated by the SpiderMonkey configure script, + and installed along with jsapi.h. */ + +/* Define to 1 if SpiderMonkey is in debug mode. */ +/* #undef JS_DEBUG */ + +/* + * NB: We have a special case for rust-bindgen, which wants to be able to + * generate both debug and release bindings on a single objdir. + */ +#ifdef JS_DEBUG +#if !defined(DEBUG) && !defined(RUST_BINDGEN) +# error "SpiderMonkey was configured with --enable-debug, so DEBUG must be defined when including this header" +# endif +#else +# if defined(DEBUG) && !defined(RUST_BINDGEN) +# error "SpiderMonkey was configured with --disable-debug, so DEBUG must be not defined when including this header" +# endif +#endif + +/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */ +/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */ + +/* Define to 1 if SpiderMonkey should support multi-threaded clients. */ +/* #undef JS_THREADSAFE */ + +/* Define to 1 if SpiderMonkey should include ctypes support. */ +/* #undef JS_HAS_CTYPES */ + +/* Define to 1 if SpiderMonkey should support the ability to perform + entirely too much GC. */ +/* #undef JS_GC_ZEAL */ + +/* Define to 1 if SpiderMonkey should use small chunks. */ +/* #undef JS_GC_SMALL_CHUNK_SIZE */ + +/* Define to 1 to perform extra assertions and heap poisoning. */ +/* #undef JS_CRASH_DIAGNOSTICS */ + +/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */ +/* #undef JS_NUNBOX32 */ + +/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */ +#define JS_PUNBOX64 1 + +/* MOZILLA JSAPI version number components */ +#define MOZJS_MAJOR_VERSION 60 +#define MOZJS_MINOR_VERSION 3 + +#endif /* js_config_h */ diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript index d6bd665e23e65..9b57ef52203b8 100644 --- a/src/third_party/wiredtiger/SConscript +++ b/src/third_party/wiredtiger/SConscript @@ -156,6 +156,7 @@ condition_map = { 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le', 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64', 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x', + 'MIPS_HOST' : env['TARGET_ARCH'] == 'mips64el', } def filtered_filelist(f, checksum): diff --git a/src/third_party/wiredtiger/SConstruct b/src/third_party/wiredtiger/SConstruct index ccd36511c76a6..0c426b5981cc3 100644 --- a/src/third_party/wiredtiger/SConstruct +++ b/src/third_party/wiredtiger/SConstruct @@ -234,6 +234,7 @@ condition_map = { 'WINDOWS_HOST' : env['PLATFORM'] == 'win32', 'X86_HOST' : True, 'ZSERIES_HOST' : False, + 'MIPS_HOST' : env['PLATFORM'] == 'mips64el', } def filtered_filelist(f): diff --git a/src/third_party/wiredtiger/dist/filelist b/src/third_party/wiredtiger/dist/filelist index 118c3e114a077..668857f92756d 100644 --- a/src/third_party/wiredtiger/dist/filelist +++ b/src/third_party/wiredtiger/dist/filelist @@ -50,6 +50,7 @@ src/btree/row_key.c src/btree/row_modify.c src/btree/row_srch.c src/checksum/arm64/crc32-arm64.c ARM64_HOST +src/checksum/mips64el/crc32-mips64el.c MIPS_HOST src/checksum/power8/crc32.sx POWERPC_HOST src/checksum/power8/crc32_wrapper.c POWERPC_HOST src/checksum/software/checksum.c diff --git a/src/third_party/wiredtiger/src/checksum/mips64el/crc32-mips64el.c b/src/third_party/wiredtiger/src/checksum/mips64el/crc32-mips64el.c new file mode 100644 index 0000000000000..ecb7c3bb41daa --- /dev/null +++ b/src/third_party/wiredtiger/src/checksum/mips64el/crc32-mips64el.c @@ -0,0 +1,111 @@ +/*- + * Public Domain 2014-2020 MongoDB, Inc. + * Public Domain 2008-2014 WiredTiger, Inc. + * + * This is free and unencumbered software released into the public domain. + * + * Anyone is free to copy, modify, publish, use, compile, sell, or + * distribute this software, either in source code form or as a compiled + * binary, for any purpose, commercial or non-commercial, and by any + * means. + * + * In jurisdictions that recognize copyright laws, the author or authors + * of this software dedicate any and all copyright interest in the + * software to the public domain. We make this dedication for the benefit + * of the public at large and to the detriment of our heirs and + * successors. We intend this dedication to be an overt act of + * relinquishment in perpetuity of all present and future rights to this + * software under copyright law. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +#define HAVE_NO_CRC32_HARDWARE + +#if defined(__linux__) && !defined(HAVE_NO_CRC32_HARDWARE) +#include +#include + +#ifndef __GNUC__ +#define __asm__ asm +#endif + +#define CRC32CX(crc, value) \ + __asm__("crc32cx %w[c], %w[c], %x[v]" : [c] "+r"(*&crc) : [v] "r"(+value)) +#define CRC32CW(crc, value) \ + __asm__("crc32cw %w[c], %w[c], %w[v]" : [c] "+r"(*&crc) : [v] "r"(+value)) +#define CRC32CH(crc, value) \ + __asm__("crc32ch %w[c], %w[c], %w[v]" : [c] "+r"(*&crc) : [v] "r"(+value)) +#define CRC32CB(crc, value) \ + __asm__("crc32cb %w[c], %w[c], %w[v]" : [c] "+r"(*&crc) : [v] "r"(+value)) + +/* + * __wt_checksum_hw -- + * Return a checksum for a chunk of memory, computed in hardware using 8 byte steps. + */ +static uint32_t +__wt_checksum_hw(const void *chunk, size_t len) +{ + uint32_t crc; + size_t nqwords; + const uint8_t *p; + const uint64_t *p64; + + crc = 0xffffffff; + + /* Checksum one byte at a time to the first 4B boundary. */ + for (p = chunk; ((uintptr_t)p & (sizeof(uint32_t) - 1)) != 0 && len > 0; ++p, --len) { + CRC32CB(crc, *p); + } + + p64 = (const uint64_t *)p; + /* Checksum in 8B chunks. */ + for (nqwords = len / sizeof(uint64_t); nqwords; nqwords--) { + CRC32CX(crc, *p64); + p64++; + } + + /* Checksum trailing bytes one byte at a time. */ + p = (const uint8_t *)p64; + for (len &= 0x7; len > 0; ++p, len--) { + CRC32CB(crc, *p); + } + + return (~crc); +} +#endif + +extern uint32_t __wt_checksum_sw(const void *chunk, size_t len); +#if defined(__GNUC__) +extern uint32_t (*wiredtiger_crc32c_func(void))(const void *, size_t) + __attribute__((visibility("default"))); +#else +extern uint32_t (*wiredtiger_crc32c_func(void))(const void *, size_t); +#endif + +/* + * wiredtiger_crc32c_func -- + * WiredTiger: detect CRC hardware and return the checksum function. + */ +uint32_t (*wiredtiger_crc32c_func(void))(const void *, size_t) +{ +#if defined(__linux__) && !defined(HAVE_NO_CRC32_HARDWARE) + unsigned long caps = getauxval(AT_HWCAP); + + if (caps & HWCAP_MIPS_CRC32) + return (__wt_checksum_hw); + return (__wt_checksum_sw); +#else + return (__wt_checksum_sw); +#endif +}