Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[XPCOM] xptc error for unsupported platform on running firefox

8 views
Skip to first unread message

Pradeep

unread,
Sep 9, 2007, 12:49:51 AM9/9/07
to
hello,
I was hoping to cross compile firefox to run it on a tensilica
xtensa processor that boots linux. I managed to complete the
compilation and generate the files for firefox without any error. But
when I run firefox, I end up with the below message :

###!!! ASSERTION: XPTC_InvokeByIndex called on unsupported platform:
'0', file xptcinvoke_unsupporte
d.cpp, line 46
Break: at file xptcinvoke_unsupported.cpp, line 46
JS Component Loader: ERROR (null):0
uncaught exception: unknown (can't convert to
string)

I went to see the list of platforms for xptcall and could not find my
processor there. So would i be correct in thinking that I cannot run
firefox on this platform or is there a way to build firefox without
this library.

Thank you for any help.

Sincerely
Pradeep

Pradeep

unread,
Sep 9, 2007, 2:19:30 AM9/9/07
to
Hello,
I just found this information in the FAQ.

< Non-functional stub code exists to allow building xptcall on non-
supported platforms. But any browser feature that relies on xpconnect
will fail. >

Could you please direct me where I can get this information so that I
can run the firefox browser.

Thank you
Pradeep

Ted Mielczarek

unread,
Sep 10, 2007, 8:22:19 AM9/10/07
to
On Sep 9, 2:19 am, Pradeep <pchimakur...@gmail.com> wrote:
> Hello,
> I just found this information in the FAQ.
>
> < Non-functional stub code exists to allow building xptcall on non-
> supported platforms. But any browser feature that relies on xpconnect
> will fail. >
>
> Could you please direct me where I can get this information so that I
> can run the firefox browser.

Firefox relies heavily on xptcall, it is not possible to build without
it. You can port xptcall to your platform if you so choose:
http://lxr.mozilla.org/mozilla/source/xpcom/reflect/xptcall/porting.html

-Ted

Benjamin Smedberg

unread,
Sep 10, 2007, 9:29:57 AM9/10/07
to
Pradeep wrote:

> Could you please direct me where I can get this information so that I
> can run the firefox browser.

What information? Information on how to write the xptcall assembly code for
your platform? The best place is probably the existing assembly: You
basically need to implement two features: xptinvoke and xptstub.

Introduction docs: http://www.mozilla.org/scriptable/xptcall-faq.html
Porting docs:
http://lxr.mozilla.org/seamonkey/source/xpcom/reflect/xptcall/porting.html

xptinvoke is what handles calling a C++ virtual function (an XPCOM interface
method) with arbitrary types determined at runtime. You need to implement
NS_InvokeByIndex (or on the branch, XPTC_InvokeByIndex). See
http://mxr.mozilla.org/mozilla/source/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp

xptstubs are the other side of the call, so that binary code can *implement*
arbitrary interfaces and call signatures at runtime. See, for instance,
http://mxr.mozilla.org/mozilla/source/xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp

--BDS

Sergey Yanovich

unread,
Sep 10, 2007, 11:06:04 AM9/10/07
to
Benjamin Smedberg wrote:
> xptinvoke is what handles calling a C++ virtual function (an XPCOM interface
> method) with arbitrary types determined at runtime. You need to implement
> NS_InvokeByIndex (or on the branch, XPTC_InvokeByIndex). See
> http://mxr.mozilla.org/mozilla/source/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp
>
> xptstubs are the other side of the call, so that binary code can *implement*
> arbitrary interfaces and call signatures at runtime. See, for instance,
> http://mxr.mozilla.org/mozilla/source/xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp

A follow-up question:

What is the current vision of xptcall future in mozilla2?

--
Sergey Yanovich

Brendan Eich

unread,
Sep 12, 2007, 4:39:49 PM9/12/07
to Sergey Yanovich
Sergey Yanovich wrote:
> What is the current vision of xptcall future in mozilla2?

It will probably remain, but not be used for DOM and other critical
paths. Inside the core code we will deCOMtaminate aggressively.

The future of XPCOM is up in the air, but the JS XPCOM API implemented
by XPConnect (Components object etc.) should be maintained in Mozilla 2.
However, its implementation may be quite different.

/be

0 new messages