From owner-freebsd-gecko@FreeBSD.ORG Sun Sep 27 14:27:27 2009 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 0A6EA1065676; Sun, 27 Sep 2009 14:27:27 +0000 (UTC) (envelope-from beat@FreeBSD.org) Received: from marvin.chruetertee.ch (marvin.chruetertee.ch [217.150.245.55]) by mx1.freebsd.org (Postfix) with ESMTP id 9AA158FC12; Sun, 27 Sep 2009 14:27:26 +0000 (UTC) Received: from daedalus.network.local (84-26.3-85.cust.bluewin.ch [85.3.26.84]) (authenticated bits=0) by marvin.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8RE9IXK075453 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Sun, 27 Sep 2009 14:09:18 GMT (envelope-from beat@FreeBSD.org) Message-ID: <4ABF7295.1080302@FreeBSD.org> Date: Sun, 27 Sep 2009 16:11:33 +0200 From: Beat Gaetzi User-Agent: Thunderbird 2.0.0.23 (X11/20090821) MIME-Version: 1.0 To: tabthorpe@FreeBSD.org X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-gecko@FreeBSD.org, Martin Wilke Subject: Building misc/xiphos with libxul gecko provider 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: Sun, 27 Sep 2009 14:27:27 -0000 Hi Thomas, We are going to remove xulrunner, Firefox 2 and Mozilla from the ports tree. We created a patch which switches all ports using xulrunner, firefox or mozilla gecko provider to libxul. Unfortunately three ports failed during the exp-run. One of them is misc/xiphos which is maintained by you. I tried to fix this problem but was not successful. Could you please take a look at this problem. Is it possible to use xiphos with libxul gecko provider? If not, should we remove the port? Patch which was tested on pointyhat is available here (updated version for current ports tree): http://tmp.chruetertee.ch/gecko-ff-removal-part2-v0.3.patch Pointyhat log is here: http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.7-exp.20090917174615/xiphos-3.1.1.log Thanks, Beat, on behalf of the FreeBSD-Gecko Team From owner-freebsd-gecko@FreeBSD.ORG Sun Sep 27 14:27:27 2009 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 E82B6106566C; Sun, 27 Sep 2009 14:27:27 +0000 (UTC) (envelope-from beat@FreeBSD.org) Received: from marvin.chruetertee.ch (marvin.chruetertee.ch [217.150.245.55]) by mx1.freebsd.org (Postfix) with ESMTP id 841068FC13; Sun, 27 Sep 2009 14:27:27 +0000 (UTC) Received: from daedalus.network.local (84-26.3-85.cust.bluewin.ch [85.3.26.84]) (authenticated bits=0) by marvin.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8RECmBZ095482 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Sun, 27 Sep 2009 14:12:49 GMT (envelope-from beat@FreeBSD.org) Message-ID: <4ABF7367.6050300@FreeBSD.org> Date: Sun, 27 Sep 2009 16:15:03 +0200 From: Beat Gaetzi User-Agent: Thunderbird 2.0.0.23 (X11/20090821) MIME-Version: 1.0 To: gnome@FreeBSD.org X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-gecko@FreeBSD.org, Martin Wilke Subject: Building devel/gtkmozedit with libxul gecko provider 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: Sun, 27 Sep 2009 14:27:28 -0000 Hi, We are going to remove xulrunner, Firefox 2 and Mozilla from the ports tree. We created a patch which switches all ports using xulrunner, firefox or mozilla gecko provider to libxul. Unfortunately three ports failed during the exp-run. One of them is devel/gtkmozedit which is maintained by the Gnome team. I tried to fix this problem but was not successful. Could you please take a look at this problem. Is it possible to use gtkmozedit with libxul gecko provider? If not, should we remove the port? Patch which was tested on pointyhat is available here (updated version for current ports tree): http://tmp.chruetertee.ch/gecko-ff-removal-part2-v0.3.patch Pointyhat log is here: http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.7-exp.20090917174615/gtkmozedit-0.3.0_5.log Thanks, Beat, on behalf of the FreeBSD-Gecko Team From owner-freebsd-gecko@FreeBSD.ORG Sun Sep 27 14:27:28 2009 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 DC910106566B; Sun, 27 Sep 2009 14:27:28 +0000 (UTC) (envelope-from beat@FreeBSD.org) Received: from marvin.chruetertee.ch (marvin.chruetertee.ch [217.150.245.55]) by mx1.freebsd.org (Postfix) with ESMTP id 787C08FC15; Sun, 27 Sep 2009 14:27:28 +0000 (UTC) Received: from daedalus.network.local (84-26.3-85.cust.bluewin.ch [85.3.26.84]) (authenticated bits=0) by marvin.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8RE67aa074281 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Sun, 27 Sep 2009 14:06:08 GMT (envelope-from beat@FreeBSD.org) Message-ID: <4ABF71D6.3070502@FreeBSD.org> Date: Sun, 27 Sep 2009 16:08:22 +0200 From: Beat Gaetzi User-Agent: Thunderbird 2.0.0.23 (X11/20090821) MIME-Version: 1.0 To: rnoland@FreeBSD.org X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-gecko@FreeBSD.org, Martin Wilke Subject: Building x11-toolkits/swt-devel with libxul gecko provider 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: Sun, 27 Sep 2009 14:27:28 -0000 Hi Robert, We are going to remove xulrunner, Firefox 2 and Mozilla from the ports tree. We created a patch which switches all ports using xulrunner, firefox or mozilla gecko provider to libxul. Unfortunately three ports failed during the exp-run. One of them is x11-toolkits/swt-devel which is maintained by you. I tried to fix this problem but was not successful. Could you please take a look at this problem. Is it possible to use swt-devel with libxul gecko provider? If not, should we remove the port? Patch which was tested on pointyhat is available here (updated version for current ports tree): http://tmp.chruetertee.ch/gecko-ff-removal-part2-v0.3.patch Pointyhat log is here: http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.7-exp.20090917174615/swt-devel-3.5.m6_1,1.log Thanks, Beat, on behalf of the FreeBSD-Gecko Team From owner-freebsd-gecko@FreeBSD.ORG Sun Sep 27 14:48:22 2009 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 E1181106568F; Sun, 27 Sep 2009 14:48:22 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from gizmo.2hip.net (gizmo.2hip.net [64.74.207.195]) by mx1.freebsd.org (Postfix) with ESMTP id 92D7B8FC1A; Sun, 27 Sep 2009 14:48:22 +0000 (UTC) Received: from [192.168.1.4] (adsl-241-169-177.bna.bellsouth.net [74.241.169.177]) (authenticated bits=0) by gizmo.2hip.net (8.14.3/8.14.3) with ESMTP id n8REZL9N047295 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Sun, 27 Sep 2009 10:35:23 -0400 (EDT) (envelope-from rnoland@FreeBSD.org) From: Robert Noland To: Beat Gaetzi In-Reply-To: <4ABF71D6.3070502@FreeBSD.org> References: <4ABF71D6.3070502@FreeBSD.org> Content-Type: text/plain Organization: FreeBSD Date: Sun, 27 Sep 2009 09:35:16 -0500 Message-Id: <1254062116.2048.1450.camel@balrog.2hip.net> Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_PBL, RDNS_DYNAMIC,SPF_SOFTFAIL autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on gizmo.2hip.net Cc: freebsd-gecko@FreeBSD.org, Martin Wilke Subject: Re: Building x11-toolkits/swt-devel with libxul gecko provider 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: Sun, 27 Sep 2009 14:48:23 -0000 On Sun, 2009-09-27 at 16:08 +0200, Beat Gaetzi wrote: > Hi Robert, > > We are going to remove xulrunner, Firefox 2 and Mozilla from the ports > tree. We created a patch which switches all ports using xulrunner, > firefox or mozilla gecko provider to libxul. > Unfortunately three ports failed during the exp-run. One of them is > x11-toolkits/swt-devel which is maintained by you. I tried to fix this > problem but was not successful. > Could you please take a look at this problem. Is it possible to use > swt-devel with libxul gecko provider? If not, should we remove the port? so, I have updated ports of both swt and swt-devel that use libxul. swt actually builds a seperate library for libxul support, so I've been trying to decide the best way to deal with it. I have been thinking of going ahead and dropping traditional GECKO support, but the primary consumer of swt that I know of is vuze. In vuze, you have to specifically configure it (runtime config setting) to use libxul, which I can just add a note to pkg-message about. The primary issue that I've been hoping would get fixed is that a search in vuze doesn't show any results when using libxul. Everything else works properly. The vuze guys indicated that it is a bug in swt, but it persists. The feature still works correctly with traditional GECKO support, so I was resisting a forced move to libxul. Both ports are more or less ready to commit though... As well as an update to vuze... robert. > Patch which was tested on pointyhat is available here (updated version > for current ports tree): > http://tmp.chruetertee.ch/gecko-ff-removal-part2-v0.3.patch > > Pointyhat log is here: > http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.7-exp.20090917174615/swt-devel-3.5.m6_1,1.log > > Thanks, > Beat, on behalf of the FreeBSD-Gecko Team > -- Robert Noland FreeBSD From owner-freebsd-gecko@FreeBSD.ORG Sun Sep 27 16:27:00 2009 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 70C2F106566B; Sun, 27 Sep 2009 16:27:00 +0000 (UTC) (envelope-from thomas@goodking.ca) Received: from mail-yw0-f187.google.com (mail-yw0-f187.google.com [209.85.211.187]) by mx1.freebsd.org (Postfix) with ESMTP id 1A4608FC14; Sun, 27 Sep 2009 16:26:59 +0000 (UTC) Received: by ywh17 with SMTP id 17so4460200ywh.3 for ; Sun, 27 Sep 2009 09:26:59 -0700 (PDT) Received: by 10.150.44.27 with SMTP id r27mr6005774ybr.263.1254067129903; Sun, 27 Sep 2009 08:58:49 -0700 (PDT) Received: from goodking.goodking.ca (dynamic-216-211-42-235.tbaytel.net [216.211.42.235]) by mx.google.com with ESMTPS id 22sm1040719ywh.0.2009.09.27.08.58.48 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 27 Sep 2009 08:58:49 -0700 (PDT) Sender: Thomas Abthorpe From: Thomas Abthorpe Organization: FreeBSD.GoodKing.Ca To: Beat Gaetzi Date: Sun, 27 Sep 2009 11:57:52 -0400 User-Agent: KMail/1.9.10 References: <4ABF7295.1080302@FreeBSD.org> In-Reply-To: <4ABF7295.1080302@FreeBSD.org> X-Face: /|[9,PbEOB6g>?2^*Sc|"~6:Ro"O>Nv\Rfkv\42g)=?utf-8?q?TuAYG=26+bD=5CpCJTX31s=5Fp=7Bc7=5D5a=2ED=2E=0A=09Y?=@QddKu_I[XB8; euK=^[=L1I#]rgi[0jgz^4qCTwlj]3kJ)]vc}O"HrA14hN)=?utf-8?q?aXewJPTi=7C=0A=09Pt=7BS3=23Vw4x-?="/:& Cc: freebsd-gecko@freebsd.org Subject: Re: Building misc/xiphos with libxul gecko provider 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: Sun, 27 Sep 2009 16:27:00 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On September 27, 2009 10:11:33 am Beat Gaetzi wrote: > Could you please take a look at this problem. Is it possible to use > xiphos with libxul gecko provider? If not, should we remove the port? Xiphos has been a work in progress, I will finish it up within the next week. Thomas - -- Thomas Abthorpe | FreeBSD Committer tabthorpe@FreeBSD.org | http://people.freebsd.org/~tabthorpe -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (FreeBSD) iEYEARECAAYFAkq/i6sACgkQ5Gm/jNBp8qCeZACfZL/vrz9qleRn1LmmKfdmNPC4 p7EAnjHIcxqkV45jpCOOJyVGf0afVPQc =FMmV -----END PGP SIGNATURE----- From owner-freebsd-gecko@FreeBSD.ORG Sun Sep 27 20:35:18 2009 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 456451065670 for ; Sun, 27 Sep 2009 20:35:18 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 6B3488FC1E for ; Sun, 27 Sep 2009 20:35:17 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8RKZG35061353 for ; Sun, 27 Sep 2009 20:35:16 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8RKZBmd060488 for freebsd-gecko@freebsd.org; Sun, 27 Sep 2009 20:35:11 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Sun, 27 Sep 2009 20:35:11 GMT Message-Id: <200909272035.n8RKZBmd060488@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r117 - in trunk/mail/thunderbird: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Sep 2009 20:35:18 -0000 Author: andreast Date: Sun Sep 27 20:35:10 2009 New Revision: 117 Log: Add powerpc support for thunderbird. Added: trunk/mail/thunderbird/files/patch-xptcall-powerpc Modified: trunk/mail/thunderbird/Makefile trunk/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Modified: trunk/mail/thunderbird/Makefile ============================================================================== --- trunk/mail/thunderbird/Makefile Fri Sep 25 09:47:28 2009 (r116) +++ trunk/mail/thunderbird/Makefile Sun Sep 27 20:35:10 2009 (r117) @@ -23,6 +23,7 @@ HAS_CONFIGURE= yes USE_BZIP2= yes USE_GMAKE= yes +USE_GECKO= gecko WANT_PERL= yes MOZ_EXTENSIONS= wallet,spellcheck,xmlextras,webservices,auth,transformiix @@ -43,7 +44,8 @@ .include -GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} pthread | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} +GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED +} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} .if (${ARCH}=="sparc64" && ${OSVERSION} < 601101) IGNORE= core dumps on ${ARCH}, kern.osreldate>=601101 needed @@ -88,5 +90,4 @@ ${INSTALL_DATA} ${WRKSRC}/other-licenses/branding/${PORTNAME}/default.xpm \ ${PORTNAME_ICON} -.include "${PORTSDIR}/www/mozilla/Makefile.common" .include Modified: trunk/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in ============================================================================== --- trunk/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Fri Sep 25 09:47:28 2009 (r116) +++ trunk/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Sun Sep 27 20:35:10 2009 (r117) @@ -1,6 +1,6 @@ ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004 -@@ -49,6 +49,9 @@ +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2008-02-19 22:11:34.000000000 +0100 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-09-11 23:18:37.000000000 +0200 +@@ -66,6 +66,9 @@ ifeq (86,$(findstring 86,$(OS_TEST))) CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp endif @@ -9,8 +9,8 @@ +endif endif # - # New code for Linux, et. al., with gcc -@@ -60,7 +63,7 @@ + # OpenBSD/amd64 +@@ -88,7 +91,7 @@ endif endif # IA64 Linux @@ -19,8 +19,8 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -106,9 +109,15 @@ - ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s +@@ -151,9 +154,15 @@ + CPPSRCS := xptcinvoke_openbsd_alpha.cpp xptcstubs_openbsd_alpha.cpp endif # +# FreeBSD/Alpha @@ -36,12 +36,25 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -294,6 +303,15 @@ - ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc) - CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp - ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s +@@ -293,6 +302,14 @@ + endif + + # ++# FreeBSD/PPC ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDpowerpc) ++CPPSRCS := xptcinvoke_ppc_freebsd.cpp xptcstubs_ppc_freebsd.cpp ++ASFILES := xptcinvoke_asm_ppc_freebsd.s xptcstubs_asm_ppc_freebsd.s +endif ++ +# + # Linux/PPC + # + ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc) +@@ -364,6 +381,15 @@ + ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s + endif + # +# FreeBSD/SPARC64 +# +ifeq ($(OS_ARCH),FreeBSD) @@ -49,6 +62,8 @@ +CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp +ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s +endif - endif - # ++endif ++# # Solaris/SPARC + # + ifeq ($(OS_ARCH),SunOS) Added: trunk/mail/thunderbird/files/patch-xptcall-powerpc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/mail/thunderbird/files/patch-xptcall-powerpc Sun Sep 27 20:35:10 2009 (r117) @@ -0,0 +1,584 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s.orig 2009-09-11 23:18:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s 2009-09-19 21:18:53.000000000 +0200 +@@ -0,0 +1,110 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl XPTC_InvokeByIndex ++ .type XPTC_InvokeByIndex,@function ++ ++# ++# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++# PRUint32 paramCount, nsXPTCVariant* params) ++# ++ ++XPTC_InvokeByIndex: ++ stwu sp,-32(sp) # setup standard stack frame ++ mflr r0 # save LR ++ stw r3,8(sp) # r3 <= that ++ stw r4,12(sp) # r4 <= methodIndex ++ stw r30,16(sp) ++ stw r31,20(sp) ++ ++ stw r0,36(sp) # store LR backchain ++ mr r31,sp ++ ++ rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f ++ addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96 ++ lwz r9,0(sp) # r9 = backchain ++ neg r0,r0 ++ stwux r9,sp,r0 # reserve stack sapce and save SP backchain ++ ++ addi r3,sp,8 # r3 <= args ++ mr r4,r5 # r4 <= paramCount ++ mr r5,r6 # r5 <= params ++ add r6,r3,r10 # r6 <= gpregs ( == args + r10 ) ++ mr r30,r6 # store in r30 for use later... ++ addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 ) ++ ++ bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs) ++ ++ lfd f1,32(r30) # load FP registers with method parameters ++ lfd f2,40(r30) ++ lfd f3,48(r30) ++ lfd f4,56(r30) ++ lfd f5,64(r30) ++ lfd f6,72(r30) ++ lfd f7,80(r30) ++ lfd f8,88(r30) ++ ++ lwz r3,8(r31) # r3 <= that ++ lwz r4,12(r31) # r4 <= methodIndex ++ lwz r5,0(r3) # r5 <= vtable ( == *that ) ++ ++ slwi r4,r4,2 # convert to offset ( *= 4 ) ++ lwzx r0,r5,r4 # r0 <= methodpointer ( == vtable + offset ) ++ ++ lwz r4,4(r30) # load GP regs with method parameters ++ lwz r5,8(r30) ++ lwz r6,12(r30) ++ lwz r7,16(r30) ++ lwz r8,20(r30) ++ lwz r9,24(r30) ++ lwz r10,28(r30) ++ ++ mtlr r0 # copy methodpointer to LR ++ blrl # call method ++ ++ lwz r30,16(r31) # restore r30 & r31 ++ lwz r31,20(r31) ++ ++ lwz r11,0(sp) # clean up the stack ++ lwz r0,4(r11) ++ mtlr r0 ++ mr sp,r11 ++ blr +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp.orig 2009-09-11 23:18:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp 2009-09-19 21:22:23.000000000 +0200 +@@ -0,0 +1,141 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++// The purpose of XPTC_InvokeByIndex() is to map a platform ++// indepenpent call to the platform ABI. To do that, ++// XPTC_InvokeByIndex() has to determine the method to call via vtable ++// access. The parameters for the method are read from the ++// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC ++// ABI this means that the first 8 integral and floating point ++// parameters are passed in registers. ++ ++#include "xptcprivate.h" ++ ++// 8 integral parameters are passed in registers ++#define GPR_COUNT 8 ++ ++// 8 floating point parameters are passed in registers, floats are ++// promoted to doubles when passed in registers ++#define FPR_COUNT 8 ++ ++extern "C" PRUint32 ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ return PRUint32(((paramCount * 2) + 3) & ~3); ++} ++ ++extern "C" void ++invoke_copy_to_stack(PRUint32* d, ++ PRUint32 paramCount, ++ nsXPTCVariant* s, ++ PRUint32* gpregs, ++ double* fpregs) ++{ ++ PRUint32 gpr = 1; // skip one GP reg for 'that' ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(uint32 i = 0; i < paramCount; i++, s++) { ++ if(s->IsPtrData()) ++ tempu32 = (PRUint32) s->ptr; ++ else { ++ switch(s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: tempu32 = s->val.i8; break; ++ case nsXPTType::T_I16: tempu32 = s->val.i16; break; ++ case nsXPTType::T_I32: tempu32 = s->val.i32; break; ++ case nsXPTType::T_I64: tempu64 = s->val.i64; break; ++ case nsXPTType::T_U8: tempu32 = s->val.u8; break; ++ case nsXPTType::T_U16: tempu32 = s->val.u16; break; ++ case nsXPTType::T_U32: tempu32 = s->val.u32; break; ++ case nsXPTType::T_U64: tempu64 = s->val.u64; break; ++ case nsXPTType::T_BOOL: tempu32 = s->val.b; break; ++ case nsXPTType::T_CHAR: tempu32 = s->val.c; break; ++ case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break; ++ default: tempu32 = (PRUint32) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.d; ++ else { ++ if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack ++ *((double*) d) = s->val.d; ++ d += 2; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles ++ else ++ *((float*) d++) = s->val.f; ++ } ++ else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 ++ || s->type == nsXPTType::T_U64)) { ++ if ((gpr + 1) < GPR_COUNT) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ *((PRUint64*) &gpregs[gpr]) = tempu64; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack ++ *((PRUint64*) d) = tempu64; ++ d += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ gpregs[gpr++] = tempu32; ++ else ++ *d++ = tempu32; ++ } ++ ++ } ++} ++ ++extern "C" ++XPTC_PUBLIC_API(nsresult) ++XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant* params); +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s.orig 2009-09-11 23:18:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s 2009-09-11 23:18:37.000000000 +0200 +@@ -0,0 +1,89 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++ ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl SharedStub ++ .type SharedStub,@function ++ ++SharedStub: ++ stwu sp,-112(sp) # room for ++ # linkage (8), ++ # gprData (32), ++ # fprData (64), ++ # stack alignment(8) ++ mflr r0 ++ stw r0,116(sp) # save LR backchain ++ ++ stw r4,12(sp) # save GP registers ++ stw r5,16(sp) # (n.b. that we don't save r3 ++ stw r6,20(sp) # because PrepareAndDispatch() is savvy) ++ stw r7,24(sp) ++ stw r8,28(sp) ++ stw r9,32(sp) ++ stw r10,36(sp) ++ ++ stfd f1,40(sp) # save FP registers ++ stfd f2,48(sp) ++ stfd f3,56(sp) ++ stfd f4,64(sp) ++ stfd f5,72(sp) ++ stfd f6,80(sp) ++ stfd f7,88(sp) ++ stfd f8,96(sp) ++ ++ # r3 has the 'self' pointer already ++ ++ mr r4,r11 # r4 <= methodIndex selector, passed ++ # via r11 in the nsXPTCStubBase::StubXX() call ++ ++ addi r5,sp,120 # r5 <= pointer to callers args area, ++ # beyond r3-r10/f1-f8 mapped range ++ ++ addi r6,sp,8 # r6 <= gprData ++ addi r7,sp,40 # r7 <= fprData ++ ++ bl PrepareAndDispatch@local # Go! ++ ++ lwz r0,116(sp) # restore LR ++ mtlr r0 ++ la sp,112(sp) # clean up the stack ++ blr ++ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp.orig 2009-09-11 23:18:38.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp 2009-09-19 21:48:12.000000000 +0200 +@@ -0,0 +1,232 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++ ++// The PPC/SYSV ABI passes the first 8 integral ++// parameters and the first 8 floating point parameters in registers ++// (r3-r10 and f1-f8), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. The stack pointer has to retain 16-byte alignment, longlongs ++// and doubles are aligned on 8-byte boundaries. ++ ++#define PARAM_BUFFER_COUNT 16 ++#define GPR_COUNT 8 ++#define FPR_COUNT 8 ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gprData[]' contains the arguments passed in integer registers ++// - 'fprData[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, ++ PRUint32 methodIndex, ++ PRUint32* args, ++ PRUint32 *gprData, ++ double *fprData) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ if (! iface_info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint32* ap = args; ++ PRUint32 gpr = 1; // skip one GPR register ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ dp->val.d = fprData[fpr++]; ++ else { ++ if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack ++ dp->val.d = *(double*) ap; ++ ap += 2; ++ } ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && (type == nsXPTType::T_I64 ++ || type == nsXPTType::T_U64)) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ if ((gpr + 1) < GPR_COUNT) { ++ tempu64 = *(PRUint64*) &gprData[gpr]; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack ++ tempu64 = *(PRUint64*) ap; ++ ap += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ tempu32 = gprData[gpr++]; ++ else ++ tempu32 = *ap++; ++ } ++ ++ if(param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) tempu32; ++ continue; ++ } ++ ++ switch(type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++// Load r11 with the constant 'n' and branch to SharedStub(). ++ ++// As G++3 ABI contains the length of the functionname in the mangled ++// name, it is difficult to get a generic assembler mechanism like ++// in the G++ 2.95 case. ++// Create names would be like: ++// _ZN14nsXPTCStubBase5Stub1Ev ++// _ZN14nsXPTCStubBase6Stub12Ev ++// _ZN14nsXPTCStubBase7Stub123Ev ++// _ZN14nsXPTCStubBase8Stub1234Ev ++// etc. ++// Use assembler directives to get the names right... ++ ++# define STUB_ENTRY(n) \ ++__asm__ ( \ ++ ".align 2 \n\t" \ ++ ".if "#n" < 10 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 100 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 1000 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ ++ \ ++ ".else \n\t" \ ++ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \ ++ ".endif \n\t" \ ++ \ ++ "li 11,"#n" \n\t" \ ++ "b SharedStub@local \n" \ ++); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" From owner-freebsd-gecko@FreeBSD.ORG Mon Sep 28 11:06:54 2009 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 A11A4106566B for ; Mon, 28 Sep 2009 11:06:54 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 8DFBF8FC20 for ; Mon, 28 Sep 2009 11:06:54 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n8SB6smk064002 for ; Mon, 28 Sep 2009 11:06:54 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n8SB6rpv063998 for freebsd-gecko@FreeBSD.org; Mon, 28 Sep 2009 11:06:53 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 28 Sep 2009 11:06:53 GMT Message-Id: <200909281106.n8SB6rpv063998@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-gecko@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-gecko@FreeBSD.org 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: Mon, 28 Sep 2009 11:06:54 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o ports/134121 gecko www/firefox3-devel packaging errors f ports/132231 gecko [PATCH] www/firefox3: Add option to build with Profile f ports/128694 gecko www/firefox3 - Firefox 3 corrupts PostScript printer f o ports/103529 gecko www/seamonkey: enable SVG and Pango font rendering sup 4 problems total. From owner-freebsd-gecko@FreeBSD.ORG Mon Sep 28 11:07:11 2009 Return-Path: Delivered-To: gecko@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31EEF1065672 for ; Mon, 28 Sep 2009 11:07:11 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 0610F8FC20 for ; Mon, 28 Sep 2009 11:07:11 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n8SB7ALJ064288 for ; Mon, 28 Sep 2009 11:07:10 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n8SB7AkU064284 for gecko@FreeBSD.org; Mon, 28 Sep 2009 11:07:10 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 28 Sep 2009 11:07:10 GMT Message-Id: <200909281107.n8SB7AkU064284@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: gecko@FreeBSD.org Cc: Subject: Current problem reports assigned to gecko@FreeBSD.org 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: Mon, 28 Sep 2009 11:07:11 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o ports/138902 gecko deskutils/lightning-xpi not available in thunderbird o o ports/134689 gecko www/Firefox ports and packages in chroot or jails cras 2 problems total. From owner-freebsd-gecko@FreeBSD.ORG Mon Sep 28 19:06:08 2009 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 27EEF1065693; Mon, 28 Sep 2009 19:06:08 +0000 (UTC) (envelope-from thomas@goodking.ca) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.156]) by mx1.freebsd.org (Postfix) with ESMTP id 8C5FB8FC19; Mon, 28 Sep 2009 19:06:07 +0000 (UTC) Received: by fg-out-1718.google.com with SMTP id e21so741306fga.13 for ; Mon, 28 Sep 2009 12:06:06 -0700 (PDT) Received: by 10.86.187.27 with SMTP id k27mr3570065fgf.11.1254164766349; Mon, 28 Sep 2009 12:06:06 -0700 (PDT) Received: from goodking.goodking.ca (dynamic-216-26-220-141.tbaytel.net [216.26.220.141]) by mx.google.com with ESMTPS id l19sm434726fgb.27.2009.09.28.12.06.04 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 28 Sep 2009 12:06:05 -0700 (PDT) Sender: Thomas Abthorpe From: Thomas Abthorpe Organization: FreeBSD.GoodKing.Ca To: freebsd-gecko@freebsd.org Date: Mon, 28 Sep 2009 15:06:00 -0400 User-Agent: KMail/1.9.10 References: <4ABF7295.1080302@FreeBSD.org> <200909271158.36113.tabthorpe@freebsd.org> In-Reply-To: <200909271158.36113.tabthorpe@freebsd.org> X-Face: /|[9,PbEOB6g>?2^*Sc|"~6:Ro"O>Nv\Rfkv\42g)=?utf-8?q?TuAYG=26+bD=5CpCJTX31s=5Fp=7Bc7=5D5a=2ED=2E=0A=09Y?=@QddKu_I[XB8; euK=^[=L1I#]rgi[0jgz^4qCTwlj]3kJ)]vc}O"HrA14hN)=?utf-8?q?aXewJPTi=7C=0A=09Pt=7BS3=23Vw4x-?="/:& Cc: Beat Gaetzi Subject: Re: Building misc/xiphos with libxul gecko provider 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: Mon, 28 Sep 2009 19:06:08 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On September 27, 2009 11:57:52 am Thomas Abthorpe wrote: > On September 27, 2009 10:11:33 am Beat Gaetzi wrote: > > Could you please take a look at this problem. Is it possible to use > > xiphos with libxul gecko provider? If not, should we remove the port? > > Xiphos has been a work in progress, I will finish it up within the next > week. > > > Thomas Done, courtesy of the nice folks at Xipos! Over to you to retire xulrunner :> Thomas - -- Thomas Abthorpe | FreeBSD Committer tabthorpe@FreeBSD.org | http://people.freebsd.org/~tabthorpe -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (FreeBSD) iEYEARECAAYFAkrBCRkACgkQ5Gm/jNBp8qCaQACffdQsOxWnUyEzzkOk8JxObSup 9LgAnAnLfJXtpVPKUGZPXFp1E3igsmYr =lUd7 -----END PGP SIGNATURE----- From owner-freebsd-gecko@FreeBSD.ORG Mon Sep 28 21:21:25 2009 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 87FDD106566B for ; Mon, 28 Sep 2009 21:21:25 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id F23E88FC25 for ; Mon, 28 Sep 2009 21:21:24 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8SLLNU9029756 for ; Mon, 28 Sep 2009 21:21:23 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8SLLIDI028783 for freebsd-gecko@freebsd.org; Mon, 28 Sep 2009 21:21:18 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Mon, 28 Sep 2009 21:21:18 GMT Message-Id: <200909282121.n8SLLIDI028783@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r118 - in branches/experimental/mail/thunderbird: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Sep 2009 21:21:25 -0000 Author: beat Date: Mon Sep 28 21:21:18 2009 New Revision: 118 Log: - Sync with ports: Add powerpc support Submitted by: Andreas Tobler Added: branches/experimental/mail/thunderbird/files/patch-xptcall-powerpc Modified: branches/experimental/mail/thunderbird/Makefile branches/experimental/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Modified: branches/experimental/mail/thunderbird/Makefile ============================================================================== --- branches/experimental/mail/thunderbird/Makefile Sun Sep 27 20:35:10 2009 (r117) +++ branches/experimental/mail/thunderbird/Makefile Mon Sep 28 21:21:18 2009 (r118) @@ -2,7 +2,7 @@ # Date created: 4 September 2003 # Whom: Joe Marcus Clarke # -# $FreeBSD: ports/mail/thunderbird/Makefile,v 1.105 2009/07/23 07:46:42 ale Exp $ +# $FreeBSD: ports/mail/thunderbird/Makefile,v 1.107 2009/09/28 21:10:21 beat Exp $ # $MCom: ports-stable/mail/thunderbird/Makefile,v 1.18 2009/01/02 21:16:20 mezz Exp $ # @@ -23,6 +23,7 @@ HAS_CONFIGURE= yes USE_BZIP2= yes USE_GMAKE= yes +USE_GECKO= gecko WANT_PERL= yes MOZ_EXTENSIONS= wallet,spellcheck,xmlextras,webservices,auth,transformiix @@ -43,7 +44,8 @@ .include -GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} pthread | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} +GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED +} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} .if (${ARCH}=="sparc64" && ${OSVERSION} < 601101) IGNORE= core dumps on ${ARCH}, kern.osreldate>=601101 needed @@ -88,5 +90,4 @@ ${INSTALL_DATA} ${WRKSRC}/other-licenses/branding/${PORTNAME}/default.xpm \ ${PORTNAME_ICON} -.include "${PORTSDIR}/www/mozilla/Makefile.common" .include Modified: branches/experimental/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in ============================================================================== --- branches/experimental/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Sun Sep 27 20:35:10 2009 (r117) +++ branches/experimental/mail/thunderbird/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Mon Sep 28 21:21:18 2009 (r118) @@ -1,6 +1,6 @@ ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004 -@@ -49,6 +49,9 @@ +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2008-02-19 22:11:34.000000000 +0100 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-09-11 23:18:37.000000000 +0200 +@@ -66,6 +66,9 @@ ifeq (86,$(findstring 86,$(OS_TEST))) CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp endif @@ -9,8 +9,8 @@ +endif endif # - # New code for Linux, et. al., with gcc -@@ -60,7 +63,7 @@ + # OpenBSD/amd64 +@@ -88,7 +91,7 @@ endif endif # IA64 Linux @@ -19,8 +19,8 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -106,9 +109,15 @@ - ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s +@@ -151,9 +154,15 @@ + CPPSRCS := xptcinvoke_openbsd_alpha.cpp xptcstubs_openbsd_alpha.cpp endif # +# FreeBSD/Alpha @@ -36,12 +36,25 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -294,6 +303,15 @@ - ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc) - CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp - ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s +@@ -293,6 +302,14 @@ + endif + + # ++# FreeBSD/PPC ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDpowerpc) ++CPPSRCS := xptcinvoke_ppc_freebsd.cpp xptcstubs_ppc_freebsd.cpp ++ASFILES := xptcinvoke_asm_ppc_freebsd.s xptcstubs_asm_ppc_freebsd.s +endif ++ +# + # Linux/PPC + # + ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc) +@@ -364,6 +381,15 @@ + ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s + endif + # +# FreeBSD/SPARC64 +# +ifeq ($(OS_ARCH),FreeBSD) @@ -49,6 +62,8 @@ +CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp +ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s +endif - endif - # ++endif ++# # Solaris/SPARC + # + ifeq ($(OS_ARCH),SunOS) Added: branches/experimental/mail/thunderbird/files/patch-xptcall-powerpc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/experimental/mail/thunderbird/files/patch-xptcall-powerpc Mon Sep 28 21:21:18 2009 (r118) @@ -0,0 +1,584 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s.orig 2009-09-11 23:18:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s 2009-09-19 21:18:53.000000000 +0200 +@@ -0,0 +1,110 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl XPTC_InvokeByIndex ++ .type XPTC_InvokeByIndex,@function ++ ++# ++# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++# PRUint32 paramCount, nsXPTCVariant* params) ++# ++ ++XPTC_InvokeByIndex: ++ stwu sp,-32(sp) # setup standard stack frame ++ mflr r0 # save LR ++ stw r3,8(sp) # r3 <= that ++ stw r4,12(sp) # r4 <= methodIndex ++ stw r30,16(sp) ++ stw r31,20(sp) ++ ++ stw r0,36(sp) # store LR backchain ++ mr r31,sp ++ ++ rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f ++ addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96 ++ lwz r9,0(sp) # r9 = backchain ++ neg r0,r0 ++ stwux r9,sp,r0 # reserve stack sapce and save SP backchain ++ ++ addi r3,sp,8 # r3 <= args ++ mr r4,r5 # r4 <= paramCount ++ mr r5,r6 # r5 <= params ++ add r6,r3,r10 # r6 <= gpregs ( == args + r10 ) ++ mr r30,r6 # store in r30 for use later... ++ addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 ) ++ ++ bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs) ++ ++ lfd f1,32(r30) # load FP registers with method parameters ++ lfd f2,40(r30) ++ lfd f3,48(r30) ++ lfd f4,56(r30) ++ lfd f5,64(r30) ++ lfd f6,72(r30) ++ lfd f7,80(r30) ++ lfd f8,88(r30) ++ ++ lwz r3,8(r31) # r3 <= that ++ lwz r4,12(r31) # r4 <= methodIndex ++ lwz r5,0(r3) # r5 <= vtable ( == *that ) ++ ++ slwi r4,r4,2 # convert to offset ( *= 4 ) ++ lwzx r0,r5,r4 # r0 <= methodpointer ( == vtable + offset ) ++ ++ lwz r4,4(r30) # load GP regs with method parameters ++ lwz r5,8(r30) ++ lwz r6,12(r30) ++ lwz r7,16(r30) ++ lwz r8,20(r30) ++ lwz r9,24(r30) ++ lwz r10,28(r30) ++ ++ mtlr r0 # copy methodpointer to LR ++ blrl # call method ++ ++ lwz r30,16(r31) # restore r30 & r31 ++ lwz r31,20(r31) ++ ++ lwz r11,0(sp) # clean up the stack ++ lwz r0,4(r11) ++ mtlr r0 ++ mr sp,r11 ++ blr +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp.orig 2009-09-11 23:18:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp 2009-09-19 21:22:23.000000000 +0200 +@@ -0,0 +1,141 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++// The purpose of XPTC_InvokeByIndex() is to map a platform ++// indepenpent call to the platform ABI. To do that, ++// XPTC_InvokeByIndex() has to determine the method to call via vtable ++// access. The parameters for the method are read from the ++// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC ++// ABI this means that the first 8 integral and floating point ++// parameters are passed in registers. ++ ++#include "xptcprivate.h" ++ ++// 8 integral parameters are passed in registers ++#define GPR_COUNT 8 ++ ++// 8 floating point parameters are passed in registers, floats are ++// promoted to doubles when passed in registers ++#define FPR_COUNT 8 ++ ++extern "C" PRUint32 ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ return PRUint32(((paramCount * 2) + 3) & ~3); ++} ++ ++extern "C" void ++invoke_copy_to_stack(PRUint32* d, ++ PRUint32 paramCount, ++ nsXPTCVariant* s, ++ PRUint32* gpregs, ++ double* fpregs) ++{ ++ PRUint32 gpr = 1; // skip one GP reg for 'that' ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(uint32 i = 0; i < paramCount; i++, s++) { ++ if(s->IsPtrData()) ++ tempu32 = (PRUint32) s->ptr; ++ else { ++ switch(s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: tempu32 = s->val.i8; break; ++ case nsXPTType::T_I16: tempu32 = s->val.i16; break; ++ case nsXPTType::T_I32: tempu32 = s->val.i32; break; ++ case nsXPTType::T_I64: tempu64 = s->val.i64; break; ++ case nsXPTType::T_U8: tempu32 = s->val.u8; break; ++ case nsXPTType::T_U16: tempu32 = s->val.u16; break; ++ case nsXPTType::T_U32: tempu32 = s->val.u32; break; ++ case nsXPTType::T_U64: tempu64 = s->val.u64; break; ++ case nsXPTType::T_BOOL: tempu32 = s->val.b; break; ++ case nsXPTType::T_CHAR: tempu32 = s->val.c; break; ++ case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break; ++ default: tempu32 = (PRUint32) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.d; ++ else { ++ if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack ++ *((double*) d) = s->val.d; ++ d += 2; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles ++ else ++ *((float*) d++) = s->val.f; ++ } ++ else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 ++ || s->type == nsXPTType::T_U64)) { ++ if ((gpr + 1) < GPR_COUNT) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ *((PRUint64*) &gpregs[gpr]) = tempu64; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack ++ *((PRUint64*) d) = tempu64; ++ d += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ gpregs[gpr++] = tempu32; ++ else ++ *d++ = tempu32; ++ } ++ ++ } ++} ++ ++extern "C" ++XPTC_PUBLIC_API(nsresult) ++XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant* params); +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s.orig 2009-09-11 23:18:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s 2009-09-11 23:18:37.000000000 +0200 +@@ -0,0 +1,89 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++ ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl SharedStub ++ .type SharedStub,@function ++ ++SharedStub: ++ stwu sp,-112(sp) # room for ++ # linkage (8), ++ # gprData (32), ++ # fprData (64), ++ # stack alignment(8) ++ mflr r0 ++ stw r0,116(sp) # save LR backchain ++ ++ stw r4,12(sp) # save GP registers ++ stw r5,16(sp) # (n.b. that we don't save r3 ++ stw r6,20(sp) # because PrepareAndDispatch() is savvy) ++ stw r7,24(sp) ++ stw r8,28(sp) ++ stw r9,32(sp) ++ stw r10,36(sp) ++ ++ stfd f1,40(sp) # save FP registers ++ stfd f2,48(sp) ++ stfd f3,56(sp) ++ stfd f4,64(sp) ++ stfd f5,72(sp) ++ stfd f6,80(sp) ++ stfd f7,88(sp) ++ stfd f8,96(sp) ++ ++ # r3 has the 'self' pointer already ++ ++ mr r4,r11 # r4 <= methodIndex selector, passed ++ # via r11 in the nsXPTCStubBase::StubXX() call ++ ++ addi r5,sp,120 # r5 <= pointer to callers args area, ++ # beyond r3-r10/f1-f8 mapped range ++ ++ addi r6,sp,8 # r6 <= gprData ++ addi r7,sp,40 # r7 <= fprData ++ ++ bl PrepareAndDispatch@local # Go! ++ ++ lwz r0,116(sp) # restore LR ++ mtlr r0 ++ la sp,112(sp) # clean up the stack ++ blr ++ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp.orig 2009-09-11 23:18:38.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp 2009-09-19 21:48:12.000000000 +0200 +@@ -0,0 +1,232 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++ ++// The PPC/SYSV ABI passes the first 8 integral ++// parameters and the first 8 floating point parameters in registers ++// (r3-r10 and f1-f8), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. The stack pointer has to retain 16-byte alignment, longlongs ++// and doubles are aligned on 8-byte boundaries. ++ ++#define PARAM_BUFFER_COUNT 16 ++#define GPR_COUNT 8 ++#define FPR_COUNT 8 ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gprData[]' contains the arguments passed in integer registers ++// - 'fprData[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, ++ PRUint32 methodIndex, ++ PRUint32* args, ++ PRUint32 *gprData, ++ double *fprData) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ if (! iface_info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint32* ap = args; ++ PRUint32 gpr = 1; // skip one GPR register ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ dp->val.d = fprData[fpr++]; ++ else { ++ if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack ++ dp->val.d = *(double*) ap; ++ ap += 2; ++ } ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && (type == nsXPTType::T_I64 ++ || type == nsXPTType::T_U64)) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ if ((gpr + 1) < GPR_COUNT) { ++ tempu64 = *(PRUint64*) &gprData[gpr]; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack ++ tempu64 = *(PRUint64*) ap; ++ ap += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ tempu32 = gprData[gpr++]; ++ else ++ tempu32 = *ap++; ++ } ++ ++ if(param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) tempu32; ++ continue; ++ } ++ ++ switch(type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++// Load r11 with the constant 'n' and branch to SharedStub(). ++ ++// As G++3 ABI contains the length of the functionname in the mangled ++// name, it is difficult to get a generic assembler mechanism like ++// in the G++ 2.95 case. ++// Create names would be like: ++// _ZN14nsXPTCStubBase5Stub1Ev ++// _ZN14nsXPTCStubBase6Stub12Ev ++// _ZN14nsXPTCStubBase7Stub123Ev ++// _ZN14nsXPTCStubBase8Stub1234Ev ++// etc. ++// Use assembler directives to get the names right... ++ ++# define STUB_ENTRY(n) \ ++__asm__ ( \ ++ ".align 2 \n\t" \ ++ ".if "#n" < 10 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 100 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 1000 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ ++ \ ++ ".else \n\t" \ ++ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \ ++ ".endif \n\t" \ ++ \ ++ "li 11,"#n" \n\t" \ ++ "b SharedStub@local \n" \ ++); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" From owner-freebsd-gecko@FreeBSD.ORG Mon Sep 28 22:36:11 2009 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 951431065676 for ; Mon, 28 Sep 2009 22:36:11 +0000 (UTC) (envelope-from geekounet@poildetroll.net) Received: from tritus.poildetroll.net (unknown [IPv6:2001:758:f00:3::4:1]) by mx1.freebsd.org (Postfix) with ESMTP id 59FD28FC0C for ; Mon, 28 Sep 2009 22:36:11 +0000 (UTC) Received: from korriban.home.poildetroll.net (unknown [IPv6:2001:470:1f14:395:21d:9ff:fe3e:7a2c]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tritus.poildetroll.net (Postfix) with ESMTPSA id 0A25C4544 for ; Tue, 29 Sep 2009 00:36:08 +0200 (CEST) Message-ID: <4AC13A56.9070102@poildetroll.net> Date: Tue, 29 Sep 2009 00:36:06 +0200 From: Pierre Guinoiseau Organization: Poil de Troll User-Agent: Thunderbird 2.0.0.23 (X11/20090825) MIME-Version: 1.0 To: freebsd-gecko@freebsd.org X-Enigmail-Version: 0.96.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigD918129D53409C626FCB289B" Subject: Enigmail with Thunderbird 3.0b4 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: Mon, 28 Sep 2009 22:36:11 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigD918129D53409C626FCB289B Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, this morning, I wanted to try Thunderbird 3.0beta4 from the freebsd-gecko experimental port. It compiles and runs pretty well. But I was missing the enigmail extension. The installed version seemed to be not compatible with TB 3.0b4. So, I tried to modify the enigmail-thunderbird port in order to use TB 3.0b4 workdir: GECKO=3D ${PKGNAMEPREFIX:S/-//} =2Eif ${GECKO} =3D=3D "thunderbird" GECKO_PORTDIR=3D freebsd-gecko/branches/experimental/mail/${GECKO}-devel= =2Eelse GECKO_PORTDIR=3D www/${GECKO} =2Eendif GECKO_WRKSRC=3D ${WRKDIR}/../../../${GECKO_PORTDIR}/work/comm-central WRKSRC=3D ${WRKDIR}/mozilla but it failed at configure on an error with pthread (and I don't see why...?): checking for pthread_create in -lpthreads... no checking for pthread_create in -lpthread... no checking for pthread_create in -lc_r... no checking for pthread_create in -lc... no configure: error: --with-pthreads specified for a system without pthread support configure: error: ./configure failed for mozilla config log says: gcc34 -o dummy dummy.c -O2 -pipe -march=3Dnocona -I/usr/local/include -fno-strict-aliasing -fno-strict-aliasing -I/usr/local/include -I/usr/local/include -pthreads -lm -pthread gcc34: unrecognized option `-pthreads' But it works fine when compiling for Thunderbird 2.0... I switched back to Thunderbird 2.0 for the moment, as I need Enigmail for my everyday use, but I would be glad if you could give me any pointers to get it working with Thunderbird 3.0b4. :) Thanks! Pierre --------------enigD918129D53409C626FCB289B Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.13 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkrBOlYACgkQJikNJSAyef9F+QCfVjenqXPz0ojggRRDif9kW2BX GPkAnjchJ04lAaBFr7kb9unqdzm24gEl =nJr6 -----END PGP SIGNATURE----- --------------enigD918129D53409C626FCB289B-- From owner-freebsd-gecko@FreeBSD.ORG Tue Sep 29 20:03:30 2009 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 14D0C106566B for ; Tue, 29 Sep 2009 20:03:30 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 8B7678FC0A for ; Tue, 29 Sep 2009 20:03:29 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8TK3Scu061764 for ; Tue, 29 Sep 2009 20:03:28 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8TK3Nsd060661 for freebsd-gecko@freebsd.org; Tue, 29 Sep 2009 20:03:23 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Tue, 29 Sep 2009 20:03:23 GMT Message-Id: <200909292003.n8TK3Nsd060661@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r119 - in branches/experimental/www/libxul: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 20:03:30 -0000 Author: andreast Date: Tue Sep 29 20:03:22 2009 New Revision: 119 Log: Add support for powerpc. Added: branches/experimental/www/libxul/files/patch-xptcall-powerpc Modified: branches/experimental/www/libxul/Makefile branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in Modified: branches/experimental/www/libxul/Makefile ============================================================================== --- branches/experimental/www/libxul/Makefile Mon Sep 28 21:21:18 2009 (r118) +++ branches/experimental/www/libxul/Makefile Tue Sep 29 20:03:22 2009 (r119) @@ -50,6 +50,9 @@ .include +GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED +} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} + .if ${OSVERSION} < 700000 LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio EXTRA_PATCHES= ${FILESDIR}/releng6_pulseaudio Modified: branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk ============================================================================== --- branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk Mon Sep 28 21:21:18 2009 (r118) +++ branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk Tue Sep 29 20:03:22 2009 (r119) @@ -1,6 +1,6 @@ ---- security/coreconf/FreeBSD.mk.orig Wed Mar 26 20:17:25 2003 -+++ security/coreconf/FreeBSD.mk Thu Jul 8 12:56:24 2004 -@@ -35,16 +35,18 @@ +--- security/coreconf/FreeBSD.mk.orig 2009-08-24 17:52:57.000000000 +0200 ++++ security/coreconf/FreeBSD.mk 2009-09-27 21:08:00.000000000 +0200 +@@ -37,16 +37,22 @@ include $(CORE_DEPTH)/coreconf/UNIX.mk @@ -16,13 +16,17 @@ +ifeq ($(OS_TEST),amd64) +CPU_ARCH = amd64 +else ++ifeq ($(OS_TEST),powerpc) ++CPU_ARCH = powerpc ++else CPU_ARCH = x86 endif +endif ++endif - OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK + OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -@@ -71,7 +73,11 @@ +@@ -73,7 +79,11 @@ DLL_SUFFIX = so.1.0 endif @@ -33,5 +37,11 @@ +MKSHLIB = $(CC) -Wl,-Bsymbolic $(DSO_LDOPTS) -o $@ +endif ifdef MAPFILE - # Add LD options to restrict exported symbols to those in the map file + MKSHLIB += -Wl,--version-script,$(MAPFILE) endif +@@ -82,4 +92,4 @@ + + G++INCLUDES = -I/usr/include/g++ + +-INCLUDES += -I/usr/X11R6/include ++INCLUDES += -I/usr/local/include Modified: branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in ============================================================================== --- branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in Mon Sep 28 21:21:18 2009 (r118) +++ branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in Tue Sep 29 20:03:22 2009 (r119) @@ -1,16 +1,16 @@ ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004 -@@ -49,6 +49,9 @@ - ifeq (86,$(findstring 86,$(OS_TEST))) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2009-08-24 17:53:28.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-09-27 21:15:47.000000000 +0200 +@@ -70,6 +70,9 @@ + ifeq (Darwin,$(OS_ARCH)) + DEFINES += -DKEEP_STACK_16_BYTE_ALIGNED endif +ifeq (x86_64,$(OS_TEST)) +CPPSRCS := xptcinvoke_x86_64_linux.cpp xptcstubs_x86_64_linux.cpp +endif endif + endif # - # New code for Linux, et. al., with gcc -@@ -60,7 +63,7 @@ +@@ -87,7 +90,7 @@ endif endif # IA64 Linux @@ -19,7 +19,7 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -106,9 +109,15 @@ +@@ -150,9 +153,15 @@ ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s endif # @@ -36,12 +36,25 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -294,6 +303,15 @@ - ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc) - CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp - ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s +@@ -304,6 +313,14 @@ + CXXFLAGS := $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(CXXFLAGS)) + endif + ++# FreeBSD/PPC ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDpowerpc) ++CPPSRCS := xptcinvoke_ppc_freebsd.cpp xptcstubs_ppc_freebsd.cpp ++ASFILES := xptcinvoke_asm_ppc_freebsd.s xptcstubs_asm_ppc_freebsd.s +endif -+# ++ ++ + # + # Linux/PPC + # +@@ -385,6 +402,15 @@ + ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s + endif + # +# FreeBSD/SPARC64 +# +ifeq ($(OS_ARCH),FreeBSD) @@ -49,6 +62,8 @@ +CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp +ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s +endif - endif ++endif ++# + # OpenBSD/SPARC # - # Solaris/SPARC + ifeq ($(OS_ARCH)$(OS_TEST),OpenBSDsparc) Added: branches/experimental/www/libxul/files/patch-xptcall-powerpc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/experimental/www/libxul/files/patch-xptcall-powerpc Tue Sep 29 20:03:22 2009 (r119) @@ -0,0 +1,580 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s.orig 2009-09-26 22:23:56.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s 2009-09-27 10:01:48.000000000 +0200 +@@ -0,0 +1,110 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl NS_InvokeByIndex_P ++ .type NS_InvokeByIndex_P,@function ++ ++# ++# NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex, ++# PRUint32 paramCount, nsXPTCVariant* params) ++# ++ ++NS_InvokeByIndex_P: ++ stwu sp,-32(sp) # setup standard stack frame ++ mflr r0 # save LR ++ stw r3,8(sp) # r3 <= that ++ stw r4,12(sp) # r4 <= methodIndex ++ stw r30,16(sp) ++ stw r31,20(sp) ++ ++ stw r0,36(sp) # store LR backchain ++ mr r31,sp ++ ++ rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f ++ addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96 ++ lwz r9,0(sp) # r9 = backchain ++ neg r0,r0 ++ stwux r9,sp,r0 # reserve stack sapce and save SP backchain ++ ++ addi r3,sp,8 # r3 <= args ++ mr r4,r5 # r4 <= paramCount ++ mr r5,r6 # r5 <= params ++ add r6,r3,r10 # r6 <= gpregs ( == args + r10 ) ++ mr r30,r6 # store in r30 for use later... ++ addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 ) ++ ++ bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs) ++ ++ lfd f1,32(r30) # load FP registers with method parameters ++ lfd f2,40(r30) ++ lfd f3,48(r30) ++ lfd f4,56(r30) ++ lfd f5,64(r30) ++ lfd f6,72(r30) ++ lfd f7,80(r30) ++ lfd f8,88(r30) ++ ++ lwz r3,8(r31) # r3 <= that ++ lwz r4,12(r31) # r4 <= methodIndex ++ lwz r5,0(r3) # r5 <= vtable ( == *that ) ++ ++ slwi r4,r4,2 # convert to offset ( *= 4 ) ++ lwzx r0,r5,r4 # r0 <= methodpointer ( == vtable + offset ) ++ ++ lwz r4,4(r30) # load GP regs with method parameters ++ lwz r5,8(r30) ++ lwz r6,12(r30) ++ lwz r7,16(r30) ++ lwz r8,20(r30) ++ lwz r9,24(r30) ++ lwz r10,28(r30) ++ ++ mtlr r0 # copy methodpointer to LR ++ blrl # call method ++ ++ lwz r30,16(r31) # restore r30 & r31 ++ lwz r31,20(r31) ++ ++ lwz r11,0(sp) # clean up the stack ++ lwz r0,4(r11) ++ mtlr r0 ++ mr sp,r11 ++ blr +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp.orig 2009-09-26 22:23:56.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp 2009-09-27 09:58:59.000000000 +0200 +@@ -0,0 +1,141 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++// The purpose of NS_InvokeByIndex_P() is to map a platform ++// indepenpent call to the platform ABI. To do that, ++// NS_InvokeByIndex_P() has to determine the method to call via vtable ++// access. The parameters for the method are read from the ++// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC ++// ABI this means that the first 8 integral and floating point ++// parameters are passed in registers. ++ ++#include "xptcprivate.h" ++ ++// 8 integral parameters are passed in registers ++#define GPR_COUNT 8 ++ ++// 8 floating point parameters are passed in registers, floats are ++// promoted to doubles when passed in registers ++#define FPR_COUNT 8 ++ ++extern "C" PRUint32 ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ return PRUint32(((paramCount * 2) + 3) & ~3); ++} ++ ++extern "C" void ++invoke_copy_to_stack(PRUint32* d, ++ PRUint32 paramCount, ++ nsXPTCVariant* s, ++ PRUint32* gpregs, ++ double* fpregs) ++{ ++ PRUint32 gpr = 1; // skip one GP reg for 'that' ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(uint32 i = 0; i < paramCount; i++, s++) { ++ if(s->IsPtrData()) ++ tempu32 = (PRUint32) s->ptr; ++ else { ++ switch(s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: tempu32 = s->val.i8; break; ++ case nsXPTType::T_I16: tempu32 = s->val.i16; break; ++ case nsXPTType::T_I32: tempu32 = s->val.i32; break; ++ case nsXPTType::T_I64: tempu64 = s->val.i64; break; ++ case nsXPTType::T_U8: tempu32 = s->val.u8; break; ++ case nsXPTType::T_U16: tempu32 = s->val.u16; break; ++ case nsXPTType::T_U32: tempu32 = s->val.u32; break; ++ case nsXPTType::T_U64: tempu64 = s->val.u64; break; ++ case nsXPTType::T_BOOL: tempu32 = s->val.b; break; ++ case nsXPTType::T_CHAR: tempu32 = s->val.c; break; ++ case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break; ++ default: tempu32 = (PRUint32) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.d; ++ else { ++ if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack ++ *((double*) d) = s->val.d; ++ d += 2; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles ++ else ++ *((float*) d++) = s->val.f; ++ } ++ else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 ++ || s->type == nsXPTType::T_U64)) { ++ if ((gpr + 1) < GPR_COUNT) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ *((PRUint64*) &gpregs[gpr]) = tempu64; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack ++ *((PRUint64*) d) = tempu64; ++ d += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ gpregs[gpr++] = tempu32; ++ else ++ *d++ = tempu32; ++ } ++ ++ } ++} ++ ++extern "C" ++EXPORT_XPCOM_API(nsresult) ++NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant* params); +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s.orig 2009-09-26 22:23:56.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s 2009-09-26 22:23:56.000000000 +0200 +@@ -0,0 +1,89 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++ ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl SharedStub ++ .type SharedStub,@function ++ ++SharedStub: ++ stwu sp,-112(sp) # room for ++ # linkage (8), ++ # gprData (32), ++ # fprData (64), ++ # stack alignment(8) ++ mflr r0 ++ stw r0,116(sp) # save LR backchain ++ ++ stw r4,12(sp) # save GP registers ++ stw r5,16(sp) # (n.b. that we don't save r3 ++ stw r6,20(sp) # because PrepareAndDispatch() is savvy) ++ stw r7,24(sp) ++ stw r8,28(sp) ++ stw r9,32(sp) ++ stw r10,36(sp) ++ ++ stfd f1,40(sp) # save FP registers ++ stfd f2,48(sp) ++ stfd f3,56(sp) ++ stfd f4,64(sp) ++ stfd f5,72(sp) ++ stfd f6,80(sp) ++ stfd f7,88(sp) ++ stfd f8,96(sp) ++ ++ # r3 has the 'self' pointer already ++ ++ mr r4,r11 # r4 <= methodIndex selector, passed ++ # via r11 in the nsXPTCStubBase::StubXX() call ++ ++ addi r5,sp,120 # r5 <= pointer to callers args area, ++ # beyond r3-r10/f1-f8 mapped range ++ ++ addi r6,sp,8 # r6 <= gprData ++ addi r7,sp,40 # r7 <= fprData ++ ++ bl PrepareAndDispatch@local # Go! ++ ++ lwz r0,116(sp) # restore LR ++ mtlr r0 ++ la sp,112(sp) # clean up the stack ++ blr ++ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp.orig 2009-09-26 22:23:56.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp 2009-09-26 22:43:57.000000000 +0200 +@@ -0,0 +1,228 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++#include "xptiprivate.h" ++ ++// The PPC/SYSV ABI passes the first 8 integral ++// parameters and the first 8 floating point parameters in registers ++// (r3-r10 and f1-f8), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. The stack pointer has to retain 16-byte alignment, longlongs ++// and doubles are aligned on 8-byte boundaries. ++ ++#define PARAM_BUFFER_COUNT 16 ++#define GPR_COUNT 8 ++#define FPR_COUNT 8 ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gprData[]' contains the arguments passed in integer registers ++// - 'fprData[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, ++ PRUint32 methodIndex, ++ PRUint32* args, ++ PRUint32 *gprData, ++ double *fprData) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ const nsXPTMethodInfo* info = NULL; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint32* ap = args; ++ PRUint32 gpr = 1; // skip one GPR register ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ dp->val.d = fprData[fpr++]; ++ else { ++ if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack ++ dp->val.d = *(double*) ap; ++ ap += 2; ++ } ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && (type == nsXPTType::T_I64 ++ || type == nsXPTType::T_U64)) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ if ((gpr + 1) < GPR_COUNT) { ++ tempu64 = *(PRUint64*) &gprData[gpr]; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack ++ tempu64 = *(PRUint64*) ap; ++ ap += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ tempu32 = gprData[gpr++]; ++ else ++ tempu32 = *ap++; ++ } ++ ++ if(param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) tempu32; ++ continue; ++ } ++ ++ switch(type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->mOuter->CallMethod((PRUint16)methodIndex, ++ info, ++ dispatchParams); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++ ++} ++ ++// Load r11 with the constant 'n' and branch to SharedStub(). ++ ++// As G++3 ABI contains the length of the functionname in the mangled ++// name, it is difficult to get a generic assembler mechanism like ++// in the G++ 2.95 case. ++// Create names would be like: ++// _ZN14nsXPTCStubBase5Stub1Ev ++// _ZN14nsXPTCStubBase6Stub12Ev ++// _ZN14nsXPTCStubBase7Stub123Ev ++// _ZN14nsXPTCStubBase8Stub1234Ev ++// etc. ++// Use assembler directives to get the names right... ++ ++# define STUB_ENTRY(n) \ ++__asm__ ( \ ++ ".align 2 \n\t" \ ++ ".if "#n" < 10 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 100 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 1000 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ ++ \ ++ ".else \n\t" \ ++ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \ ++ ".endif \n\t" \ ++ \ ++ "li 11,"#n" \n\t" \ ++ "b SharedStub@local \n" \ ++); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" From owner-freebsd-gecko@FreeBSD.ORG Tue Sep 29 20:38:38 2009 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 E0EF11065670 for ; Tue, 29 Sep 2009 20:38:37 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 8CDC78FC16 for ; Tue, 29 Sep 2009 20:38:37 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8TKcaRZ041127 for ; Tue, 29 Sep 2009 20:38:36 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8TKcV0v040812 for freebsd-gecko@freebsd.org; Tue, 29 Sep 2009 20:38:31 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Tue, 29 Sep 2009 20:38:31 GMT Message-Id: <200909292038.n8TKcV0v040812@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r120 - in branches/experimental/www/kompozer: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Sep 2009 20:38:38 -0000 Author: andreast Date: Tue Sep 29 20:38:30 2009 New Revision: 120 Log: Add support for powerpc. Added: branches/experimental/www/kompozer/files/patch-xptcall-powerpc Modified: branches/experimental/www/kompozer/Makefile branches/experimental/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Modified: branches/experimental/www/kompozer/Makefile ============================================================================== --- branches/experimental/www/kompozer/Makefile Tue Sep 29 20:03:22 2009 (r119) +++ branches/experimental/www/kompozer/Makefile Tue Sep 29 20:38:30 2009 (r120) @@ -38,6 +38,9 @@ .include +GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED +} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} + post-patch: ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \ ${WRKSRC}/storage/build/Makefile.in Modified: branches/experimental/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in ============================================================================== --- branches/experimental/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Tue Sep 29 20:03:22 2009 (r119) +++ branches/experimental/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Tue Sep 29 20:38:30 2009 (r120) @@ -1,6 +1,6 @@ ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004 -@@ -49,6 +49,9 @@ +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2009-05-02 18:43:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-09-28 22:05:47.000000000 +0200 +@@ -66,6 +66,9 @@ ifeq (86,$(findstring 86,$(OS_TEST))) CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp endif @@ -9,8 +9,8 @@ +endif endif # - # New code for Linux, et. al., with gcc -@@ -60,7 +63,7 @@ + # OpenBSD/amd64 +@@ -88,7 +91,7 @@ endif endif # IA64 Linux @@ -19,8 +19,8 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -106,9 +109,15 @@ - ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s +@@ -151,9 +154,15 @@ + CPPSRCS := xptcinvoke_openbsd_alpha.cpp xptcstubs_openbsd_alpha.cpp endif # +# FreeBSD/Alpha @@ -36,12 +36,25 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -294,6 +303,15 @@ - ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc) - CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp - ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s +@@ -293,6 +302,14 @@ + endif + + # ++# FreeBSD/PPC ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDpowerpc) ++CPPSRCS := xptcinvoke_ppc_freebsd.cpp xptcstubs_ppc_freebsd.cpp ++ASFILES := xptcinvoke_asm_ppc_freebsd.s xptcstubs_asm_ppc_freebsd.s +endif ++ +# + # Linux/PPC + # + ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc) +@@ -364,6 +381,15 @@ + ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s + endif + # +# FreeBSD/SPARC64 +# +ifeq ($(OS_ARCH),FreeBSD) @@ -49,6 +62,8 @@ +CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp +ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s +endif - endif - # ++endif ++# # Solaris/SPARC + # + ifeq ($(OS_ARCH),SunOS) Added: branches/experimental/www/kompozer/files/patch-xptcall-powerpc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/experimental/www/kompozer/files/patch-xptcall-powerpc Tue Sep 29 20:38:30 2009 (r120) @@ -0,0 +1,584 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,232 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++ ++// The PPC/SYSV ABI passes the first 8 integral ++// parameters and the first 8 floating point parameters in registers ++// (r3-r10 and f1-f8), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. The stack pointer has to retain 16-byte alignment, longlongs ++// and doubles are aligned on 8-byte boundaries. ++ ++#define PARAM_BUFFER_COUNT 16 ++#define GPR_COUNT 8 ++#define FPR_COUNT 8 ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gprData[]' contains the arguments passed in integer registers ++// - 'fprData[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, ++ PRUint32 methodIndex, ++ PRUint32* args, ++ PRUint32 *gprData, ++ double *fprData) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ if (! iface_info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint32* ap = args; ++ PRUint32 gpr = 1; // skip one GPR register ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ dp->val.d = fprData[fpr++]; ++ else { ++ if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack ++ dp->val.d = *(double*) ap; ++ ap += 2; ++ } ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && (type == nsXPTType::T_I64 ++ || type == nsXPTType::T_U64)) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ if ((gpr + 1) < GPR_COUNT) { ++ tempu64 = *(PRUint64*) &gprData[gpr]; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack ++ tempu64 = *(PRUint64*) ap; ++ ap += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ tempu32 = gprData[gpr++]; ++ else ++ tempu32 = *ap++; ++ } ++ ++ if(param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) tempu32; ++ continue; ++ } ++ ++ switch(type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++// Load r11 with the constant 'n' and branch to SharedStub(). ++ ++// As G++3 ABI contains the length of the functionname in the mangled ++// name, it is difficult to get a generic assembler mechanism like ++// in the G++ 2.95 case. ++// Create names would be like: ++// _ZN14nsXPTCStubBase5Stub1Ev ++// _ZN14nsXPTCStubBase6Stub12Ev ++// _ZN14nsXPTCStubBase7Stub123Ev ++// _ZN14nsXPTCStubBase8Stub1234Ev ++// etc. ++// Use assembler directives to get the names right... ++ ++# define STUB_ENTRY(n) \ ++__asm__ ( \ ++ ".align 2 \n\t" \ ++ ".if "#n" < 10 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 100 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 1000 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ ++ \ ++ ".else \n\t" \ ++ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \ ++ ".endif \n\t" \ ++ \ ++ "li 11,"#n" \n\t" \ ++ "b SharedStub@local \n" \ ++); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,89 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++ ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl SharedStub ++ .type SharedStub,@function ++ ++SharedStub: ++ stwu sp,-112(sp) # room for ++ # linkage (8), ++ # gprData (32), ++ # fprData (64), ++ # stack alignment(8) ++ mflr r0 ++ stw r0,116(sp) # save LR backchain ++ ++ stw r4,12(sp) # save GP registers ++ stw r5,16(sp) # (n.b. that we don't save r3 ++ stw r6,20(sp) # because PrepareAndDispatch() is savvy) ++ stw r7,24(sp) ++ stw r8,28(sp) ++ stw r9,32(sp) ++ stw r10,36(sp) ++ ++ stfd f1,40(sp) # save FP registers ++ stfd f2,48(sp) ++ stfd f3,56(sp) ++ stfd f4,64(sp) ++ stfd f5,72(sp) ++ stfd f6,80(sp) ++ stfd f7,88(sp) ++ stfd f8,96(sp) ++ ++ # r3 has the 'self' pointer already ++ ++ mr r4,r11 # r4 <= methodIndex selector, passed ++ # via r11 in the nsXPTCStubBase::StubXX() call ++ ++ addi r5,sp,120 # r5 <= pointer to callers args area, ++ # beyond r3-r10/f1-f8 mapped range ++ ++ addi r6,sp,8 # r6 <= gprData ++ addi r7,sp,40 # r7 <= fprData ++ ++ bl PrepareAndDispatch@local # Go! ++ ++ lwz r0,116(sp) # restore LR ++ mtlr r0 ++ la sp,112(sp) # clean up the stack ++ blr ++ +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,141 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++// The purpose of XPTC_InvokeByIndex() is to map a platform ++// indepenpent call to the platform ABI. To do that, ++// XPTC_InvokeByIndex() has to determine the method to call via vtable ++// access. The parameters for the method are read from the ++// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC ++// ABI this means that the first 8 integral and floating point ++// parameters are passed in registers. ++ ++#include "xptcprivate.h" ++ ++// 8 integral parameters are passed in registers ++#define GPR_COUNT 8 ++ ++// 8 floating point parameters are passed in registers, floats are ++// promoted to doubles when passed in registers ++#define FPR_COUNT 8 ++ ++extern "C" PRUint32 ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ return PRUint32(((paramCount * 2) + 3) & ~3); ++} ++ ++extern "C" void ++invoke_copy_to_stack(PRUint32* d, ++ PRUint32 paramCount, ++ nsXPTCVariant* s, ++ PRUint32* gpregs, ++ double* fpregs) ++{ ++ PRUint32 gpr = 1; // skip one GP reg for 'that' ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(uint32 i = 0; i < paramCount; i++, s++) { ++ if(s->IsPtrData()) ++ tempu32 = (PRUint32) s->ptr; ++ else { ++ switch(s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: tempu32 = s->val.i8; break; ++ case nsXPTType::T_I16: tempu32 = s->val.i16; break; ++ case nsXPTType::T_I32: tempu32 = s->val.i32; break; ++ case nsXPTType::T_I64: tempu64 = s->val.i64; break; ++ case nsXPTType::T_U8: tempu32 = s->val.u8; break; ++ case nsXPTType::T_U16: tempu32 = s->val.u16; break; ++ case nsXPTType::T_U32: tempu32 = s->val.u32; break; ++ case nsXPTType::T_U64: tempu64 = s->val.u64; break; ++ case nsXPTType::T_BOOL: tempu32 = s->val.b; break; ++ case nsXPTType::T_CHAR: tempu32 = s->val.c; break; ++ case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break; ++ default: tempu32 = (PRUint32) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.d; ++ else { ++ if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack ++ *((double*) d) = s->val.d; ++ d += 2; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles ++ else ++ *((float*) d++) = s->val.f; ++ } ++ else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 ++ || s->type == nsXPTType::T_U64)) { ++ if ((gpr + 1) < GPR_COUNT) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ *((PRUint64*) &gpregs[gpr]) = tempu64; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack ++ *((PRUint64*) d) = tempu64; ++ d += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ gpregs[gpr++] = tempu32; ++ else ++ *d++ = tempu32; ++ } ++ ++ } ++} ++ ++extern "C" ++XPTC_PUBLIC_API(nsresult) ++XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant* params); +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,110 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl XPTC_InvokeByIndex ++ .type XPTC_InvokeByIndex,@function ++ ++# ++# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++# PRUint32 paramCount, nsXPTCVariant* params) ++# ++ ++XPTC_InvokeByIndex: ++ stwu sp,-32(sp) # setup standard stack frame ++ mflr r0 # save LR ++ stw r3,8(sp) # r3 <= that ++ stw r4,12(sp) # r4 <= methodIndex ++ stw r30,16(sp) ++ stw r31,20(sp) ++ ++ stw r0,36(sp) # store LR backchain ++ mr r31,sp ++ ++ rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f ++ addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96 ++ lwz r9,0(sp) # r9 = backchain ++ neg r0,r0 ++ stwux r9,sp,r0 # reserve stack sapce and save SP backchain ++ ++ addi r3,sp,8 # r3 <= args ++ mr r4,r5 # r4 <= paramCount ++ mr r5,r6 # r5 <= params ++ add r6,r3,r10 # r6 <= gpregs ( == args + r10 ) ++ mr r30,r6 # store in r30 for use later... ++ addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 ) ++ ++ bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs) ++ ++ lfd f1,32(r30) # load FP registers with method parameters ++ lfd f2,40(r30) ++ lfd f3,48(r30) ++ lfd f4,56(r30) ++ lfd f5,64(r30) ++ lfd f6,72(r30) ++ lfd f7,80(r30) ++ lfd f8,88(r30) ++ ++ lwz r3,8(r31) # r3 <= that ++ lwz r4,12(r31) # r4 <= methodIndex ++ lwz r5,0(r3) # r5 <= vtable ( == *that ) ++ ++ slwi r4,r4,2 # convert to offset ( *= 4 ) ++ lwzx r0,r5,r4 # r0 <= methodpointer ( == vtable + offset ) ++ ++ lwz r4,4(r30) # load GP regs with method parameters ++ lwz r5,8(r30) ++ lwz r6,12(r30) ++ lwz r7,16(r30) ++ lwz r8,20(r30) ++ lwz r9,24(r30) ++ lwz r10,28(r30) ++ ++ mtlr r0 # copy methodpointer to LR ++ blrl # call method ++ ++ lwz r30,16(r31) # restore r30 & r31 ++ lwz r31,20(r31) ++ ++ lwz r11,0(sp) # clean up the stack ++ lwz r0,4(r11) ++ mtlr r0 ++ mr sp,r11 ++ blr From owner-freebsd-gecko@FreeBSD.ORG Wed Sep 30 08:25:45 2009 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 5A4781065676 for ; Wed, 30 Sep 2009 08:25:45 +0000 (UTC) (envelope-from beat@FreeBSD.org) Received: from marvin.chruetertee.ch (marvin.chruetertee.ch [217.150.245.55]) by mx1.freebsd.org (Postfix) with ESMTP id CAA2D8FC0A for ; Wed, 30 Sep 2009 08:25:44 +0000 (UTC) Received: from daedalus.network.local (161-231.0-85.cust.bluewin.ch [85.0.231.161]) (authenticated bits=0) by marvin.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8U8PhtW096571 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Wed, 30 Sep 2009 08:25:43 GMT (envelope-from beat@FreeBSD.org) Message-ID: <4AC31691.4090503@FreeBSD.org> Date: Wed, 30 Sep 2009 10:28:01 +0200 From: Beat Gaetzi User-Agent: Thunderbird 2.0.0.23 (X11/20090821) MIME-Version: 1.0 To: Pierre Guinoiseau References: <4AC13A56.9070102@poildetroll.net> In-Reply-To: <4AC13A56.9070102@poildetroll.net> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: freebsd-gecko@FreeBSD.org Subject: Re: Enigmail with Thunderbird 3.0b4 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: Wed, 30 Sep 2009 08:25:45 -0000 Hi Pierre, Pierre Guinoiseau wrote: > this morning, I wanted to try Thunderbird 3.0beta4 from the > freebsd-gecko experimental port. It compiles and runs pretty well. But I > was missing the enigmail extension. The installed version seemed to be > not compatible with TB 3.0b4. It looks like enigmail 0.96.0 is not compatible with Thunderbird 3. In the enigmail forum I read that Thunderbird 3 support has already been added to trunk. So we have to wait until a compatible version is released. Beat From owner-freebsd-gecko@FreeBSD.ORG Wed Sep 30 19:38:07 2009 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 C4B84106566B for ; Wed, 30 Sep 2009 19:38:07 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 61BD18FC0A for ; Wed, 30 Sep 2009 19:38:06 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8UJc51j090976 for ; Wed, 30 Sep 2009 19:38:05 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8UJc0Ej090526 for freebsd-gecko@freebsd.org; Wed, 30 Sep 2009 19:38:00 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Wed, 30 Sep 2009 19:38:00 GMT Message-Id: <200909301938.n8UJc0Ej090526@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r121 - branches/experimental/mail/thunderbird-devel/files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Sep 2009 19:38:07 -0000 Author: andreast Date: Wed Sep 30 19:38:00 2009 New Revision: 121 Log: Add support for powerpc. Modified: branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk Modified: branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk ============================================================================== --- branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk Tue Sep 29 20:38:30 2009 (r120) +++ branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk Wed Sep 30 19:38:00 2009 (r121) @@ -1,12 +1,15 @@ ---- mozilla/security/coreconf/FreeBSD.mk.orig 2009-07-15 22:37:25.000000000 +0200 -+++ mozilla/security/coreconf/FreeBSD.mk 2009-09-17 14:40:09.000000000 +0200 -@@ -45,8 +45,16 @@ +--- security/coreconf/FreeBSD.mk.orig 2009-09-16 02:57:02.000000000 +0200 ++++ security/coreconf/FreeBSD.mk 2009-09-30 16:44:43.000000000 +0200 +@@ -45,8 +45,20 @@ ifeq ($(OS_TEST),alpha) CPU_ARCH = alpha else +ifeq ($(OS_TEST),amd64) +CPU_ARCH = amd64 +else ++ifeq ($(OS_TEST),powerpc) ++CPU_ARCH = powerpc ++else +ifeq ($(OS_TEST),sparc64) +CPU_ARCH = sparc64 +else @@ -14,10 +17,11 @@ endif +endif +endif ++endif OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -@@ -73,7 +81,7 @@ +@@ -73,7 +85,7 @@ DLL_SUFFIX = so.1.0 endif @@ -26,9 +30,9 @@ ifdef MAPFILE MKSHLIB += -Wl,--version-script,$(MAPFILE) endif -@@ -82,4 +90,4 @@ +@@ -82,4 +94,4 @@ G++INCLUDES = -I/usr/include/g++ -INCLUDES += -I/usr/X11R6/include -+#INCLUDES += -I/usr/X11R6/include ++#INCLUDES += -I/usr/local/include From owner-freebsd-gecko@FreeBSD.ORG Wed Sep 30 19:58:54 2009 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 703351065693 for ; Wed, 30 Sep 2009 19:58:54 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 0D8738FC15 for ; Wed, 30 Sep 2009 19:58:53 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8UJwqns089516 for ; Wed, 30 Sep 2009 19:58:52 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8UJwl7e089222 for freebsd-gecko@freebsd.org; Wed, 30 Sep 2009 19:58:47 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Wed, 30 Sep 2009 19:58:47 GMT Message-Id: <200909301958.n8UJwl7e089222@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r122 - branches/experimental/www/kompozer X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Sep 2009 19:58:54 -0000 Author: andreast Date: Wed Sep 30 19:58:47 2009 New Revision: 122 Log: Limit GECKO_PTHREAD_LIBS definition to powerpc only. Modified: branches/experimental/www/kompozer/Makefile Modified: branches/experimental/www/kompozer/Makefile ============================================================================== --- branches/experimental/www/kompozer/Makefile Wed Sep 30 19:38:00 2009 (r121) +++ branches/experimental/www/kompozer/Makefile Wed Sep 30 19:58:47 2009 (r122) @@ -38,8 +38,10 @@ .include +.if ${ARCH}=="powerpc" GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED } -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} +.endif post-patch: ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \ From owner-freebsd-gecko@FreeBSD.ORG Wed Sep 30 20:18:03 2009 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 18725106566B for ; Wed, 30 Sep 2009 20:18:03 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 021E78FC0C for ; Wed, 30 Sep 2009 20:18:01 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n8UKI1dw079432 for ; Wed, 30 Sep 2009 20:18:01 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n8UKHtWw078687 for freebsd-gecko@freebsd.org; Wed, 30 Sep 2009 20:17:55 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Wed, 30 Sep 2009 20:17:55 GMT Message-Id: <200909302017.n8UKHtWw078687@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r123 - in trunk/www/kompozer: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Sep 2009 20:18:03 -0000 Author: andreast Date: Wed Sep 30 20:17:55 2009 New Revision: 123 Log: Add powerpc support, copied from experimental. Added: trunk/www/kompozer/files/patch-xptcall-powerpc Modified: trunk/www/kompozer/Makefile trunk/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Modified: trunk/www/kompozer/Makefile ============================================================================== --- trunk/www/kompozer/Makefile Wed Sep 30 19:58:47 2009 (r122) +++ trunk/www/kompozer/Makefile Wed Sep 30 20:17:55 2009 (r123) @@ -38,6 +38,11 @@ .include +.if ${ARCH}=="powerpc" +GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED +} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} +.endif + post-patch: ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \ ${WRKSRC}/storage/build/Makefile.in Modified: trunk/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in ============================================================================== --- trunk/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Wed Sep 30 19:58:47 2009 (r122) +++ trunk/www/kompozer/files/patch-xpcom-reflect-xptcall-src-md-unix-Makefile.in Wed Sep 30 20:17:55 2009 (r123) @@ -1,6 +1,6 @@ ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004 -@@ -49,6 +49,9 @@ +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2009-05-02 18:43:37.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-09-28 22:05:47.000000000 +0200 +@@ -66,6 +66,9 @@ ifeq (86,$(findstring 86,$(OS_TEST))) CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp endif @@ -9,8 +9,8 @@ +endif endif # - # New code for Linux, et. al., with gcc -@@ -60,7 +63,7 @@ + # OpenBSD/amd64 +@@ -88,7 +91,7 @@ endif endif # IA64 Linux @@ -19,8 +19,8 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -106,9 +109,15 @@ - ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s +@@ -151,9 +154,15 @@ + CPPSRCS := xptcinvoke_openbsd_alpha.cpp xptcstubs_openbsd_alpha.cpp endif # +# FreeBSD/Alpha @@ -36,12 +36,25 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -294,6 +303,15 @@ - ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc) - CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp - ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s +@@ -293,6 +302,14 @@ + endif + + # ++# FreeBSD/PPC ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDpowerpc) ++CPPSRCS := xptcinvoke_ppc_freebsd.cpp xptcstubs_ppc_freebsd.cpp ++ASFILES := xptcinvoke_asm_ppc_freebsd.s xptcstubs_asm_ppc_freebsd.s +endif ++ +# + # Linux/PPC + # + ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc) +@@ -364,6 +381,15 @@ + ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s + endif + # +# FreeBSD/SPARC64 +# +ifeq ($(OS_ARCH),FreeBSD) @@ -49,6 +62,8 @@ +CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp +ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s +endif - endif - # ++endif ++# # Solaris/SPARC + # + ifeq ($(OS_ARCH),SunOS) Added: trunk/www/kompozer/files/patch-xptcall-powerpc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/www/kompozer/files/patch-xptcall-powerpc Wed Sep 30 20:17:55 2009 (r123) @@ -0,0 +1,584 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_freebsd.cpp 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,232 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++ ++// The PPC/SYSV ABI passes the first 8 integral ++// parameters and the first 8 floating point parameters in registers ++// (r3-r10 and f1-f8), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. The stack pointer has to retain 16-byte alignment, longlongs ++// and doubles are aligned on 8-byte boundaries. ++ ++#define PARAM_BUFFER_COUNT 16 ++#define GPR_COUNT 8 ++#define FPR_COUNT 8 ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gprData[]' contains the arguments passed in integer registers ++// - 'fprData[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, ++ PRUint32 methodIndex, ++ PRUint32* args, ++ PRUint32 *gprData, ++ double *fprData) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ if (! iface_info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint32* ap = args; ++ PRUint32 gpr = 1; // skip one GPR register ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ dp->val.d = fprData[fpr++]; ++ else { ++ if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack ++ dp->val.d = *(double*) ap; ++ ap += 2; ++ } ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && (type == nsXPTType::T_I64 ++ || type == nsXPTType::T_U64)) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ if ((gpr + 1) < GPR_COUNT) { ++ tempu64 = *(PRUint64*) &gprData[gpr]; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack ++ tempu64 = *(PRUint64*) ap; ++ ap += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ tempu32 = gprData[gpr++]; ++ else ++ tempu32 = *ap++; ++ } ++ ++ if(param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) tempu32; ++ continue; ++ } ++ ++ switch(type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++// Load r11 with the constant 'n' and branch to SharedStub(). ++ ++// As G++3 ABI contains the length of the functionname in the mangled ++// name, it is difficult to get a generic assembler mechanism like ++// in the G++ 2.95 case. ++// Create names would be like: ++// _ZN14nsXPTCStubBase5Stub1Ev ++// _ZN14nsXPTCStubBase6Stub12Ev ++// _ZN14nsXPTCStubBase7Stub123Ev ++// _ZN14nsXPTCStubBase8Stub1234Ev ++// etc. ++// Use assembler directives to get the names right... ++ ++# define STUB_ENTRY(n) \ ++__asm__ ( \ ++ ".align 2 \n\t" \ ++ ".if "#n" < 10 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 100 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ ++ \ ++ ".elseif "#n" < 1000 \n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \ ++"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ ++ \ ++ ".else \n\t" \ ++ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \ ++ ".endif \n\t" \ ++ \ ++ "li 11,"#n" \n\t" \ ++ "b SharedStub@local \n" \ ++); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_freebsd.s 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,89 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++ ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl SharedStub ++ .type SharedStub,@function ++ ++SharedStub: ++ stwu sp,-112(sp) # room for ++ # linkage (8), ++ # gprData (32), ++ # fprData (64), ++ # stack alignment(8) ++ mflr r0 ++ stw r0,116(sp) # save LR backchain ++ ++ stw r4,12(sp) # save GP registers ++ stw r5,16(sp) # (n.b. that we don't save r3 ++ stw r6,20(sp) # because PrepareAndDispatch() is savvy) ++ stw r7,24(sp) ++ stw r8,28(sp) ++ stw r9,32(sp) ++ stw r10,36(sp) ++ ++ stfd f1,40(sp) # save FP registers ++ stfd f2,48(sp) ++ stfd f3,56(sp) ++ stfd f4,64(sp) ++ stfd f5,72(sp) ++ stfd f6,80(sp) ++ stfd f7,88(sp) ++ stfd f8,96(sp) ++ ++ # r3 has the 'self' pointer already ++ ++ mr r4,r11 # r4 <= methodIndex selector, passed ++ # via r11 in the nsXPTCStubBase::StubXX() call ++ ++ addi r5,sp,120 # r5 <= pointer to callers args area, ++ # beyond r3-r10/f1-f8 mapped range ++ ++ addi r6,sp,8 # r6 <= gprData ++ addi r7,sp,40 # r7 <= fprData ++ ++ bl PrepareAndDispatch@local # Go! ++ ++ lwz r0,116(sp) # restore LR ++ mtlr r0 ++ la sp,112(sp) # clean up the stack ++ blr ++ +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_freebsd.cpp 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,141 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++ * beard@netscape.com (Patrick Beard) ++ * waterson@netscape.com (Chris Waterson) ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++// The purpose of XPTC_InvokeByIndex() is to map a platform ++// indepenpent call to the platform ABI. To do that, ++// XPTC_InvokeByIndex() has to determine the method to call via vtable ++// access. The parameters for the method are read from the ++// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC ++// ABI this means that the first 8 integral and floating point ++// parameters are passed in registers. ++ ++#include "xptcprivate.h" ++ ++// 8 integral parameters are passed in registers ++#define GPR_COUNT 8 ++ ++// 8 floating point parameters are passed in registers, floats are ++// promoted to doubles when passed in registers ++#define FPR_COUNT 8 ++ ++extern "C" PRUint32 ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ return PRUint32(((paramCount * 2) + 3) & ~3); ++} ++ ++extern "C" void ++invoke_copy_to_stack(PRUint32* d, ++ PRUint32 paramCount, ++ nsXPTCVariant* s, ++ PRUint32* gpregs, ++ double* fpregs) ++{ ++ PRUint32 gpr = 1; // skip one GP reg for 'that' ++ PRUint32 fpr = 0; ++ PRUint32 tempu32; ++ PRUint64 tempu64; ++ ++ for(uint32 i = 0; i < paramCount; i++, s++) { ++ if(s->IsPtrData()) ++ tempu32 = (PRUint32) s->ptr; ++ else { ++ switch(s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: tempu32 = s->val.i8; break; ++ case nsXPTType::T_I16: tempu32 = s->val.i16; break; ++ case nsXPTType::T_I32: tempu32 = s->val.i32; break; ++ case nsXPTType::T_I64: tempu64 = s->val.i64; break; ++ case nsXPTType::T_U8: tempu32 = s->val.u8; break; ++ case nsXPTType::T_U16: tempu32 = s->val.u16; break; ++ case nsXPTType::T_U32: tempu32 = s->val.u32; break; ++ case nsXPTType::T_U64: tempu64 = s->val.u64; break; ++ case nsXPTType::T_BOOL: tempu32 = s->val.b; break; ++ case nsXPTType::T_CHAR: tempu32 = s->val.c; break; ++ case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break; ++ default: tempu32 = (PRUint32) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.d; ++ else { ++ if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack ++ *((double*) d) = s->val.d; ++ d += 2; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (fpr < FPR_COUNT) ++ fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles ++ else ++ *((float*) d++) = s->val.f; ++ } ++ else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 ++ || s->type == nsXPTType::T_U64)) { ++ if ((gpr + 1) < GPR_COUNT) { ++ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 ++ *((PRUint64*) &gpregs[gpr]) = tempu64; ++ gpr += 2; ++ } ++ else { ++ if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack ++ *((PRUint64*) d) = tempu64; ++ d += 2; ++ } ++ } ++ else { ++ if (gpr < GPR_COUNT) ++ gpregs[gpr++] = tempu32; ++ else ++ *d++ = tempu32; ++ } ++ ++ } ++} ++ ++extern "C" ++XPTC_PUBLIC_API(nsresult) ++XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant* params); +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s.orig 2009-09-28 22:06:31.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_freebsd.s 2009-09-28 22:06:31.000000000 +0200 +@@ -0,0 +1,110 @@ ++# -*- Mode: Asm -*- ++# ++# The contents of this file are subject to the Netscape Public ++# License Version 1.1 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy of ++# the License at http://www.mozilla.org/NPL/ ++# ++# Software distributed under the License is distributed on an "AS ++# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++# implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code is mozilla.org code. ++# ++# The Initial Developer of the Original Code is Netscape ++# Communications Corporation. Portions created by Netscape are ++# Copyright (C) 1999 Netscape Communications Corporation. All ++# Rights Reserved. ++# ++# Contributor(s): ++# Franz.Sirl-kernel@lauterbach.com (Franz Sirl) ++# beard@netscape.com (Patrick Beard) ++# waterson@netscape.com (Chris Waterson) ++# ++.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ ++ .section ".text" ++ .align 2 ++ .globl XPTC_InvokeByIndex ++ .type XPTC_InvokeByIndex,@function ++ ++# ++# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++# PRUint32 paramCount, nsXPTCVariant* params) ++# ++ ++XPTC_InvokeByIndex: ++ stwu sp,-32(sp) # setup standard stack frame ++ mflr r0 # save LR ++ stw r3,8(sp) # r3 <= that ++ stw r4,12(sp) # r4 <= methodIndex ++ stw r30,16(sp) ++ stw r31,20(sp) ++ ++ stw r0,36(sp) # store LR backchain ++ mr r31,sp ++ ++ rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f ++ addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96 ++ lwz r9,0(sp) # r9 = backchain ++ neg r0,r0 ++ stwux r9,sp,r0 # reserve stack sapce and save SP backchain ++ ++ addi r3,sp,8 # r3 <= args ++ mr r4,r5 # r4 <= paramCount ++ mr r5,r6 # r5 <= params ++ add r6,r3,r10 # r6 <= gpregs ( == args + r10 ) ++ mr r30,r6 # store in r30 for use later... ++ addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 ) ++ ++ bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs) ++ ++ lfd f1,32(r30) # load FP registers with method parameters ++ lfd f2,40(r30) ++ lfd f3,48(r30) ++ lfd f4,56(r30) ++ lfd f5,64(r30) ++ lfd f6,72(r30) ++ lfd f7,80(r30) ++ lfd f8,88(r30) ++ ++ lwz r3,8(r31) # r3 <= that ++ lwz r4,12(r31) # r4 <= methodIndex ++ lwz r5,0(r3) # r5 <= vtable ( == *that ) ++ ++ slwi r4,r4,2 # convert to offset ( *= 4 ) ++ lwzx r0,r5,r4 # r0 <= methodpointer ( == vtable + offset ) ++ ++ lwz r4,4(r30) # load GP regs with method parameters ++ lwz r5,8(r30) ++ lwz r6,12(r30) ++ lwz r7,16(r30) ++ lwz r8,20(r30) ++ lwz r9,24(r30) ++ lwz r10,28(r30) ++ ++ mtlr r0 # copy methodpointer to LR ++ blrl # call method ++ ++ lwz r30,16(r31) # restore r30 & r31 ++ lwz r31,20(r31) ++ ++ lwz r11,0(sp) # clean up the stack ++ lwz r0,4(r11) ++ mtlr r0 ++ mr sp,r11 ++ blr From owner-freebsd-gecko@FreeBSD.ORG Wed Sep 30 22:39:24 2009 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 913941065692; Wed, 30 Sep 2009 22:39:24 +0000 (UTC) (envelope-from marcus@marcuscom.com) Received: from creme-brulee.marcuscom.com (marcuscom-pt.tunnel.tserv1.fmt.ipv6.he.net [IPv6:2001:470:1f00:ffff::1279]) by mx1.freebsd.org (Postfix) with ESMTP id 2B76F8FC08; Wed, 30 Sep 2009 22:39:24 +0000 (UTC) Received: from [IPv6:2001:470:1f00:2464::4] (shumai.marcuscom.com [IPv6:2001:470:1f00:2464::4]) by creme-brulee.marcuscom.com (8.14.3/8.14.3) with ESMTP id n8UMdQZo048462; Wed, 30 Sep 2009 18:39:26 -0400 (EDT) (envelope-from marcus@marcuscom.com) From: Joe Marcus Clarke To: Beat Gaetzi In-Reply-To: <4ABF7367.6050300@FreeBSD.org> References: <4ABF7367.6050300@FreeBSD.org> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-hGNItzFNSslrto3zTzIj" Organization: MarcusCom, Inc. Date: Wed, 30 Sep 2009 18:39:27 -0400 Message-Id: <1254350367.94567.33.camel@shumai.marcuscom.com> Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 FreeBSD GNOME Team Port X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on creme-brulee.marcuscom.com Cc: gnome@freebsd.org, freebsd-gecko@freebsd.org Subject: Re: Building devel/gtkmozedit with libxul gecko provider 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: Wed, 30 Sep 2009 22:39:24 -0000 --=-hGNItzFNSslrto3zTzIj Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2009-09-27 at 16:15 +0200, Beat Gaetzi wrote: > Hi, >=20 > We are going to remove xulrunner, Firefox 2 and Mozilla from the ports > tree. We created a patch which switches all ports using xulrunner, > firefox or mozilla gecko provider to libxul. > Unfortunately three ports failed during the exp-run. One of them is > devel/gtkmozedit which is maintained by the Gnome team. I tried to fix > this problem but was not successful. > Could you please take a look at this problem. Is it possible to use > gtkmozedit with libxul gecko provider? If not, should we remove the port? >=20 > Patch which was tested on pointyhat is available here (updated version > for current ports tree): > http://tmp.chruetertee.ch/gecko-ff-removal-part2-v0.3.patch >=20 > Pointyhat log is here: > http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.7-exp.20090917174= 615/gtkmozedit-0.3.0_5.log The log is gone, but I have no interest in updating gtkmozedit for libxul. If none of the other team members reply, then feel free to remove it. Joe --=20 PGP Key : http://www.marcuscom.com/pgp.asc --=-hGNItzFNSslrto3zTzIj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEABECAAYFAkrD3h4ACgkQb2iPiv4Uz4f22QCfTFsZgEFYQLjISYPgW9WVNt63 YTUAoKRvscDq1VBkwzB0Mra4+PyLI/hc =mYpH -----END PGP SIGNATURE----- --=-hGNItzFNSslrto3zTzIj-- From owner-freebsd-gecko@FreeBSD.ORG Thu Oct 1 15:12:23 2009 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 AA7321065672 for ; Thu, 1 Oct 2009 15:12:23 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 475098FC15 for ; Thu, 1 Oct 2009 15:12:23 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n91FCMlH097698 for ; Thu, 1 Oct 2009 15:12:22 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n91FCHHw096975 for freebsd-gecko@freebsd.org; Thu, 1 Oct 2009 15:12:17 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Thu, 1 Oct 2009 15:12:17 GMT Message-Id: <200910011512.n91FCHHw096975@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r124 - branches/experimental/mail/thunderbird-devel/files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Oct 2009 15:12:23 -0000 Author: beat Date: Thu Oct 1 15:12:16 2009 New Revision: 124 Log: - Fix patch path Modified: branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk Modified: branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk ============================================================================== --- branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk Wed Sep 30 20:17:55 2009 (r123) +++ branches/experimental/mail/thunderbird-devel/files/patch-security-coreconf-FreeBSD.mk Thu Oct 1 15:12:16 2009 (r124) @@ -1,5 +1,5 @@ ---- security/coreconf/FreeBSD.mk.orig 2009-09-16 02:57:02.000000000 +0200 -+++ security/coreconf/FreeBSD.mk 2009-09-30 16:44:43.000000000 +0200 +--- mozilla/security/coreconf/FreeBSD.mk.orig 2009-09-16 02:57:02.000000000 +0200 ++++ mozilla/security/coreconf/FreeBSD.mk 2009-09-30 16:44:43.000000000 +0200 @@ -45,8 +45,20 @@ ifeq ($(OS_TEST),alpha) CPU_ARCH = alpha From owner-freebsd-gecko@FreeBSD.ORG Thu Oct 1 22:23:36 2009 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 3CEDA1065676; Thu, 1 Oct 2009 22:23:36 +0000 (UTC) (envelope-from mezz7@cox.net) Received: from eastrmmtai104.cox.net (eastrmmtai104.cox.net [68.230.240.11]) by mx1.freebsd.org (Postfix) with ESMTP id B03038FC0A; Thu, 1 Oct 2009 22:23:35 +0000 (UTC) Received: from eastrmimpo03.cox.net ([68.1.16.126]) by eastrmmtao107.cox.net (InterMail vM.8.00.01.00 201-2244-105-20090324) with ESMTP id <20091001220340.TYSM19505.eastrmmtao107.cox.net@eastrmimpo03.cox.net>; Thu, 1 Oct 2009 18:03:40 -0400 Received: from localhost ([68.103.37.153]) by eastrmimpo03.cox.net with bizsmtp id na3g1c00B3JFCbG02a3h64; Thu, 01 Oct 2009 18:03:41 -0400 X-VR-Score: -245.00 X-Authority-Analysis: v=1.0 c=1 a=xR5UGGDgzpcA:10 a=6I5d2MoRAAAA:8 a=nKsjC9ClAAAA:8 a=HCtGnLr1AAAA:8 a=kviXuzpPAAAA:8 a=WwL9oaoi0YJrGWwR1bQA:9 a=xz9_pU2Og1jg_r5esa0A:7 a=eCFUaIBtHGLRfJxxM3qgLFoWwR8A:4 a=SV7veod9ZcQA:10 a=4vB-4DCPJfMA:10 X-CM-Score: 0.00 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes References: <4ABF7367.6050300@FreeBSD.org> To: "Beat Gaetzi" Date: Thu, 01 Oct 2009 17:06:01 -0500 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: "Jeremy Messenger" Message-ID: In-Reply-To: <4ABF7367.6050300@FreeBSD.org> User-Agent: Opera Mail/10.00 (Linux) Cc: gnome@freebsd.org, freebsd-gecko@freebsd.org Subject: Re: Building devel/gtkmozedit with libxul gecko provider 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: Thu, 01 Oct 2009 22:23:36 -0000 On Sun, 27 Sep 2009 09:15:03 -0500, Beat Gaetzi wrote: > Hi, > > We are going to remove xulrunner, Firefox 2 and Mozilla from the ports > tree. We created a patch which switches all ports using xulrunner, > firefox or mozilla gecko provider to libxul. > Unfortunately three ports failed during the exp-run. One of them is > devel/gtkmozedit which is maintained by the Gnome team. I tried to fix > this problem but was not successful. > Could you please take a look at this problem. Is it possible to use > gtkmozedit with libxul gecko provider? If not, should we remove the port? > > Patch which was tested on pointyhat is available here (updated version > for current ports tree): > http://tmp.chruetertee.ch/gecko-ff-removal-part2-v0.3.patch > > Pointyhat log is here: > http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.7-exp.20090917174615/gtkmozedit-0.3.0_5.log You can remove this port, it's no longer being development in the upstream for four years. http://www.advogato.org/proj/GtkMozEdit/ Cheers, Mezz > Thanks, > Beat, on behalf of the FreeBSD-Gecko Team -- mezz7@cox.net - mezz@FreeBSD.org FreeBSD GNOME Team http://www.FreeBSD.org/gnome/ - gnome@FreeBSD.org From owner-freebsd-gecko@FreeBSD.ORG Fri Oct 2 09:30:04 2009 Return-Path: Delivered-To: gecko@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7BF95106566B for ; Fri, 2 Oct 2009 09:30:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 6C03C8FC13 for ; Fri, 2 Oct 2009 09:30:04 +0000 (UTC) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n929U4SF032858 for ; Fri, 2 Oct 2009 09:30:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n929U4uL032855; Fri, 2 Oct 2009 09:30:04 GMT (envelope-from gnats) Date: Fri, 2 Oct 2009 09:30:04 GMT Message-Id: <200910020930.n929U4uL032855@freefall.freebsd.org> To: gecko@FreeBSD.org From: Beat Gaetzi Cc: Subject: Re: ports/138902: deskutils/lightning-xpi not available in thunderbird on FreeBSD 8 Beta4 amd64 X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Beat Gaetzi List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2009 09:30:04 -0000 The following reply was made to PR ports/138902; it has been noted by GNATS. From: Beat Gaetzi To: Eric Krausser Cc: bug-followup@FreeBSD.org Subject: Re: ports/138902: deskutils/lightning-xpi not available in thunderbird on FreeBSD 8 Beta4 amd64 Date: Fri, 02 Oct 2009 11:30:20 +0200 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Eric, Eric Krausser wrote: > # pkg_info -Ix lightning > lightning-xpi-0.9 An integrated calendar for Thunderbird > # pkg_info -Ix thunderbird > thunderbird-2.0.0.23 Mozilla Thunderbird is standalone mail and news > that stands > thunderbird-i18n-2.0.0.23 Localized interface for Thunderbird > > No Lightning in "Add-Ons" and no icons on the under corner. > > # pkg_info -L lightning-xpi-0.9 > Information for lightning-xpi-0.9: Could you please download this file and move it to /usr/ports/distfiles: http://people.freebsd.org/~beat/pr/138902/lightning-0.9-tb-FreeBSD8-amd64.xpi Please also apply this patch to the port an reinstall lightning-xpi: http://people.freebsd.org/~beat/pr/138902/lightning-xpi-138902.patch Beat -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkrFyCwACgkQQMW893dCSdsh6gCfQsTmX5D2EbGAKUo60LSPUTTd 1ZUAnjUMihsvlGsT3vo+IybWlenti7m4 =QMRf -----END PGP SIGNATURE----- From owner-freebsd-gecko@FreeBSD.ORG Fri Oct 2 11:40:03 2009 Return-Path: Delivered-To: gecko@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E162A106568D for ; Fri, 2 Oct 2009 11:40:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id D01648FC0A for ; Fri, 2 Oct 2009 11:40:03 +0000 (UTC) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n92Be3C2071029 for ; Fri, 2 Oct 2009 11:40:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n92Be3Mo071028; Fri, 2 Oct 2009 11:40:03 GMT (envelope-from gnats) Date: Fri, 2 Oct 2009 11:40:03 GMT Message-Id: <200910021140.n92Be3Mo071028@freefall.freebsd.org> To: gecko@FreeBSD.org From: Eric Krausser Cc: Subject: Re: ports/138902: deskutils/lightning-xpi not available in thunderbird on FreeBSD 8 Beta4 amd64 X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Eric Krausser List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2009 11:40:04 -0000 The following reply was made to PR ports/138902; it has been noted by GNATS. From: Eric Krausser To: Beat Gaetzi Cc: bug-followup@FreeBSD.org Subject: Re: ports/138902: deskutils/lightning-xpi not available in thunderbird on FreeBSD 8 Beta4 amd64 Date: Fri, 02 Oct 2009 13:34:53 +0200 Beat Gaetzi schrieb: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi Eric, > > Eric Krausser wrote: >> # pkg_info -Ix lightning >> lightning-xpi-0.9 An integrated calendar for Thunderbird >> # pkg_info -Ix thunderbird >> thunderbird-2.0.0.23 Mozilla Thunderbird is standalone mail and news >> that stands >> thunderbird-i18n-2.0.0.23 Localized interface for Thunderbird >> >> No Lightning in "Add-Ons" and no icons on the under corner. >> >> # pkg_info -L lightning-xpi-0.9 >> Information for lightning-xpi-0.9: > > Could you please download this file and move it to /usr/ports/distfiles: > http://people.freebsd.org/~beat/pr/138902/lightning-0.9-tb-FreeBSD8-amd64.xpi > > Please also apply this patch to the port an reinstall lightning-xpi: > http://people.freebsd.org/~beat/pr/138902/lightning-xpi-138902.patch > > Beat > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.12 (FreeBSD) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iEYEARECAAYFAkrFyCwACgkQQMW893dCSdsh6gCfQsTmX5D2EbGAKUo60LSPUTTd > 1ZUAnjUMihsvlGsT3vo+IybWlenti7m4 > =QMRf > -----END PGP SIGNATURE----- Hi Beat, your patch solved this bug, now I can use Lightning again. Thanks! I 've tested: * old entries are still there * can create new event * delete event * switch Mail/Calender/Task views Few days ago I switched to 8.0-stable, by the way. Thank you for your great work on FreeBSD in general! Eric From owner-freebsd-gecko@FreeBSD.ORG Fri Oct 2 14:38:55 2009 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 77D33106568B for ; Fri, 2 Oct 2009 14:38:55 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 217168FC08 for ; Fri, 2 Oct 2009 14:38:54 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n92EcrHf032189 for ; Fri, 2 Oct 2009 14:38:53 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n92EcmIT031332 for freebsd-gecko@freebsd.org; Fri, 2 Oct 2009 14:38:48 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Fri, 2 Oct 2009 14:38:48 GMT Message-Id: <200910021438.n92EcmIT031332@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r125 - in branches/experimental/www/libxul: . files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2009 14:38:55 -0000 Author: andreast Date: Fri Oct 2 14:38:48 2009 New Revision: 125 Log: Fix sparc64 support. Added: branches/experimental/www/libxul/files/patch-js-src-configure.in Modified: branches/experimental/www/libxul/Makefile branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk branches/experimental/www/libxul/files/patch-xptcall-sparc64 Modified: branches/experimental/www/libxul/Makefile ============================================================================== --- branches/experimental/www/libxul/Makefile Thu Oct 1 15:12:16 2009 (r124) +++ branches/experimental/www/libxul/Makefile Fri Oct 2 14:38:48 2009 (r125) @@ -19,6 +19,7 @@ LIB_DEPENDS?= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib +USE_AUTOTOOLS= autoconf:213 CONFLICTS= mozilla-[0-9]* xulrunner-[0-9]* GECKO_PLIST_PRE_DIRS= lib/${MOZILLA}/bin lib/${MOZILLA}/idl \ lib/${MOZILLA}/include lib/${MOZILLA}/lib \ @@ -60,9 +61,6 @@ EXTRA_PATCHES= ${FILESDIR}/libsydney_oss .endif -.if ${ARCH} == "sparc64" -BROKEN= Does not compile on sparc64 -.endif post-patch: ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \ @@ -74,6 +72,9 @@ s|/usr/X11R6|${LOCALBASE}|g' \ ${WRKSRC}/js/src/configure +pre-configure: + (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) + post-build: @${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2| ; \ s|%sdkdir%|%sdkdir%/sdk|g ; \ Added: branches/experimental/www/libxul/files/patch-js-src-configure.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/experimental/www/libxul/files/patch-js-src-configure.in Fri Oct 2 14:38:48 2009 (r125) @@ -0,0 +1,13 @@ +--- js/src/configure.in.orig 2009-09-30 21:50:26.000000000 +0200 ++++ js/src/configure.in 2009-09-30 21:50:44.000000000 +0200 +@@ -2467,10 +2467,6 @@ + ENABLE_JIT=1 + NANOJIT_ARCH=ARM + ;; +-sparc*-*) +- ENABLE_JIT=1 +- NANOJIT_ARCH=Sparc +- ;; + esac + + MOZ_ARG_DISABLE_BOOL(jit, Modified: branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk ============================================================================== --- branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk Thu Oct 1 15:12:16 2009 (r124) +++ branches/experimental/www/libxul/files/patch-security_coreconf_FreeBSD.mk Fri Oct 2 14:38:48 2009 (r125) @@ -1,6 +1,6 @@ --- security/coreconf/FreeBSD.mk.orig 2009-08-24 17:52:57.000000000 +0200 -+++ security/coreconf/FreeBSD.mk 2009-09-27 21:08:00.000000000 +0200 -@@ -37,16 +37,22 @@ ++++ security/coreconf/FreeBSD.mk 2009-10-01 07:13:15.000000000 +0200 +@@ -37,16 +37,26 @@ include $(CORE_DEPTH)/coreconf/UNIX.mk @@ -19,14 +19,18 @@ +ifeq ($(OS_TEST),powerpc) +CPU_ARCH = powerpc +else ++ifeq ($(OS_TEST),sparc64) ++CPU_ARCH = sparc64 ++else CPU_ARCH = x86 endif +endif +endif ++endif OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -@@ -73,7 +79,11 @@ +@@ -73,7 +83,11 @@ DLL_SUFFIX = so.1.0 endif @@ -39,7 +43,7 @@ ifdef MAPFILE MKSHLIB += -Wl,--version-script,$(MAPFILE) endif -@@ -82,4 +92,4 @@ +@@ -82,4 +96,4 @@ G++INCLUDES = -I/usr/include/g++ Modified: branches/experimental/www/libxul/files/patch-xptcall-sparc64 ============================================================================== --- branches/experimental/www/libxul/files/patch-xptcall-sparc64 Thu Oct 1 15:12:16 2009 (r124) +++ branches/experimental/www/libxul/files/patch-xptcall-sparc64 Fri Oct 2 14:38:48 2009 (r125) @@ -1,6 +1,6 @@ ---- /dev/null Mon May 26 13:22:00 2003 -+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp Mon May 26 04:12:55 2003 -@@ -0,0 +1,123 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp.orig 2009-09-30 22:48:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp 2009-09-30 23:09:48.000000000 +0200 +@@ -0,0 +1,125 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Mozilla Public @@ -27,6 +27,7 @@ +/* Implement shared vtbl methods. */ + +#include "xptcprivate.h" ++#include "xptiprivate.h" + +#if defined(sparc) || defined(__sparc__) + @@ -38,7 +39,6 @@ + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = NULL; -+ nsIInterfaceInfo* iface_info = NULL; + const nsXPTMethodInfo* info; + PRUint8 paramCount; + PRUint8 i; @@ -46,11 +46,10 @@ + + NS_ASSERTION(self,"no self"); + -+ self->GetInterfaceInfo(&iface_info); -+ NS_ASSERTION(iface_info,"no interface info"); -+ -+ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); -+ NS_ASSERTION(info,"no interface info"); ++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + @@ -59,8 +58,12 @@ + dispatchParams = new nsXPTCMiniVariant[paramCount]; + else + dispatchParams = paramBuffer; ++ + NS_ASSERTION(dispatchParams,"no place for params"); + ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ + PRUint64* ap = args; + for(i = 0; i < paramCount; i++, ap++) + { @@ -95,10 +98,9 @@ + } + } + -+ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams); -+ -+ NS_RELEASE(iface_info); -+ ++ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, ++ dispatchParams); ++ + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + @@ -124,8 +126,8 @@ +#include "xptcstubsdef.inc" + +#endif /* sparc || __sparc__ */ ---- /dev/null Mon May 26 13:22:00 2003 -+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s Mon May 26 04:06:09 2003 +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s.orig 2009-09-30 22:48:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s 2009-09-30 22:48:25.000000000 +0200 @@ -0,0 +1,104 @@ +/* -*- Mode: asm; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * @@ -161,15 +163,15 @@ + The SCD is available from http://www.sparc.com/. +*/ + -+ .global XPTC_InvokeByIndex -+ .type XPTC_InvokeByIndex, #function ++ .global NS_InvokeByIndex_P ++ .type NS_InvokeByIndex_P, #function + +/* -+ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params); + +*/ -+XPTC_InvokeByIndex: ++NS_InvokeByIndex_P: + save %sp,-(128 + 64),%sp ! room for the register window and + ! struct pointer, rounded up to 0 % 64 + sll %i2,4,%l0 ! assume the worst case @@ -230,9 +232,9 @@ + ret + restore + -+ .size XPTC_InvokeByIndex, .-XPTC_InvokeByIndex ---- /dev/null Mon May 26 14:00:00 2003 -+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp Mon May 26 14:00:49 2003 ++ .size NS_InvokeByIndex_P, .-NS_InvokeByIndex_P +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp.orig 2009-09-30 22:48:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp 2009-09-30 22:48:25.000000000 +0200 @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * From owner-freebsd-gecko@FreeBSD.ORG Fri Oct 2 15:16:08 2009 Return-Path: Delivered-To: gecko@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2817106568F; Fri, 2 Oct 2009 15:16:08 +0000 (UTC) (envelope-from beat@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id C84B28FC0C; Fri, 2 Oct 2009 15:16:08 +0000 (UTC) Received: from freefall.freebsd.org (beat@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n92FG8N0095563; Fri, 2 Oct 2009 15:16:08 GMT (envelope-from beat@freefall.freebsd.org) Received: (from beat@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n92FG8T9095559; Fri, 2 Oct 2009 15:16:08 GMT (envelope-from beat) Date: Fri, 2 Oct 2009 15:16:08 GMT Message-Id: <200910021516.n92FG8T9095559@freefall.freebsd.org> To: beat@FreeBSD.org, gecko@FreeBSD.org, beat@FreeBSD.org From: beat@FreeBSD.org Cc: Subject: Re: ports/138902: deskutils/lightning-xpi not available in thunderbird on FreeBSD 8 Beta4 amd64 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, 02 Oct 2009 15:16:09 -0000 Synopsis: deskutils/lightning-xpi not available in thunderbird on FreeBSD 8 Beta4 amd64 Responsible-Changed-From-To: gecko->beat Responsible-Changed-By: beat Responsible-Changed-When: Fri Oct 2 15:16:08 UTC 2009 Responsible-Changed-Why: I'll take it. http://www.freebsd.org/cgi/query-pr.cgi?pr=138902 From owner-freebsd-gecko@FreeBSD.ORG Fri Oct 2 20:36:04 2009 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 4D16A1065692 for ; Fri, 2 Oct 2009 20:36:04 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id DBB378FC18 for ; Fri, 2 Oct 2009 20:36:03 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n92Ka2bK083478 for ; Fri, 2 Oct 2009 20:36:02 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n92KZvqQ083106 for freebsd-gecko@freebsd.org; Fri, 2 Oct 2009 20:35:57 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Fri, 2 Oct 2009 20:35:57 GMT Message-Id: <200910022035.n92KZvqQ083106@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r126 - branches/experimental/www/seamonkey-devel X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2009 20:36:04 -0000 Author: andreast Date: Fri Oct 2 20:35:57 2009 New Revision: 126 Log: Add powerpc support. Modified: branches/experimental/www/seamonkey-devel/Makefile Modified: branches/experimental/www/seamonkey-devel/Makefile ============================================================================== --- branches/experimental/www/seamonkey-devel/Makefile Fri Oct 2 14:38:48 2009 (r125) +++ branches/experimental/www/seamonkey-devel/Makefile Fri Oct 2 20:35:57 2009 (r126) @@ -67,7 +67,8 @@ MOZSRC:= ${WRKDIR}/comm-central/mozilla WRKSRC= ${WRKDIR}/comm-central -GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 pthread | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} +GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED +} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} .if ${HAVE_GNOME:Mlibgnomeui}!="" USE_GNOME+= libgnomeui From owner-freebsd-gecko@FreeBSD.ORG Sat Oct 3 19:06:59 2009 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 4CA06106568B for ; Sat, 3 Oct 2009 19:06:59 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id E5C038FC13 for ; Sat, 3 Oct 2009 19:06:58 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.3/8.14.3) with ESMTP id n93J6vTS031998 for ; Sat, 3 Oct 2009 19:06:57 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.3/8.14.3/Submit) id n93J6qul031255 for freebsd-gecko@freebsd.org; Sat, 3 Oct 2009 19:06:52 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Sat, 3 Oct 2009 19:06:52 GMT Message-Id: <200910031906.n93J6qul031255@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r127 - branches/experimental/www/libxul/files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Oct 2009 19:06:59 -0000 Author: andreast Date: Sat Oct 3 19:06:51 2009 New Revision: 127 Log: Fix amd64 support for libxul. Modified: branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in branches/experimental/www/libxul/files/patch-xptcall-amd64 Modified: branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in ============================================================================== --- branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in Fri Oct 2 20:35:57 2009 (r126) +++ branches/experimental/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in Sat Oct 3 19:06:51 2009 (r127) @@ -1,5 +1,5 @@ --- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2009-08-24 17:53:28.000000000 +0200 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-09-27 21:15:47.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-10-02 22:34:36.000000000 +0200 @@ -70,6 +70,9 @@ ifeq (Darwin,$(OS_ARCH)) DEFINES += -DKEEP_STACK_16_BYTE_ALIGNED @@ -10,7 +10,7 @@ endif endif # -@@ -87,7 +90,7 @@ +@@ -87,12 +90,20 @@ endif endif # IA64 Linux @@ -19,7 +19,20 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -150,9 +153,15 @@ + endif + endif ++ ++# ++# FreeBSD/amd64 ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDamd64) ++CPPSRCS := xptcinvoke_amd64_freebsd.cpp xptcstubs_amd64_freebsd.cpp ++endif ++ + # + # OpenBSD/amd64 + # +@@ -150,9 +161,15 @@ ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s endif # @@ -36,7 +49,7 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -304,6 +313,14 @@ +@@ -304,6 +321,14 @@ CXXFLAGS := $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(CXXFLAGS)) endif @@ -51,7 +64,7 @@ # # Linux/PPC # -@@ -385,6 +402,15 @@ +@@ -385,6 +410,15 @@ ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s endif # Modified: branches/experimental/www/libxul/files/patch-xptcall-amd64 ============================================================================== --- branches/experimental/www/libxul/files/patch-xptcall-amd64 Fri Oct 2 20:35:57 2009 (r126) +++ branches/experimental/www/libxul/files/patch-xptcall-amd64 Sat Oct 3 19:06:51 2009 (r127) @@ -1,5 +1,5 @@ ---- /dev/null Wed Dec 31 16:00:00 1969 -+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_freebsd.cpp Thu Oct 16 22:59:43 2003 +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_freebsd.cpp.orig 2009-10-02 22:13:13.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_freebsd.cpp 2009-10-02 22:41:36.000000000 +0200 @@ -0,0 +1,174 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +// Platform specific code to invoke XPCOM methods on native objects @@ -98,8 +98,8 @@ +} + +extern "C" -+XPTC_PUBLIC_API(nsresult) -+XPTC_InvokeByIndex(nsISupports * that, PRUint32 methodIndex, ++EXPORT_XPCOM_API(nsresult) ++NS_InvokeByIndex_P(nsISupports * that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant * params) +{ + PRUint32 nr_gpr, nr_fpr, nr_stack; @@ -175,14 +175,15 @@ + PRUint32 result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5); + return result; +} ---- /dev/null Wed Dec 31 16:00:00 1969 -+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_freebsd.cpp Thu Oct 16 23:01:08 2003 -@@ -0,0 +1,206 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_freebsd.cpp.orig 2009-10-02 22:13:13.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_freebsd.cpp 2009-10-02 22:39:37.000000000 +0200 +@@ -0,0 +1,200 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ + +// Implement shared vtbl methods. + +#include "xptcprivate.h" ++#include "xptiprivate.h" + +// The Linux/x86-64 ABI passes the first 6 integral parameters and the +// first 8 floating point parameters in registers (rdi, rsi, rdx, rcx, @@ -209,7 +210,6 @@ +{ + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = NULL; -+ nsIInterfaceInfo* iface_info = NULL; + const nsXPTMethodInfo* info; + PRUint32 paramCount; + PRUint32 i; @@ -217,12 +217,7 @@ + + NS_ASSERTION(self,"no self"); + -+ self->GetInterfaceInfo(&iface_info); -+ NS_ASSERTION(iface_info,"no interface info"); -+ if (! iface_info) -+ return NS_ERROR_UNEXPECTED; -+ -+ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info); + NS_ASSERTION(info,"no method info"); + if (! info) + return NS_ERROR_UNEXPECTED; @@ -297,9 +292,8 @@ + } + } + -+ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); -+ -+ NS_RELEASE(iface_info); ++ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, ++ dispatchParams); + + if (dispatchParams != paramBuffer) + delete [] dispatchParams;