Closed
Bug 502549
Opened 15 years ago
Closed 13 years ago
xptcall port for Symbian
Categories
(Core :: XPCOM, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: m_kato, Assigned: m_kato)
References
Details
Attachments
(1 file, 1 obsolete file)
8.20 KB,
patch
|
benjamin
:
review-
|
Details | Diff | Splinter Review |
Enable xptcall code for Symbain. - Symbian emulator is x86 arch (work as Windows application). This uses CodeWarrior for x86. - Symbian ARM uses GCC or ARM RVCT. But current code is for gcc only.
Assignee | ||
Comment 1•15 years ago
|
||
Assignee | ||
Comment 2•15 years ago
|
||
Comment on attachment 386944 [details] [diff] [review] patch v1 for winscw This is WINSCW (Symbian emulator) only
Attachment #386944 -
Flags: review?(benjamin)
Comment 3•15 years ago
|
||
Was this code copied from an existing file? If so, why do we need a new copy of the file, instead of just building the existing copy? Does the x86 ABI for symbian differ from both the GCC and MSVC ABI?
Assignee | ||
Comment 4•15 years ago
|
||
(In reply to comment #3) > Was this code copied from an existing file? If so, why do we need a new copy of > the file, instead of just building the existing copy? Does the x86 ABI for > symbian differ from both the GCC and MSVC ABI? This is copy and modified. if I can add "#ifdef __SYMBIAN32__" to Linux ARM code and Windows code, I modify it. Symbian emulator is same as Windows ABI. Sybmian ARM is same of ARM EABI. (same as *nix).
Updated•15 years ago
|
Attachment #386944 -
Flags: review?(benjamin)
Comment 5•15 years ago
|
||
Comment on attachment 386944 [details] [diff] [review] patch v1 for winscw I'd prefer that, yes. Re-request review on this patch if it's impractical.
Assignee | ||
Comment 6•15 years ago
|
||
Attachment #386944 -
Attachment is obsolete: true
Assignee | ||
Updated•15 years ago
|
Attachment #388011 -
Flags: review?(benjamin)
Updated•15 years ago
|
Attachment #388011 -
Flags: review?(benjamin) → review-
Comment 7•15 years ago
|
||
Comment on attachment 388011 [details] [diff] [review] patch v2 I'm not convinced we really want a md/symbian directory. Could we just put the logic in md/unix? >diff --git a/xpcom/reflect/xptcall/src/md/symbian/Makefile.in b/xpcom/reflect/xptcall/src/md/symbian/Makefile.in >+ifeq ($(OS_TARGET),WINSCW) >+CPPSRCS = ../win32/xptcinvoke.cpp ../win32/xptcstubs.cpp >+else >+CPPSRCS = ../unix/xptcinvoke_arm.cpp ../unix/xptcstubs_arm.cpp >+endif relative paths in CPPSRCS will confuse the dependency system. Instead do: ifeq ($(OS_TARGET),WINSCW)) vpath %.cpp $(srcdir)/../win32 CPPSRCS += xptcinvoke.cpp xptcstubs.cpp else vpath %.cpp $(srcdir)/../unix CPPSRCS += xptcinvoke_arm.cpp xptcstubs_arm.cpp endif >diff --git a/xpcom/reflect/xptcall/src/md/win32/xptcstubs.cpp b/xpcom/reflect/xptcall/src/md/win32/xptcstubs.cpp > // these macros get expanded (many times) in the file #included below >+#ifdef __SYMBIAN32__ >+#define STUB_ENTRY(n) \ >+nsresult nsXPTCStubBase::Stub##n() \ >+{ __asm mov ecx, n __asm jmp SharedStub } >+#else > #define STUB_ENTRY(n) \ > __declspec(naked) nsresult __stdcall nsXPTCStubBase::Stub##n() \ > { __asm mov ecx, n __asm jmp SharedStub } >- >+#endif /* __SYMBIAN32__ */ > #else This duplication seems weird. Does your compiler really not support __declspec(naked)? If so, create a NAKED macro which expands to __declspec(naked) for win32 and nothing for symbian. Use NS_STDCALL for __stdcall expansion. >+#ifdef __SYMBIAN32__ >+#define SENTINEL_ENTRY(n) \ >+nsresult nsXPTCStubBase::Sentinel##n() \ >+{ \ >+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ >+ return NS_ERROR_NOT_IMPLEMENTED; \ >+} >+#else > #define SENTINEL_ENTRY(n) \ > nsresult __stdcall nsXPTCStubBase::Sentinel##n() \ > { \ > NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ > return NS_ERROR_NOT_IMPLEMENTED; \ > } >+#endif /* __SYMBIAN32__ */ Use NS_STDCALL instead of a two-part block here as well.
Updated•13 years ago
|
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•