Comeau C/C++TM 4.3.10.1 Beta Front-End
Additional information for Mac OS X customers
When using Comeau C++ under Mac OS X, you may come across the issues discussed below. Let's start with some details pertaining to this beta release:
- This port is currently available for $50 through
our normal ordering procedures.
- The port has been performed with:
- OS X 10.4.11 on a healthy Intel Mac setup. It has not yet been used under any other OS X setups, but our expectation is that it's ok with all 10.4.x versions of OS X, and all Apple Intel-based hardware.
- OS X 10.3.9 on a healthy PPC Mac setup. It is our expectation that it's ok with all 10.3.x versions of OS X, and all Apple PPC-based hardware. Note that 10.3.9 is Panther, which uses Xcode 1.5.
- The port has been performed with gcc 3.3. It has not yet been used under any other setups or versions, but our expectation is that it's ok with all versions of gcc's ever released by Apple with OS X.
- If you have a non-Apple originated gcc (one you get elsewhere, one you built yourself, etc), you must contact us before use, as chances are good that we will need to make changes.
- Use of libstdc++ is up in the air, but as mentioned, libcomo is being made available too.
- Floating point may need some adjustments. Please give us feedback.
- As of version 4.3.3, most GNU extensions are supported via como's --gcc mode and --g++ mode for LINUX/Intel. Please provide us feedback for use with OS X.
Here's general info which should transcend the beta process:
- Comeau C/C++ is only being sold for OS X on Apple hardware.
If you have a need on some other operating system, please contact us.
- If you have a non-Apple originated gcc (one you get elsewhere, one you built yourself, etc), you must contact us before use, as chances are good that we will need to make changes.
- Although earlier versions of Comeau C++ were able to use some earlier versions of g++'s C++ Standard Library, that has not been so for a long time. Even g++ 3.x's libstdc++ is not known to work with Comeau C++. Therefore, when como43101beta.setup asks you for the directory of your C++ SL, do not provide it with g++'s. You'll be wanting to provide it with a C++ SL that is known to work with Comeau C++, such as libcomo (you only need make -f Makefile.como it, no other build changes should be necessary to establish it for OS X).
- You may find you want to use the new --long_long command line option. Note this option can be enabled even in strict mode.
- When you first install Comeau C++ on Mac OS X, don't inform como43101beta.setup about libcomo, instead tell it you don't have a standard library. Go build libcomo and only then go back and re-run como43101beta.setup telling it about libcomo. As of Comeau C+/C++ 4.3.3 you do not need to install in relaxed mode in order to build libcomo, as --no_A and --no_a options are now supported, and are the default when building libcomo.
- If, in C++ mode, you get linker errors such as:
c2.o: In function `main':
c2.o(.text+0x14): undefined reference to `cout'
c2.o(.text+0x19): undefined reference to `ostream::operator<<(char const *)'
c2.o(.text+0x32): undefined reference to `cout'
c2.o(.text+0x37): undefined reference to `ostream::operator<<(char const *)'
c2.o(.text+0x42): undefined reference to `ostream::operator<<(int)'
c2.o(.text+0x55): undefined reference to `endl(ostream &)'
c2.o(.text+0x6e): undefined reference to `cout'
c2.o(.text+0x73): undefined reference to `ostream::operator<<(char const *)'
c2.o(.text+0x7e): undefined reference to `ostream::operator<<(int)'
c2.o(.text+0x91): undefined reference to `endl(ostream &)'
collect2: ld returned 1 exit status
then it is possible that you have not built libcomo properly and/or have not told Comeau C++ to use libcomo after you built it (the source file may have compiled because it picked up the g++ iostreams headers). To resolve this, ensure you've built libcomo properly and also that you've run como43101beta.setup properly, telling it where your libcomo is.
- Along the same lines as the previous bullet, getting an error such as:
"/usr/include/g++-3/stl_vector.h", line 110: error: identifier "_M_start" is
undefined
_M_start = _M_allocate(__n);
^
should be clear indication that you are picking up the wrong standard library (note the /usr/include/g++-3 in the error message). As above, to resolve this, ensure you've built libcomo properly and also that you've run como43101beta.setup properly.
Have you found a glitch in Comeau C/C++? No matter how small, please contact us at support@comeaucomputing.com.
Comeau Computing
http://www.comeaucomputing.com
support@comeaucomputing.com
Last updated May 16, 2008
(c) © 1992-2008 Comeau Computing. All Rights Reserved.