Egor Pasko wrote:
On the 0x2C0 day of Apache Harmony Tim Ellison wrote:
Gregory Shimansky wrote:
Nathan Beyer wrote:
There's a comment about this in the classlib README, that I just
found. It seems this is a dependency from the ICU 3.4 libraries.
There's been off an on talk about upgrading to the latest ICU release.
Maybe it has upgraded its dependencies.
I think this dependency doesn't come inherently from the 3.4 version of
ICU. It comes from the host which was used to compile ICU binaries.
Apparently it had libstdc++.so.5 as default stdc++ library. If ICU was
compiled on a more modern distribution, it would depend on version 6.

To get rid of this dependency ICU could be linked with libstdc++
statically.
Couldn't we also link in a reference to the library unversioned, and
pick up whatever the ldconfig has defined?

1. they are not compatible

Yes I also think that they aren't.

2. not only libICU uses libstdc++, DRLVM uses libstdc++-X too, where X
   is 5 or 6, and the actual number depends on the GCC version, that
   built DRLVM

Strictly speaking I think it depends on the distribution. GCC version and libstdc++ version are defined by the distribution and the packaging. The change from version 5 to 6 happened somewhere between gcc version 3.3.x to version 3.4.x but different distributions chose a different gcc version to make a change.

3. to compile libstdc++ statically for non-x86 (for example, x86_64)
   we need to compile libstdc++-X.a with -fPIC option by hand (because
   it is a very rare configuration)

Gentoo has libstdc++_pic.a (e.g. /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.1/libstdc++_pic.a), maybe some other distros have something similar, but I agree that it is not a rule to have this static lib compiled with -fpic.

IMHO, the best way is to go (3) for snapshots and releases to make our
binaries independant of library version on the target system. But for
development needs the easiest way is to install both libstdc++-5 and
libstdc++-6.

I wouldn't want to separate development from snapshots and releases. If there is no big reason it would be better to use the same environment for development as the one we use for snapshots.

The problem is that I think we cannot distribute the binaries of it, but we can download and build it at the build time in a way similar to what DRLVM does to apr, apr-utils and log4cxx.

--
Gregory

Reply via email to