Closed Bug 491994 Opened 15 years ago Closed 13 years ago

Need to implement wmain function for programs (mainly test programs) for WinCE

Categories

(Core :: General, defect)

ARM
Windows CE
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: hiro, Assigned: hiro)

Details

(Keywords: mobile)

Attachments

(2 files, 1 obsolete file)

There are a lot of test programs which requires wmain function for WinCE so we need to implement it and link to its object.

My idea is:

1. compile main.c which is including wmain function on build/wince/shunt directory
2. add -entry:mainWCRTStartup option and set the compiled object for SIMPLE_PROGRAM (or other XX_PROGRAMS if it needs) target in config/rules.mk

This approach has an advantage of unnecessary modification of program source code itself (i.e. ifdef WINCE etc.).
Blocks: 491903
Assignee: nobody → ikezoe
CCing Brad.

Brad, what do you think about this approach?
Status: NEW → ASSIGNED
(In reply to comment #2)
> CCing Brad.
> 
> Brad, what do you think about this approach?

just #include nsWindowsWMain.cpp
(In reply to comment #3)
> (In reply to comment #2)
> > CCing Brad.
> > 
> > Brad, what do you think about this approach?
> 
> just #include nsWindowsWMain.cpp

Include in where?
And what do you think about ConvertUTF16toUTF8 in nsWindowsWMain.cpp?
(In reply to comment #4)
> Include in where?
> And what do you think about ConvertUTF16toUTF8 in nsWindowsWMain.cpp?

included it in the source file, see nsXulStub.cpp.

What about ConvertUTF16toUTF8 are you asking about?
(In reply to comment #5)
> (In reply to comment #4)
> > Include in where?
> > And what do you think about ConvertUTF16toUTF8 in nsWindowsWMain.cpp?
> 
> included it in the source file, see nsXulStub.cpp.

In each souce files? wmain function is needed for many test programs. 
For example,
 in xpcom/tests, netwerk/test and so on. I do not think including nsWindowsWMain.cpp is reasonable.

> What about ConvertUTF16toUTF8 are you asking about?

I was wrong. I understand about ConvertUTF16toUTF8 now. I did not know the whole implementation is in the header file.
It would be possible to force include it from the Makefile with /FI for all the test files.
(In reply to comment #7)
> It would be possible to force include it from the Makefile with /FI for all the
> test files.

It would be better than including in each source files but it needs to modify Makefiles.

Please tell me the reason of your objection to my approach.
Our goal is to eliminate the shunt.  We will only add to it when absolutely necessary. 

Also, your change will most likely break xulrunner.exe and xulrunner-stub.exe which define wmain.
(In reply to comment #9)
> Our goal is to eliminate the shunt.  We will only add to it when absolutely
> necessary. 

Ah, I see.

> Also, your change will most likely break xulrunner.exe and xulrunner-stub.exe
> which define wmain.

No, these execution files use PROGRAM not SIMPLE_PROGRAMS.
Attached patch Another approach (obsolete) — Splinter Review
Including nsWindowsWMain.cpp.

But there are many errors. We need to rename source file to .cpp?


:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(145) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(145) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(147) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(147) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(437) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(437) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(664) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(664) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(731) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(731) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(767) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(767) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(805) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(805) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(832) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(832) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(844) : error C2143: syntax error : missing '{' before '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsCharTraits.h(844) : error C2059: syntax error : '<'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsUTF8Utils.h(49) : error C2061: syntax error : identifier 'UTF8traits'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsUTF8Utils.h(49) : error C2059: syntax error : ';'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsUTF8Utils.h(50) : error C2449: found '{' at file scope (missing function
header?)
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsUTF8Utils.h(59) : error C2059: syntax error : '}'
c:\cygwin\home\user\hg\mozilla-central\objdir-wm6-test\xulrunner\dist\include\s
ring\nsUTF8Utils.h(275) : error C2061: syntax error : identifier 'UTF16CharEnu
....
Attached patch Update patchSplinter Review
I renamed c files to cpp files and fixed some compiler errors.
But there are still some errors. I think this approach is a rough and thorny path.

PrimitiveTest.cpp
c:\cygwin\home\user\hg\mozilla-central\toolkit\xre\nsWindowsWMain.cpp(40) : erro
r C4430: missing type specifier - int assumed. Note: C++ does not support defaul
t-int
c:\cygwin\home\user\hg\mozilla-central\toolkit\xre\nsWindowsWMain.cpp(40) : erro
r C2143: syntax error : missing ',' before '*'
c:\cygwin\home\user\hg\mozilla-central\toolkit\xre\nsWindowsWMain.cpp(43) : erro
r C2065: 'arg' : undeclared identifier
c:\cygwin\home\user\hg\mozilla-central\toolkit\xre\nsWindowsWMain.cpp(49) : erro
r C2065: 'arg' : undeclared identifier
c:\cygwin\home\user\hg\mozilla-central\toolkit\xre\nsWindowsWMain.cpp(85) : erro
r C2061: syntax error : identifier 'WCHAR'
c:\cygwin\home\user\hg\mozilla-central\toolkit\xre\nsWindowsWMain.cpp(92) : erro
r C2065: 'argv' : undeclared identifier
make[1]: *** [PrimitiveTest.obj] Error 2
make[1]: Leaving directory `/c/cygwin/home/user/hg/mozilla-central/objdir-wm6-te
st/xulrunner/xpcom/typelib/xpt/tests'
make: *** [all] Error 2
Attachment #376376 - Attachment is obsolete: true
I'd propose to use attachment 376365 [details] [diff] [review] until elimination of WinCE shunt since running tests will give us a lot of benefits to develop on this platform.
I've opened two new bug to be able to include nsWindowsWMain file into c sources.

Bug 492225 and Bug 492226
this is not required for tests to run on winmo.  Removing the dependency.  Also I am not sure how many programs we have that are required to run on WinMo and which ones still have problems.
No longer blocks: 491903
WinCE/Windows Mobile support has been removed from the main build system, Spidermonkey, mobile installer, in-app updater and so on (see bug 614720, bug 554087 and all their dependants). Until such point where MS decide to release a Windows Phone 7 NDK and the decision is made to port to that platform, this is WONTFIX.

Filter bugmail on WinCEMassWONTFIX.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: