Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Aug 2008 19:55:46 +0100
From:      Anton Shterenlikht <mexas@bristol.ac.uk>
To:        Glen Nakamura <glen@imodulo.com>
Cc:        freebsd-alpha@freebsd.org
Subject:   xptcinvoke and xptcstubs for firefox3 on FreeBSD Alpha
Message-ID:  <20080803185545.GA6782@mech-cluster238.men.bris.ac.uk>
In-Reply-To: <20080803171000.GA30383@modulo.internal>
References:  <20080803164656.GA5775@mech-cluster238.men.bris.ac.uk> <20080803171000.GA30383@modulo.internal>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 03, 2008 at 07:10:00AM -1000, Glen Nakamura wrote:
> On Sun, Aug 03, 2008 at 05:46:56PM +0100, Anton Shterenlikht wrote:
> > I'm trying to trace Glen Nakamura, a contributor to firefox,
> > regarding some of his code.
> > 
> > If it is the same Glen who holds the copyright to your site,
> > please put me in touch with him.
> 
> Aloha Anton,
> 
> I contributed the Linux Alpha port of the xptcall interface
> to the Mozilla project...  What piece of code are you inquiring about?

Glen, many thanks for a quick reply.

(copied to freebsd-alpha mailing list)

I'm trying to build firefox3 on FreeBSD Alpha.
The build fails because files

	xptcinvoke_freebsd_alpha.cpp
	xptcstubs_freebsd_alpha.cpp

(at least these 2, there might be more) are missing from the distribution.
I understand you wrote the code in these files for firefox2.

I've build firefox2 fine on the same machine, and I decided
to just copy these 2 files from firefox2 source tree to
firerox3 as is. The build fails with the following error:

gmake[8]: Entering directory `/usr/ports/www/firefox3/work/mozilla/xpcom/reflect
/xptcall/src/md/unix'
xptcinvoke_freebsd_alpha.cpp
c++ -o xptcinvoke_freebsd_alpha.o -c  -DMOZILLA_INTERNAL_API -DOSTYPE=\"FreeBSD6
\" -DOSARCH=FreeBSD -DEXPORT_XPTC_API -D_IMPL_NS_COM -I./../.. -I./../../../../x
ptinfo/src  -I. -I. -I../../../../../../dist/include/string -I../../../../../../
dist/include   -I../../../../../../dist/include/xpcom -I/usr/local/include/nspr
  -I/usr/include  -I/usr/local/include   -fPIC  -I/usr/local/include  -I/usr/loc
al/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Woverlo
aded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -
Wno-long-long -O -pipe -mcpu=ev6 -mieee -O2 -fno-strict-aliasing -fno-strict-ali
asing -fshort-wchar -pipe  -DNDEBUG -DTRIMMED -O  -I/usr/local/include  -I/usr/l
ocal/include -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h xptcin
voke_freebsd_alpha.cpp
xptcstubs_freebsd_alpha.cpp
c++ -o xptcstubs_freebsd_alpha.o -c  -DMOZILLA_INTERNAL_API -DOSTYPE=\"FreeBSD6\
" -DOSARCH=FreeBSD -DEXPORT_XPTC_API -D_IMPL_NS_COM -I./../.. -I./../../../../xp
tinfo/src  -I. -I. -I../../../../../../dist/include/string -I../../../../../../d
ist/include   -I../../../../../../dist/include/xpcom -I/usr/local/include/nspr
 -I/usr/include  -I/usr/local/include   -fPIC  -I/usr/local/include  -I/usr/loca
l/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Woverloa
ded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -W
no-long-long -O -pipe -mcpu=ev6 -mieee -O2 -fno-strict-aliasing -fno-strict-alia
sing -fshort-wchar -pipe  -DNDEBUG -DTRIMMED -O  -I/usr/local/include  -I/usr/lo
cal/include -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h xptcstu
bs_freebsd_alpha.cpp
xptcstubs_freebsd_alpha.cpp: In function `nsresult PrepareAndDispatch(nsXPTCStub
Base*, uint32, PRUint64*)':
xptcstubs_freebsd_alpha.cpp:59: error: `nsIInterfaceInfo' was not declared in th
is scope
xptcstubs_freebsd_alpha.cpp:59: error: `iface_info' was not declared in this sco
pe
xptcstubs_freebsd_alpha.cpp:67: error: 'class nsXPTCStubBase' has no member name
d 'GetInterfaceInfo'
xptcstubs_freebsd_alpha.cpp:131: error: 'class nsXPTCStubBase' has no member nam
ed 'CallMethod'
xptcstubs_freebsd_alpha.cpp:59: warning: unused variable 'nsIInterfaceInfo'
gmake[8]: *** [xptcstubs_freebsd_alpha.o] Error 1
gmake[8]: Leaving directory `/usr/ports/www/firefox3/work/mozilla/xpcom/reflect/
xptcall/src/md/unix'
gmake[7]: *** [libs] Error 2



So, it seems xptcinvoke compiles fine, but xptcstubs fails.

Could you please give brief explanation of what the code
in these files actually does, or point to a manual/doc if
possible. I'm not a programmer myself, particularly not
an assembler person, so reading the files didn't give me
much insight.

I had a very brief look at the distribution tree
and I believe these 2 files are generated during
configure stage from ./files/patch-xptcall-alpha,
which is also missing in firefox3 distribution.
Please comment on this as well if you can.

Finally, how much work do you think is needed to port these 2 files
from firefox2 to firefox3? Is it really just 2 files, or
there is much more work to be done?

many thanks
anton

-- 
Anton Shterenlikht
Room 2.6, Queen's Building
Mech Eng Dept
Bristol University
University Walk, Bristol BS8 1TR, UK
Tel: +44 (0)117 928 8233 
Fax: +44 (0)117 929 4423



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080803185545.GA6782>