|
From: Yves A. <yv...@re...> - 2001-09-20 01:24:02
|
Will,
It's hard to comment whilst some private exchanges have been partially
deleted, but I would like to point, just in case, that a very common problem
with C++ compilers is that their name mangling and other things are
incompatible with each other. As a matter of fact, the KAI compiler release
notes for Linux state:
Compatibility:
KAI C++ is link-compatible with native C compilers, but
not link-compatible with any other C++ compiler. Attempting
to link code compiled by KCC and another C++ compiler will
probably result in link-time failures or run-time faults.
This means that you must compile all of your C++ code and
C++ libraries with KAI C++. KAI C++ 4.0 includes a standard
C++ library, including I/O and STL.
This basically means what every C++ coder knows: forget about linking
against anything that wasn't compiled by your C++ compiler, in this case KAI
C++. Not just ICU. Also *every single package from your standard RedHat
installation that contains C++ code*. KDE. Gnome. You name it. No hope of
sharing these either.
Now if you love this compiler so much that you have to use it for
everything, forget about reusing a standard ICU RPM or DEB or anything else.
In addition to the static linking option George suggested, you can also use
the evil rpath and rpath all your KAI C++ code to some safe place. That will
work, provide you with the benefits of shared library, and won't conflict
with other packages.
As for your patch, it would be nice if there was a way to support KCC
without having an mh-kcc. or at least (ugh) make it a mh-linux-kcc since kcc
is apparently also available for Tru64, the Cray T3E (okay, not an ICU
platform, but hey, who knows?), HP-UX, AIX, IRIX, and various versions of
Solaris who likely will need different flags.
And if configure chokes when CC and CXX are set to kcc, have a look at
config.log to see what is happening. Or check out with the Autoconf team to
see if that's a known problem.
YA
|