Closed
Bug 215224
Opened 21 years ago
Closed 19 years ago
Cannot build using VC++ .NET 2003 / vc7.1
Categories
(SeaMonkey :: Build Config, defect)
Tracking
(Not tracked)
RESOLVED
WORKSFORME
People
(Reporter: murphye, Assigned: chase)
References
Details
Attachments
(1 file)
ftp://ftp.mozilla.org/pub/mozilla/libraries/win32/vc7-glib-1.2.10-bin.zip
ftp://ftp.mozilla.org/pub/mozilla/libraries/win32/vc7-libIDL-0.6.8-bin.zip
These do not seem to work building with 2003. That is because 2003 is now
considered vc7.1 and there is no longer msvcr70.dll, which is replaced by
msvcr71.dll.
I have built a new glib using 2003, but I am having troubles building libIDL.
This might be because of changes in the 2003 C compiler (which is more strict,
from what I have read). I am getting a lot of syntax errors, and I have no clue
why. *I NEED HELP WITH THIS*
Also see: http://bugzilla.mozilla.org/show_bug.cgi?id=208314 Note: The patch
here has also forgotten to make a needed change to configure.
It would be cool if we could get 1.5 to build with VC++ .NET 2003. If I can
somehow get libIDL to compile, get the files online and docs updated, and we get
the other patch in... should be good to go.
I hope someone can get in contact with me so I can compile libIDL. It may
involve updating its C code. All of the errors I have seen so far are coming
from util.c.
Reporter | ||
Comment 1•21 years ago
|
||
Adding Daniel Nunes as a CC. He wrote:
http://www.mozilla.org/build/win32.html
This document will need to be updated.
Most of the issues in comment 0 are covered in bug 208345, but this seems like a
good bug to turn into a meta-bug (especially since bug 208314 comment 7
suggested this bug should cover all remaining isssues).
Comment 3•21 years ago
|
||
http://bugzilla.mozilla.org/show_bug.cgi?id=208461#c7 is Hixie's meta VC7.1
patch, if you could call it a meta patch, that has the configure.in changes.
Patches to configure aren't generally attached because of the
sometimes-auto-updating script that checks in the configure changes when
configure.in is touched, and most people hacking configure.in will just run
'autoconf' to generate the new configure.
dbaron/leaf, do you want the new libIDL/glib uploaded to ftp.m.o eventually so
people won't need to build them or do you agree with what cls said in
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&selm=ba9isr%24cec2%40ripley.netscape.com?
Updated•21 years ago
|
Comment 4•21 years ago
|
||
Using the updated libIDL/glib, applying Hixie's patch from bug 208461 (you'll
get easy to fix conflicts when updating after applying the patch), adding the
-D_WIN32_WINNT=0x400 to mapihook\build\Makefile.in as Pauli commented, applying
bsmedberg's patch from bug 212919, and applying jpierre's patch from bug 215347
an opt Thunderbird build compiles. I didn't try building any other apps, but
they *should* work.
Reporter | ||
Comment 5•21 years ago
|
||
I am building now using ALL of the patches to the attached bugs, and it seems to
be working. I had some initial trouble because I didn't have
ac_add_options --disable-tests
Here is the first error I got from that:
c:/mozilla\xpcom\tests\TestObserverService.cpp(49) : fatal error C1083: Cannot
open include file: 'iomanip.h': No such file or directory
Comment 6•21 years ago
|
||
VC7.1 went to the <iomanip> version of that header.
Reporter | ||
Comment 7•21 years ago
|
||
OK, now I got an error:
c:/mozilla\mailnews\mapi\mapihook\build\msgMapi_p.c(85) : fatal error C1189:
#error : You need a Windows NT 4.0 or later to run this stub because it uses
these features:
My Makefile looks fine, and I did a make clean on the mapi stuff to be sure, but
still get it.
Comment 8•21 years ago
|
||
If anyone runs into other header problems, the headers that changed are listed
at
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_Differences_in_iostream_implementation.asp
Eric, I ran into that as well. -D_WIN32_WINNT=0x400 needs to be added to the
mapihook\build\Makefile.in define line. The line should look like:
DEFINES += -DREGISTER_PROXY_DLL -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x400
Reporter | ||
Comment 9•21 years ago
|
||
This vsvars7.sh could be added to some documentation to make things easier for
developers to compile from Cygwin with VS.NET 2003.
Comment 10•21 years ago
|
||
Setting environment variables in vsvars7.sh is a BAD idea, mainly because not
everybody will have installed VS .NET 2003 in the default location. When it is
installed, VS .NET 2003 creates a VS .NET 2003 Command Prompt under VS .NET
Tools on the Start Menu that does everything vsvars7.sh does, with the paths
that are correct for that system, even if it is not installed in the default
location. If we want to document something, we should tell people to use the VS
.NET 2003 Command Prompt.
Mass reassign of Build/Config bugs to Leaf.
Assignee: mozbugs-build → leaf
Reporter | ||
Comment 12•21 years ago
|
||
If you are familiar with .NET, please check out this bug I have opened:
http://bugzilla.mozilla.org/show_bug.cgi?id=221446
It's about building Mozilla with the /clr switch (which I was able to do).
Comment 13•21 years ago
|
||
I was building just fine with vc7.1 until a few days ago. Now, my non-debug
build works, but my debug build crashes on startup. Has anyone else seen this?
I guess I need to go back all those iostream.h -> iostream changes and see if
I missed some important checkin. In any case, when will this compiler be
supported?
Comment 14•21 years ago
|
||
Magically, the crash is gone after I pulled a new system this morning.
So, except for the libIDL issue (which can be worked around), this seems fixed.
Does someone have the resources to set up a tinderbox?
Comment 16•21 years ago
|
||
All dependencies have been fixed. According to cls in Bug 208345, the build
page ( http://www.mozilla.org/build/win32.html ) needs to be updated.
After that is done, this bug can be closed.
Reporter | ||
Comment 17•21 years ago
|
||
I just seen on Slashdot that Microsoft is now offering Microsoft Visual C++
Toolkit 2003 for free.
http://msdn.microsoft.com/visualc/vctoolkit2003/
This is worth documenting and linking to on the build documentation page.
Comment 18•21 years ago
|
||
Another problem with VC 7.1:
Operator new() now throws an exception instead of returning NULL, so mozilla
exits instead of handling out of memory gracefully.
To have the "old" new() behaviour, you can include <new.h> and not <new>
It works for me:
Index: configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1344
diff -u -r1.1344 configure.in
--- configure.in 13 May 2004 03:12:47 -0000 1.1344
+++ configure.in 13 May 2004 10:16:28 -0000
@@ -1187,7 +1190,7 @@
AC_DEFINE(HW_THREADS)
AC_DEFINE_UNQUOTED(WINVER,0x400)
AC_DEFINE(STDC_HEADERS)
- AC_DEFINE(NEW_H, <new>)
+ AC_DEFINE(NEW_H, <new.h>)
AC_DEFINE(WIN32_LEAN_AND_MEAN)
TARGET_MD_ARCH=win32
_PLATFORM_DEFAULT_TOOLKIT='windows'
Comment 19•20 years ago
|
||
Compiling with only the free toolkit won't always work. If XPC_IDISPATCH_SUPPORT
is defined, then js/src/xpconnect/src/xpcprivate.h includes atlbase.h, one of
the ATL (Active Template Library) headers. This library is NOT shipped with the
free toolkit. XPConnect fails to compile with XPC_IDISPATCH_SUPPORT (the default).
Comment 20•20 years ago
|
||
the _real_ solution for the OOM crashes is using something like new
(std::nothrow) instead of just new; that way, all platforms will benefit...
Updated•20 years ago
|
Assignee: leaf → cmp
Updated•20 years ago
|
Product: Browser → Seamonkey
Comment 21•20 years ago
|
||
For what it's worth VC++'s "new" has thrown exceptions since version 6 and
probably earlier. Mozilla is built without exceptions enabled for VC++ so new
never throws exceptions in those cases. I would think Mozilla should be built
without exceptions under VS .Net 2003 as well.
Comment 22•19 years ago
|
||
I've been building pretty much all of our code with VC7.1 for a while now. The Free toolkit compiler has issues out of the box, but the profession-edition compiler works. Please file new bugs for new issues that come up.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•