Hello community, here is the log from the commit of package mozilla-nspr for openSUSE:12.2 checked in at 2012-07-25 10:35:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2/mozilla-nspr (Old) and /work/SRC/openSUSE:12.2/.mozilla-nspr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "mozilla-nspr", Maintainer is "gnome-maintainers@suse.de" Changes: -------- --- /work/SRC/openSUSE:12.2/mozilla-nspr/mozilla-nspr.changes 2012-06-25 15:46:28.000000000 +0200 +++ /work/SRC/openSUSE:12.2/.mozilla-nspr.new/mozilla-nspr.changes 2012-07-25 10:35:41.000000000 +0200 @@ -1,0 +2,7 @@ +Tue Jul 24 08:49:25 UTC 2012 - wr@rosenauer.org + +- update to version 4.9.2 + * new PR_SetThreadName and PR_GetThreadName functions for setting + and getting the name of the *current thread* + +------------------------------------------------------------------- Old: ---- nspr-4.9.1.tar.bz2 New: ---- nspr-4.9.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mozilla-nspr.spec ++++++ --- /var/tmp/diff_new_pack.07BuOZ/_old 2012-07-25 10:35:42.000000000 +0200 +++ /var/tmp/diff_new_pack.07BuOZ/_new 2012-07-25 10:35:42.000000000 +0200 @@ -18,7 +18,7 @@ Name: mozilla-nspr -Version: 4.9.1 +Version: 4.9.2 Release: 0 Summary: Netscape Portable Runtime License: MPL-2.0 ++++++ nspr-4.9.1.tar.bz2 -> nspr-4.9.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/admin/repackage.sh new/nspr-4.9.2/mozilla/nsprpub/admin/repackage.sh --- old/nspr-4.9.1/mozilla/nsprpub/admin/repackage.sh 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/admin/repackage.sh 2012-07-24 10:48:27.000000000 +0200 @@ -32,10 +32,10 @@ # # ------------------------------------------------------------------ -FROMTOP=/share/builds/components/nspr20/v4.9.1 -TOTOP=./v4.9.1 -NSPRDIR=nspr-4.9.1 -SOURCETAG=NSPR_4_9_1_RTM +FROMTOP=/share/builds/components/nspr20/v4.9.2 +TOTOP=./v4.9.2 +NSPRDIR=nspr-4.9.2 +SOURCETAG=NSPR_4_9_2_RTM # # enumerate Unix object directories on /s/b/c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/config/prdepend.h new/nspr-4.9.2/mozilla/nsprpub/config/prdepend.h --- old/nspr-4.9.1/mozilla/nsprpub/config/prdepend.h 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/config/prdepend.h 2012-07-24 10:48:27.000000000 +0200 @@ -10,4 +10,3 @@ */ #error "Do not include this header file." - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/configure new/nspr-4.9.2/mozilla/nsprpub/configure --- old/nspr-4.9.1/mozilla/nsprpub/configure 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/configure 2012-07-24 10:48:27.000000000 +0200 @@ -736,7 +736,7 @@ MOD_MAJOR_VERSION=4 MOD_MINOR_VERSION=9 -MOD_PATCH_VERSION=1 +MOD_PATCH_VERSION=2 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/configure.in new/nspr-4.9.2/mozilla/nsprpub/configure.in --- old/nspr-4.9.1/mozilla/nsprpub/configure.in 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/configure.in 2012-07-24 10:48:27.000000000 +0200 @@ -15,7 +15,7 @@ dnl ======================================================== MOD_MAJOR_VERSION=4 MOD_MINOR_VERSION=9 -MOD_PATCH_VERSION=1 +MOD_PATCH_VERSION=2 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/include/md/_win95.h new/nspr-4.9.2/mozilla/nsprpub/pr/include/md/_win95.h --- old/nspr-4.9.1/mozilla/nsprpub/pr/include/md/_win95.h 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/include/md/_win95.h 2012-07-24 10:48:28.000000000 +0200 @@ -362,6 +362,7 @@ #define _MD_CREATE_THREAD _PR_MD_CREATE_THREAD #define _MD_YIELD _PR_MD_YIELD #define _MD_SET_PRIORITY _PR_MD_SET_PRIORITY +#define _MD_SET_CURRENT_THREAD_NAME _PR_MD_SET_CURRENT_THREAD_NAME #define _MD_CLEAN_THREAD _PR_MD_CLEAN_THREAD #define _MD_SETTHREADAFFINITYMASK _PR_MD_SETTHREADAFFINITYMASK #define _MD_GETTHREADAFFINITYMASK _PR_MD_GETTHREADAFFINITYMASK diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/include/md/_winnt.h new/nspr-4.9.2/mozilla/nsprpub/pr/include/md/_winnt.h --- old/nspr-4.9.1/mozilla/nsprpub/pr/include/md/_winnt.h 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/include/md/_winnt.h 2012-07-24 10:48:28.000000000 +0200 @@ -376,6 +376,7 @@ #define _MD_END_THREAD _PR_MD_END_THREAD #define _MD_YIELD _PR_MD_YIELD #define _MD_SET_PRIORITY _PR_MD_SET_PRIORITY +#define _MD_SET_CURRENT_THREAD_NAME _PR_MD_SET_CURRENT_THREAD_NAME #define _MD_CLEAN_THREAD _PR_MD_CLEAN_THREAD #define _MD_SETTHREADAFFINITYMASK _PR_MD_SETTHREADAFFINITYMASK #define _MD_GETTHREADAFFINITYMASK _PR_MD_GETTHREADAFFINITYMASK diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/include/prinit.h new/nspr-4.9.2/mozilla/nsprpub/pr/include/prinit.h --- old/nspr-4.9.1/mozilla/nsprpub/pr/include/prinit.h 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/include/prinit.h 2012-07-24 10:48:28.000000000 +0200 @@ -31,10 +31,10 @@ ** The format of the version string is ** "<major version>.<minor version>[.<patch level>] [<Beta>]" */ -#define PR_VERSION "4.9.1" +#define PR_VERSION "4.9.2" #define PR_VMAJOR 4 #define PR_VMINOR 9 -#define PR_VPATCH 1 +#define PR_VPATCH 2 #define PR_BETA PR_FALSE /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/include/private/primpl.h new/nspr-4.9.2/mozilla/nsprpub/pr/include/private/primpl.h --- old/nspr-4.9.1/mozilla/nsprpub/pr/include/private/primpl.h 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/include/private/primpl.h 2012-07-24 10:48:28.000000000 +0200 @@ -977,6 +977,9 @@ extern void _PR_MD_SET_PRIORITY(_MDThread *md, PRThreadPriority newPri); #define _PR_MD_SET_PRIORITY _MD_SET_PRIORITY +extern void _PR_MD_SET_CURRENT_THREAD_NAME(const char *name); +#define _PR_MD_SET_CURRENT_THREAD_NAME _MD_SET_CURRENT_THREAD_NAME + NSPR_API(void) _PR_MD_SUSPENDALL(void); #define _PR_MD_SUSPENDALL _MD_SUSPENDALL @@ -1533,6 +1536,7 @@ PRIntn errorStringLength; /* textLength from last call to PR_SetErrorText() */ PRInt32 errorStringSize; /* malloc()'d size of buffer | zero */ char *errorString; /* current error string | NULL */ + char *name; /* thread's name */ #if defined(_PR_PTHREADS) pthread_t id; /* pthread identifier for the thread */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/include/prthread.h new/nspr-4.9.2/mozilla/nsprpub/pr/include/prthread.h --- old/nspr-4.9.1/mozilla/nsprpub/pr/include/prthread.h 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/include/prthread.h 2012-07-24 10:48:28.000000000 +0200 @@ -145,6 +145,17 @@ NSPR_API(void) PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority); /* +** Set the name of the current thread, which will be visible in a debugger +** and accessible via a call to PR_GetThreadName(). +*/ +NSPR_API(PRStatus) PR_SetCurrentThreadName(const char *name); + +/* +** Return the name of "thread", if set. Otherwise return NULL. +*/ +NSPR_API(const char *) PR_GetThreadName(const PRThread *thread); + +/* ** This routine returns a new index for per-thread-private data table. ** The index is visible to all threads within a process. This index can ** be used with the PR_SetThreadPrivate() and PR_GetThreadPrivate() routines diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/src/md/windows/ntthread.c new/nspr-4.9.2/mozilla/nsprpub/pr/src/md/windows/ntthread.c --- old/nspr-4.9.1/mozilla/nsprpub/pr/src/md/windows/ntthread.c 2012-06-01 16:48:45.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/src/md/windows/ntthread.c 2012-07-24 10:48:28.000000000 +0200 @@ -276,6 +276,42 @@ return; } +const DWORD MS_VC_EXCEPTION = 0x406D1388; + +#pragma pack(push,8) +typedef struct tagTHREADNAME_INFO +{ + DWORD dwType; // Must be 0x1000. + LPCSTR szName; // Pointer to name (in user addr space). + DWORD dwThreadID; // Thread ID (-1=caller thread). + DWORD dwFlags; // Reserved for future use, must be zero. +} THREADNAME_INFO; +#pragma pack(pop) + +void +_PR_MD_SET_CURRENT_THREAD_NAME(const char *name) +{ +#ifdef _MSC_VER + THREADNAME_INFO info; + + if (!IsDebuggerPresent()) + return; + + info.dwType = 0x1000; + info.szName = (char*) name; + info.dwThreadID = -1; + info.dwFlags = 0; + + __try { + RaiseException(MS_VC_EXCEPTION, + 0, + sizeof(info) / sizeof(ULONG_PTR), + (ULONG_PTR*)&info); + } __except(EXCEPTION_CONTINUE_EXECUTION) { + } +#endif +} + void _PR_MD_CLEAN_THREAD(PRThread *thread) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/src/md/windows/w95thred.c new/nspr-4.9.2/mozilla/nsprpub/pr/src/md/windows/w95thred.c --- old/nspr-4.9.1/mozilla/nsprpub/pr/src/md/windows/w95thred.c 2012-06-01 16:48:45.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/src/md/windows/w95thred.c 2012-07-24 10:48:28.000000000 +0200 @@ -168,6 +168,42 @@ return; } +const DWORD MS_VC_EXCEPTION = 0x406D1388; + +#pragma pack(push,8) +typedef struct tagTHREADNAME_INFO +{ + DWORD dwType; // Must be 0x1000. + LPCSTR szName; // Pointer to name (in user addr space). + DWORD dwThreadID; // Thread ID (-1=caller thread). + DWORD dwFlags; // Reserved for future use, must be zero. +} THREADNAME_INFO; +#pragma pack(pop) + +void +_PR_MD_SET_CURRENT_THREAD_NAME(const char *name) +{ +#ifdef _MSC_VER + THREADNAME_INFO info; + + if (!IsDebuggerPresent()) + return; + + info.dwType = 0x1000; + info.szName = (char*) name; + info.dwThreadID = -1; + info.dwFlags = 0; + + __try { + RaiseException(MS_VC_EXCEPTION, + 0, + sizeof(info) / sizeof(ULONG_PTR), + (ULONG_PTR*)&info); + } __except(EXCEPTION_CONTINUE_EXECUTION) { + } +#endif +} + void _PR_MD_CLEAN_THREAD(PRThread *thread) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/src/nspr.def new/nspr-4.9.2/mozilla/nsprpub/pr/src/nspr.def --- old/nspr-4.9.1/mozilla/nsprpub/pr/src/nspr.def 2012-06-01 16:48:44.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/src/nspr.def 2012-07-24 10:48:28.000000000 +0200 @@ -446,3 +446,8 @@ ;+ global: PR_GetVersion; ;+} NSPR_4.8; +;+NSPR_4.9.2 { +;+ global: + PR_GetThreadName; + PR_SetCurrentThreadName; +;+} NSPR_4.8.9; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/src/pthreads/ptthread.c new/nspr-4.9.2/mozilla/nsprpub/pr/src/pthreads/ptthread.c --- old/nspr-4.9.1/mozilla/nsprpub/pr/src/pthreads/ptthread.c 2012-06-01 16:48:45.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/src/pthreads/ptthread.c 2012-07-24 10:48:28.000000000 +0200 @@ -19,6 +19,7 @@ #include <unistd.h> #include <string.h> #include <signal.h> +#include <dlfcn.h> #ifdef SYMBIAN /* In Open C sched_get_priority_min/max do not work properly, so we undefine @@ -794,6 +795,8 @@ PR_Free(thred->privateData); if (NULL != thred->errorString) PR_Free(thred->errorString); + if (NULL != thred->name) + PR_Free(thred->name); PR_Free(thred->stack); if (NULL != thred->syspoll_list) PR_Free(thred->syspoll_list); @@ -1612,6 +1615,88 @@ #endif /* !defined(_PR_DCETHREADS) */ +PR_IMPLEMENT(PRStatus) PR_SetCurrentThreadName(const char *name) +{ + PRThread *thread; + size_t nameLen; + int result; + + if (!name) { + PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); + return PR_FAILURE; + } + + thread = PR_GetCurrentThread(); + if (!thread) + return PR_FAILURE; + + PR_Free(thread->name); + nameLen = strlen(name); + thread->name = (char *)PR_Malloc(nameLen + 1); + if (!thread->name) + return PR_FAILURE; + memcpy(thread->name, name, nameLen + 1); + +#if defined(OPENBSD) || defined(FREEBSD) + result = pthread_set_name_np(thread->id, name); +#else /* not BSD */ + /* + * On OSX, pthread_setname_np is only available in 10.6 or later, so test + * for it at runtime. It also may not be available on all linux distros. + */ +#if defined(DARWIN) + int (*dynamic_pthread_setname_np)(const char*); +#else + int (*dynamic_pthread_setname_np)(pthread_t, const char*); +#endif + + *(void**)(&dynamic_pthread_setname_np) = + dlsym(RTLD_DEFAULT, "pthread_setname_np"); + if (!dynamic_pthread_setname_np) + return PR_SUCCESS; + + /* + * The 15-character name length limit is an experimentally determined + * length of a null-terminated string that most linux distros and OS X + * accept as an argument to pthread_setname_np. Otherwise the E2BIG + * error is returned by the function. + */ +#define SETNAME_LENGTH_CONSTRAINT 15 +#define SETNAME_FRAGMENT1_LENGTH (SETNAME_LENGTH_CONSTRAINT >> 1) +#define SETNAME_FRAGMENT2_LENGTH \ + (SETNAME_LENGTH_CONSTRAINT - SETNAME_FRAGMENT1_LENGTH - 1) + char name_dup[SETNAME_LENGTH_CONSTRAINT + 1]; + if (nameLen > SETNAME_LENGTH_CONSTRAINT) { + memcpy(name_dup, name, SETNAME_FRAGMENT1_LENGTH); + name_dup[SETNAME_FRAGMENT1_LENGTH] = '~'; + /* Note that this also copies the null terminator. */ + memcpy(name_dup + SETNAME_FRAGMENT1_LENGTH + 1, + name + nameLen - SETNAME_FRAGMENT2_LENGTH, + SETNAME_FRAGMENT2_LENGTH + 1); + name = name_dup; + } + +#if defined(DARWIN) + result = dynamic_pthread_setname_np(name); +#else + result = dynamic_pthread_setname_np(thread->id, name); +#endif +#endif /* not BSD */ + + if (result) { + PR_SetError(PR_UNKNOWN_ERROR, result); + return PR_FAILURE; + } + return PR_SUCCESS; +} + +PR_IMPLEMENT(const char *) PR_GetThreadName(const PRThread *thread) +{ + if (!thread) + return NULL; + return thread->name; +} + #endif /* defined(_PR_PTHREADS) || defined(_PR_DCETHREADS) */ /* ptthread.c */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/src/threads/combined/pruthr.c new/nspr-4.9.2/mozilla/nsprpub/pr/src/threads/combined/pruthr.c --- old/nspr-4.9.1/mozilla/nsprpub/pr/src/threads/combined/pruthr.c 2012-06-01 16:48:45.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/src/threads/combined/pruthr.c 2012-07-24 10:48:28.000000000 +0200 @@ -237,6 +237,7 @@ PR_ASSERT(thread->dumpArg == 0 && thread->dump == 0); PR_ASSERT(thread->errorString == 0 && thread->errorStringSize == 0); PR_ASSERT(thread->errorStringLength == 0); + PR_ASSERT(thread->name == 0); /* Reset data members in thread structure */ thread->errorCode = thread->osErrorCode = 0; @@ -1581,6 +1582,37 @@ } else _PR_SetThreadPriority(thread, newPri); } +PR_IMPLEMENT(PRStatus) PR_SetCurrentThreadName(const char *name) +{ + PRThread *thread; + size_t nameLen; + + if (!name) { + PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); + return PR_FAILURE; + } + + thread = PR_GetCurrentThread(); + if (!thread) + return PR_FAILURE; + + PR_Free(thread->name); + nameLen = strlen(name); + thread->name = (char *)PR_Malloc(nameLen + 1); + if (!thread->name) + return PR_FAILURE; + memcpy(thread->name, name, nameLen + 1); + _PR_MD_SET_CURRENT_THREAD_NAME(thread->name); + return PR_SUCCESS; +} + +PR_IMPLEMENT(const char *) PR_GetThreadName(const PRThread *thread) +{ + if (!thread) + return NULL; + return thread->name; +} + /* ** This routine prevents all other threads from running. This call is needed by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/src/threads/prcthr.c new/nspr-4.9.2/mozilla/nsprpub/pr/src/threads/prcthr.c --- old/nspr-4.9.1/mozilla/nsprpub/pr/src/threads/prcthr.c 2012-06-01 16:48:45.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/src/threads/prcthr.c 2012-07-24 10:48:28.000000000 +0200 @@ -35,6 +35,7 @@ } thread->dump = 0; + PR_DELETE(thread->name); PR_DELETE(thread->errorString); thread->errorStringSize = 0; thread->errorStringLength = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nspr-4.9.1/mozilla/nsprpub/pr/tests/vercheck.c new/nspr-4.9.2/mozilla/nsprpub/pr/tests/vercheck.c --- old/nspr-4.9.1/mozilla/nsprpub/pr/tests/vercheck.c 2012-06-01 16:48:45.000000000 +0200 +++ new/nspr-4.9.2/mozilla/nsprpub/pr/tests/vercheck.c 2012-07-24 10:48:28.000000000 +0200 @@ -20,9 +20,10 @@ #include <stdlib.h> /* - * This release (4.9.1) is backward compatible with the + * This release (4.9.2) is backward compatible with the * 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x, 4.5.x, 4.6.x, 4.7.x, - * 4.8.x, and 4.9 releases. It, of course, is compatible with itself. + * 4.8.x, 4.9, and 4.9.1 releases. It, of course, + * is compatible with itself. */ static char *compatible_version[] = { "4.0", "4.0.1", "4.1", "4.1.1", "4.1.2", "4.1.3", @@ -34,7 +35,7 @@ "4.7.6", "4.8", "4.8.1", "4.8.2", "4.8.3", "4.8.4", "4.8.5", "4.8.6", "4.8.7", "4.8.8", "4.8.9", - "4.9", PR_VERSION + "4.9", "4.9.1", PR_VERSION }; /* @@ -49,7 +50,7 @@ "3.0", "3.0.1", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.5", "3.5.1", - "4.9.2", + "4.9.3", "4.10", "4.10.1", "10.0", "11.1", "12.14.20" }; -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org