Closed
Bug 208461
Opened 22 years ago
Closed 22 years ago
MSVC++ .net 2003: midl semantics changed (ISimpleDOMNode_p.c(86) compile error)
Categories
(SeaMonkey :: Build Config, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: ian, Assigned: mozbugs-build)
References
Details
Attachments
(1 file, 3 obsolete files)
4.79 KB,
patch
|
bryner
:
review+
|
Details | Diff | Splinter Review |
When I build I now hit:
--------------------------------------------------------------------------------
ISimpleDOMNode_p.c
e:/Trees\Mozilla.1\mozilla\accessible\public\msaa\ISimpleDOMNode_p.c(86) : fatal
error C1189: #error : You need a Windows 2000 or later to run this stub becaus
e it uses these features:
make[5]: *** [ISimpleDOMNode_p.obj] Error 2
--------------------------------------------------------------------------------
This file is autogenerated by midl. The source around the error says:
--------------------------------------------------------------------------------
#if !(TARGET_IS_NT50_OR_LATER)
#error You need a Windows 2000 or later to run this stub because it uses these
features:
#error /robust command line switch.
#error However, your C/C++ compilation flags indicate you intend to run this app
on earlier systems.
#error This app will die there with the RPC_X_WRONG_STUB_VERSION error.
#endif
--------------------------------------------------------------------------------
Reporter | ||
Comment 1•22 years ago
|
||
This is presumably due to changes in midl. See:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/targeting_stubs_for_specific_32_bit_or_64_bit_platforms.asp
Reporter | ||
Comment 2•22 years ago
|
||
Ok. Starting with MIDL version 6.0.359, the default command line option for the
MIDL compiler is /Oicf /robust. So now we need to either specify
CFLAGS = $(CFLAGS) -D_WIN32_WINNT=0x500
...in the Makefile, or, if we want to continue supporting versions prior to
Win2k, then we need to pass /no_robust to midl.
Reporter | ||
Comment 3•22 years ago
|
||
This adds the /no_robust flag to midl calls for versions past 6.0.359. I don't
really know if it is the right solution though.
At the moment it is untested.
Reporter | ||
Comment 4•22 years ago
|
||
Note: The patch also contains the proposed patches to bug 208320 and bug 208314.
Reporter | ||
Comment 5•22 years ago
|
||
...and it doesn't work. ho hum.
Comment 6•22 years ago
|
||
Reassigning to default component owner
Assignee: dbradley → mozbugs-build
Component: xpidl → Build Config
Reporter | ||
Comment 7•22 years ago
|
||
They say you learn something new every day. For me it's about AC_SUBST.
Attachment #125046 -
Attachment is obsolete: true
Reporter | ||
Comment 8•22 years ago
|
||
That last patch seems to have done the trick. (Note that it still contains the
proposed patches to bug 208320 and bug 208314.)
Reporter | ||
Updated•22 years ago
|
Summary: MSVC++ .net 2003: ISimpleDOMNode_p.c(86) compile error → MSVC++ .net 2003: midl semantics changed (ISimpleDOMNode_p.c(86) compile error)
Comment 10•22 years ago
|
||
Mark II: Let's try this again with some help from dbaron patch 2003-06-05
18:17:23 none None
This patch is what works well for me. I build mozilla with VC++ 6.0 with MIDL
6.00.0359 (1st with /robust as default), OS: WIN XP. I hope this can be added to
mozilla project files in cvs. I made it work with following changes which is
same as in patch:
mozilla\accessible\public\msaa\Makefile(97): "$(MIDL)" /no_robust
$(srcdir)/ISimpleDOMNode.idl
mozilla\accessible\public\msaa\Makefile(98): "$(MIDL)" /no_robust
$(srcdir)/ISimpleDOMDocument.idl
mozilla\accessible\public\msaa\Makefile(99): "$(MIDL)" /no_robust
$(srcdir)/ISimpleDOMText.idl
mozilla\embedding\browser\activex\src\control\Makefile(116): "$(MIDL)"
/no_robust /Oicf /h MozillaControl.h /iid MozillaControl_i.c
$(srcdir)/MozillaControl.idl
mozilla\mailnews\mapi\mapihook\build\Makefile(64): "$(MIDL)" /no_robust
$(UNICODE_FLAGS) $(srcdir)/msgMapi.idl
(only added /no_robust to every of these lines)
Also one more change is needed if want to build only
mozilla\mailnews\mapi\mapihook\build\
mozilla\mailnews\mapi\mapihook\build\Makefile(line 58)
Current: DEFINES += -DREGISTER_PROXY_DLL -DUNICODE -D_UNICODE
To make part build work: DEFINES += -DREGISTER_PROXY_DLL -DUNICODE -D_UNICODE
-D_WIN32_WINNT=0x400
This isn't problem when build whole mozilla.
This is only minor problem: If someone want to build only this part then he can
pass parameter for make.
Blocks: 215224
Comment 11•22 years ago
|
||
The patch also contains the configure/autoconf changes for bug 208320.
Attachment #125058 -
Attachment is obsolete: true
Comment 12•22 years ago
|
||
The palmsync/build Makefile will most likely need to have -D_WIN32_WINNT=0x400
added to its DEFINES list as the mapihook/build Makefile did but I didn't build
the palmsync component to be certain.
Updated•22 years ago
|
Attachment #130913 -
Flags: review?(leaf)
Updated•22 years ago
|
Attachment #130913 -
Flags: review?(leaf) → review?(bryner)
Comment 13•22 years ago
|
||
Attachment #130913 -
Attachment is obsolete: true
Attachment #131767 -
Flags: review?(bryner)
Updated•22 years ago
|
Attachment #130913 -
Flags: review?(bryner)
Updated•22 years ago
|
Attachment #131767 -
Flags: review?(bryner) → review+
Comment 14•22 years ago
|
||
Shouldn't tor@acm.org's patch also make a similar change to the following file?
/cvsroot/mozilla/embedding/browser/activex/src/control/Makefile.in
That also uses midl and breaks when building Firebird on VS.NET 2003 unless the
/no_robust flag is specified.
Comment 15•22 years ago
|
||
Checked in with the activex makefile.in change that was omitted when I
split the patch. Thanks for pointing that out.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 16•22 years ago
|
||
While trying to build the palmsync for thunderbird, I've verified that the
palmsync/build Makefile does need -D_WIN32_WINNT=0x400 added.
Updated•21 years ago
|
Product: Browser → Seamonkey
Comment 17•20 years ago
|
||
palmsync is now bug 301489
You need to log in
before you can comment on or make changes to this bug.
Description
•