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)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ian, Assigned: mozbugs-build)

References

Details

Attachments

(1 file, 3 obsolete files)

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 --------------------------------------------------------------------------------
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.
Blocks: 208320
Attached patch Possible patch (obsolete) — Splinter Review
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.
Note: The patch also contains the proposed patches to bug 208320 and bug 208314.
...and it doesn't work. ho hum.
Reassigning to default component owner
Assignee: dbradley → mozbugs-build
Component: xpidl → Build Config
They say you learn something new every day. For me it's about AC_SUBST.
Attachment #125046 - Attachment is obsolete: true
That last patch seems to have done the trick. (Note that it still contains the proposed patches to bug 208320 and bug 208314.)
Setting default QA -
QA Contact: pschwartau → granrose
Summary: MSVC++ .net 2003: ISimpleDOMNode_p.c(86) compile error → MSVC++ .net 2003: midl semantics changed (ISimpleDOMNode_p.c(86) compile error)
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.
The patch also contains the configure/autoconf changes for bug 208320.
Attachment #125058 - Attachment is obsolete: true
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.
Attachment #130913 - Flags: review?(leaf)
Attachment #130913 - Flags: review?(leaf) → review?(bryner)
Attached patch remerge to tipSplinter Review
Attachment #130913 - Attachment is obsolete: true
Attachment #131767 - Flags: review?(bryner)
Attachment #130913 - Flags: review?(bryner)
Attachment #131767 - Flags: review?(bryner) → review+
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.
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
While trying to build the palmsync for thunderbird, I've verified that the palmsync/build Makefile does need -D_WIN32_WINNT=0x400 added.
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: