Oz and Mozart Hackers Mailing List

RE: Building mozart 1.3.0 with gcc 3 under Windows


From: BCalco@Exchange.WebMD.net
Date: Fri Sep 19 2003 - 16:09:20 CEST


Kevin:

Good work! - I will try to duplicate your success and address some of the
issues you mention this weekend, by way of seeing whether or not your diffs
can be improved upon.

- Bob Calco

| -----Original Message-----
| From: Kevin Glynn [mailto:glynn@info.ucl.ac.be]
| Sent: Friday, September 19, 2003 9:00 AM
| To: hackers
| Subject: Building mozart 1.3.0 with gcc 3 under Windows
|
|
|
|
| Dear all,
|
| I have been (somewhat) successful building mozart with gcc 3
| under cygwin! Below I describe what I had to do. I am hoping
| that someone can comment and improve on the hacks I have
| made. I attach a diff that you can apply to the current
| development branch in CVS.
|
| I built against the pre-built packages available from
|
| http://www.mozart-oz.org/documentation/install/node8.html#sect
| ion.cygwin.packages
|
| 1. c++ doesn't like putting an attribute on the OZ_Extension
| destructor in platform/emulator/extension.cc. It looks like this
| is because it is a virtual destructor. I (eventually) discovered
| that I could put ozdeclspec on the class definition in extension.hh
| and the delete methods and get the right symbols exported.
|
| This fix needs improving, I probably don't need ozdeclspec
| everywhere I have it and redefining ozdeclspec in extension.hh
| gives warnings, and may well be unnecessary.
|
| 2. Another cause of undefined symbols in emulator.dll is that
| windows.hh from cygwin defines the INTERFACE symbol which we use to
| control "#pragma interface". (This took a looong time to track
| down). I have hacked that with a bit of #ifdeffery that unsets it
| where necessary.
|
| 3. We need to run make new-scanner in platform/emulator. It seems
| that the latest flex in cygwin (2.5.31-1, released 5 days ago)
| breaks our scanner. I built with the previous version (2.5.4-2).
|
| 4. To build text2pickle we need to link with $CXX, not $LD
| (else we get
| undefined new/delete symbols).
|
| 5. oztool.cc won't work if c++ is a symbolic link to g++ (a problem
| with CreateProcess). I hacked this by copying g++.exe to c++.exe
|
| I am having trouble running make boot-all (emacs doesn't like
| the path it is being fed, advice anyone?) but everything I
| have tried seems to have worked OK. I can use the gdbm
| contrib for example.
|
| phew!
|
| k
|
|
|
|
|
-
Please send submissions to hackers@mozart-oz.org
and administriva mail to hackers-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.



This archive was generated by hypermail 2b29.