| Index: patches/nspr-static.patch
|
| diff --git a/patches/nspr-static.patch b/patches/nspr-static.patch
|
| deleted file mode 100644
|
| index aff0f8b32a8b01886f3444204a8f10dce794acf4..0000000000000000000000000000000000000000
|
| --- a/patches/nspr-static.patch
|
| +++ /dev/null
|
| @@ -1,173 +0,0 @@
|
| -diff --git a/nspr/pr/include/prtypes.h b/nspr/pr/include/prtypes.h
|
| -index 52b3ab0..d78f580 100644
|
| ---- a/nspr/pr/include/prtypes.h
|
| -+++ b/nspr/pr/include/prtypes.h
|
| -@@ -48,7 +48,23 @@
|
| - **
|
| - **
|
| - ***********************************************************************/
|
| --#if defined(WIN32)
|
| -+#if defined(NSPR_STATIC)
|
| -+
|
| -+#define PR_EXPORT(__type) extern __type
|
| -+#define PR_EXPORT_DATA(__type) extern __type
|
| -+#define PR_IMPORT(__type) extern __type
|
| -+#define PR_IMPORT_DATA(__type) extern __type
|
| -+
|
| -+#define PR_EXTERN(__type) extern __type
|
| -+#define PR_IMPLEMENT(__type) __type
|
| -+#define PR_EXTERN_DATA(__type) extern __type
|
| -+#define PR_IMPLEMENT_DATA(__type) __type
|
| -+
|
| -+#define PR_CALLBACK
|
| -+#define PR_CALLBACK_DECL
|
| -+#define PR_STATIC_CALLBACK(__x) static __x
|
| -+
|
| -+#elif defined(WIN32)
|
| -
|
| - #define PR_EXPORT(__type) extern __declspec(dllexport) __type
|
| - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
|
| -diff --git a/nspr/pr/src/md/windows/w95dllmain.c b/nspr/pr/src/md/windows/w95dllmain.c
|
| -index 73707a6..90957c1 100644
|
| ---- a/nspr/pr/src/md/windows/w95dllmain.c
|
| -+++ b/nspr/pr/src/md/windows/w95dllmain.c
|
| -@@ -3,6 +3,8 @@
|
| - * 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 NSPR_STATIC /* See the end of w95thred.c. */
|
| -+
|
| - /*
|
| - * The DLL entry point (DllMain) for NSPR.
|
| - *
|
| -@@ -37,3 +39,5 @@ PRThread *me;
|
| - }
|
| - return TRUE;
|
| - }
|
| -+
|
| -+#endif
|
| -diff --git a/nspr/pr/src/md/windows/w95thred.c b/nspr/pr/src/md/windows/w95thred.c
|
| -index c27d982..52bfb02 100644
|
| ---- a/nspr/pr/src/md/windows/w95thred.c
|
| -+++ b/nspr/pr/src/md/windows/w95thred.c
|
| -@@ -323,3 +323,120 @@ PRThread *thread;
|
| - PR_ASSERT(thread != NULL);
|
| - return thread;
|
| - }
|
| -+
|
| -+#ifdef NSPR_STATIC
|
| -+
|
| -+// The following code is from Chromium src/base/thread_local_storage_win.cc,
|
| -+// r11329.
|
| -+
|
| -+// Copyright (c) 2006-2008 The Chromium Authors. 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.
|
| -+
|
| -+// Thread Termination Callbacks.
|
| -+// Windows doesn't support a per-thread destructor with its
|
| -+// TLS primitives. So, we build it manually by inserting a
|
| -+// function to be called on each thread's exit.
|
| -+// This magic is from http://www.codeproject.com/threads/tls.asp
|
| -+// and it works for VC++ 7.0 and later.
|
| -+
|
| -+// Force a reference to _tls_used to make the linker create the TLS directory
|
| -+// if it's not already there. (e.g. if __declspec(thread) is not used).
|
| -+// Force a reference to p_thread_callback_nspr to prevent whole program
|
| -+// optimization from discarding the variable.
|
| -+#ifdef _WIN64
|
| -+
|
| -+#pragma comment(linker, "/INCLUDE:_tls_used")
|
| -+#pragma comment(linker, "/INCLUDE:p_thread_callback_nspr")
|
| -+
|
| -+#else // _WIN64
|
| -+
|
| -+#pragma comment(linker, "/INCLUDE:__tls_used")
|
| -+#pragma comment(linker, "/INCLUDE:_p_thread_callback_nspr")
|
| -+
|
| -+#endif // _WIN64
|
| -+
|
| -+// Static callback function to call with each thread termination.
|
| -+static void NTAPI PR_OnThreadExit(PVOID module, DWORD reason, PVOID reserved)
|
| -+{
|
| -+PRThread *me;
|
| -+
|
| -+ switch (reason) {
|
| -+ case DLL_PROCESS_ATTACH:
|
| -+ break;
|
| -+ case DLL_THREAD_ATTACH:
|
| -+ break;
|
| -+ case DLL_THREAD_DETACH:
|
| -+ if (_pr_initialized) {
|
| -+ me = _MD_GET_ATTACHED_THREAD();
|
| -+ if ((me != NULL) && (me->flags & _PR_ATTACHED))
|
| -+ _PRI_DetachThread();
|
| -+ }
|
| -+ break;
|
| -+ case DLL_PROCESS_DETACH:
|
| -+ break;
|
| -+ }
|
| -+}
|
| -+
|
| -+// .CRT$XLA to .CRT$XLZ is an array of PIMAGE_TLS_CALLBACK pointers that are
|
| -+// called automatically by the OS loader code (not the CRT) when the module is
|
| -+// loaded and on thread creation. They are NOT called if the module has been
|
| -+// loaded by a LoadLibrary() call. It must have implicitly been loaded at
|
| -+// process startup.
|
| -+// By implicitly loaded, I mean that it is directly referenced by the main EXE
|
| -+// or by one of its dependent DLLs. Delay-loaded DLL doesn't count as being
|
| -+// implicitly loaded.
|
| -+//
|
| -+// See VC\crt\src\tlssup.c for reference.
|
| -+
|
| -+// The linker must not discard p_thread_callback_nspr. (We force a reference
|
| -+// to this variable with a linker /INCLUDE:symbol pragma to ensure that.) If
|
| -+// this variable is discarded, the PR_OnThreadExit function will never be
|
| -+// called.
|
| -+#ifdef _WIN64
|
| -+
|
| -+// .CRT section is merged with .rdata on x64 so it must be constant data.
|
| -+#pragma const_seg(".CRT$XLB")
|
| -+// When defining a const variable, it must have external linkage to be sure the
|
| -+// linker doesn't discard it.
|
| -+extern const PIMAGE_TLS_CALLBACK p_thread_callback_nspr;
|
| -+const PIMAGE_TLS_CALLBACK p_thread_callback_nspr = PR_OnThreadExit;
|
| -+
|
| -+// Reset the default section.
|
| -+#pragma const_seg()
|
| -+
|
| -+#else // _WIN64
|
| -+
|
| -+#pragma data_seg(".CRT$XLB")
|
| -+PIMAGE_TLS_CALLBACK p_thread_callback_nspr = PR_OnThreadExit;
|
| -+
|
| -+// Reset the default section.
|
| -+#pragma data_seg()
|
| -+
|
| -+#endif // _WIN64
|
| -+
|
| -+#endif // NSPR_STATIC
|
|
|