-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
During the next maintenance window (Dec 6), we will switch from Sun Studio to GCC as the standard C and C++ compiler for ts-specs (/opt/ts). If you have have locally-compiled C or C++ software, you should read the rest of this mail. Otherwise, this change does not affect you.
We this change for several reasons:
+ Some open source software (especially C++ software) is only tested on GCC, and doesn't compile with other compilers. We have to maintain (sometimes extensive) local patch sets to compile this software with Studio.
+ On x86, using GCC doesn't cause a performance penalty, and GCC now supports some features (e.g. OpenMP) which were previously only supported in Studio.
+ Since C++ ABIs are not portable between compilers, we currently need to provide compiled libraries for both compilers.
+ Users often try to link software using the GCC compiler, but with the Studio-compiled libraries.
If you compile C or C++ software, this change will affect you as follows:
+ If you use TS GCC 4.4 (in /opt/ts/gcc/4.4/bin), you do not *have* to make any changes, but we will shortly be installing GCC 4.5 and making /opt/ts/bin/gcc (and g++) symlinks to the latest compiler versions. So, you may wish to switch to /opt/ts/bin/gcc when this is done rather than using a specific compiler version.
+ If you use Sun GCC 3.4.3 (in /usr/sfw/bin), you should switch to our GCC, because we will remove Sun's GCC during the maintenance window. (However, we will not remove the runtime libraries, so there is no need to recompile immediately.)
+ If you use Studio (cc and CC), you should switch to GCC (gcc and g++) and recompile.
+ GCC-specific compiled libraries, currently in /opt/ts/<library>/<version>-gcc, will stay there for now, in order to avoid breaking existing software. During the following maintenance window (Jan 3), the Studio versions in /opt/ts/<library>/<version> will be replaced with the GCC version, so using the "-gcc" suffix will no longer be necessary.
- river.
2010/11/14 River Tarnell river.tarnell@wikimedia.de:
Hi,
During the next maintenance window (Dec 6), we will switch from Sun Studio to GCC as the standard C and C++ compiler for ts-specs (/opt/ts). If you have have locally-compiled C or C++ software, you should read the rest of this mail. Otherwise, this change does not affect you.
I'm trying to switch from CC to gcc. My app uses mysqlpp library. Does /opt/ts/lib contain the libraries of Sun Studio? If I compile with -L /opt/ts/lib -lmysqlpp I've a linking error:
Undefined symbol mysqlpp::Row::at(unsigned int) const mysqlpp::UseQueryResult::fetch_row() mysqlpp::Query::error() const mysqlpp::Connection::query(char const*) ...
How can I use mysqlpp with gcc?
Mauro
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Mauro Girotto:
2010/11/14 River Tarnell river.tarnell@wikimedia.de: I'm trying to switch from CC to gcc. My app uses mysqlpp library. Does /opt/ts/lib contain the libraries of Sun Studio? If I compile with -L /opt/ts/lib -lmysqlpp I've a linking error:
Undefined symbol mysqlpp::Row::at(unsigned int) const mysqlpp::UseQueryResult::fetch_row() mysqlpp::Query::error() const mysqlpp::Connection::query(char const*) ...
You're right, we neglected to provide a GCC version of mysqlpp. I will install one during the ts-specs update and you will be able to link with that instead.
- river.
toolserver-l@lists.wikimedia.org