From owner-freebsd-gecko@FreeBSD.ORG Fri Apr 29 00:46:35 2011 Return-Path: Delivered-To: freebsd-gecko@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E952106564A for ; Fri, 29 Apr 2011 00:46:35 +0000 (UTC) (envelope-from inyaoo@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id A75DF8FC0A for ; Fri, 29 Apr 2011 00:46:34 +0000 (UTC) Received: by bwz12 with SMTP id 12so3931829bwz.13 for ; Thu, 28 Apr 2011 17:46:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=nlZgjPIw3+5BxF/fPdP1yS2OgXmaCMQclNPYJTESCe8=; b=d724RdXmZBgNpnBUwrx+IDeSawmlaLjZcrbcPe6wwvaxvGll/8ZAxSVt+GDycIFYLh tYDoNyiuFVaxPAGdnesLK/s+b1vdiTAfqHtZk8WXdMgPOAaLrnq2jIISJEIXlRD853id AR+iEAGjphMIqEtnc4itAFaw5sJpXOo7qWPys= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=S2ENs+rSkrtR0AZDLkD1LfRbtNWjiEAk2bhUMiMXJAM9AAWajmWh7O0inGZutGZIIx NBXvhGqMVb4EoPriShMSeIU/93Ly4fZi4zfhLKKQaqQzgOMhNl4RkyM8V653YO7Xba+7 1fHC8YRulycC+7KPO15PNFbEww9DwCQ3PFE0M= Received: by 10.204.19.16 with SMTP id y16mr1271068bka.186.1304037993688; Thu, 28 Apr 2011 17:46:33 -0700 (PDT) Received: from localhost (gpftor6.privacyfoundation.de [62.212.67.209]) by mx.google.com with ESMTPS id q24sm1308641bks.21.2011.04.28.17.46.28 (version=SSLv3 cipher=OTHER); Thu, 28 Apr 2011 17:46:30 -0700 (PDT) From: Pan Tsu To: freebsd-gecko@freebsd.org References: <201104282319.p3SNJu3R000246@trillian.chruetertee.ch> Date: Fri, 29 Apr 2011 04:46:14 +0400 In-Reply-To: <201104282319.p3SNJu3R000246@trillian.chruetertee.ch> (svn-freebsd-gecko@chruetertee.ch's message of "Thu, 28 Apr 2011 23:19:56 GMT") Message-ID: <86bozpnauh.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Cc: freebsd-chromium@freebsd.org Subject: Re: [SVN-Commit] r544 - in branches/experimental/www/firefox-devel: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2011 00:46:35 -0000 svn-freebsd-gecko@chruetertee.ch writes: > Author: flo > Date: Thu Apr 28 23:19:55 2011 > New Revision: 544 > > Log: > - add a new firefox-devel port which contains a snapshot of the Mozilla Firefox > Aurora Channel. Mozilla does not provide source tar balls for this channel > we will create snapshots on a regular basis. > - enable ipc, based on a patch by Pan Tsu [...] > #elif defined(OS_LINUX) > - return syscall(__NR_gettid); > + // TODO(BSD): find a better thread ID > + return reinterpret_cast(pthread_self()); > #endif Why not use undocumented thr_self(2) syscall like emulators/wine does? $ ./test pthread_self() = 159413248 thr_self() = 101107 pthread_getthreadid_np() = 101107 procstat -t = 101107 // wine-1.3.18/dlls/ntdll/server.c static int get_unix_tid(void) { int ret = -1; #ifdef linux ret = syscall( SYS_gettid ); #elif defined(__sun) ret = pthread_self(); #elif defined(__APPLE__) ret = mach_thread_self(); mach_port_deallocate(mach_task_self(), ret); #elif defined(__FreeBSD__) long lwpid; thr_self( &lwpid ); ret = lwpid; #endif return ret; } %% Index: www/firefox-devel/files/patch-ipc-chromium-src-base-platform_thread_posix.cc =================================================================== --- www/firefox-devel/files/patch-ipc-chromium-src-base-platform_thread_posix.cc (revision 544) +++ www/firefox-devel/files/patch-ipc-chromium-src-base-platform_thread_posix.cc (working copy) @@ -1,12 +1,25 @@ --- ipc/chromium/src/base/platform_thread_posix.cc.orig 2011-04-27 09:34:28.000000000 +0200 +++ ipc/chromium/src/base/platform_thread_posix.cc 2011-04-27 19:47:36.344446266 +0200 -@@ -34,7 +33,8 @@ +@@ -10,6 +10,7 @@ + #include + #elif defined(OS_LINUX) + #include ++#include + #include + #endif + +@@ -34,7 +33,13 @@ PlatformThreadId PlatformThread::Current #if defined(OS_MACOSX) return mach_thread_self(); #elif defined(OS_LINUX) - return syscall(__NR_gettid); -+ // TODO(BSD): find a better thread ID -+ return reinterpret_cast(pthread_self()); ++ long lwpid; ++#if __FreeBSD_version < 900031 ++ thr_self(&lwpid); ++#else ++ lwpid = pthread_getthreadid_np(); ++#endif ++ return lwpid; #endif } %%