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

RESOLVED WONTFIX

Status

()

Core
General
RESOLVED WONTFIX
9 years ago
7 years ago

People

(Reporter: hiro, Assigned: hiro)

Tracking

({mobile})

Trunk
ARM
Windows CE
mobile
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments, 1 obsolete attachment)

(Assignee)

Description

9 years ago
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.).
(Assignee)

Updated

9 years ago
Blocks: 491903
(Assignee)

Comment 1

9 years ago
Created attachment 376365 [details] [diff] [review]
Patch of the concept
Assignee: nobody → ikezoe
(Assignee)

Comment 2

9 years ago
CCing Brad.

Brad, what do you think about this approach?
(Assignee)

Updated

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

just #include nsWindowsWMain.cpp
(Assignee)

Comment 4

9 years ago
(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?
(Assignee)

Comment 6

9 years ago
(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.
(Assignee)

Comment 8

9 years ago
(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.
(Assignee)

Comment 10

9 years ago
(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.
(Assignee)

Comment 11

9 years ago
Created attachment 376376 [details] [diff] [review]
Another approach

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
....
(Assignee)

Comment 12

9 years ago
Created attachment 376385 [details] [diff] [review]
Update patch

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
(Assignee)

Comment 13

9 years ago
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.
(Assignee)

Comment 14

9 years ago
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
Last Resolved: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.