=?iso-8859-15?q?Fran=E7ois?= Pons <[EMAIL PROTECTED]> wrote:
>Raul Dias <[EMAIL PROTECTED]> writes:
>> The problem:
>>
>> Using a C++ application compiling with one gcc that depends on
>> another C++ library that was compiled with another gcc will
>> __not__ work and probably segfaults.
>>
>> This is the main issue discussed in this thread. :)
>>
>>
>> How do we know if a package is a c++ application/lib?
>> \
>> It will depends on libstdc++.so.XXXXX
>>
>>
>> How do we know what gcc was use to compile a c++ package?
>>
>> the XXXX in the libstdc++.so.XXXX dependency is different
>> to every gcc version/c++ ABI.
>> This also means that when the time comes and we get a final
>> ABI, new gccs will keep the same soname in the libstc++ lib.
>>
>>
>> How can urpmi know that a c++ package will not work in
>>
>> the system __even__ if the dependencies are met?
>> If a c++ package will be installed in the system, urpmi
>> should check for every package that provides its dependencies
>> to see if they also depends on a libstdc++.
>> If the libstdc++ which they depends are different, the package
>> should not be installed.
>>
>>
>> Any thought about this?
>
>Hum, urpmi use rpm dependencies, which use effectively so name, so name should
>be changed if compatibility is broken.
And it is. every incompatible ABI in gcc has a soname changed.
So, this is what can be used to track the issue down
>
>$ rpm -qR xalan-c | grep libstdc
>libstdc++-libc6.2-2.so.3
>
>$ ldd /usr/bin/testXPath | grep libstdc
> libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4083d000)
>
>$ objdump -x /usr/lib/libstdc++-libc6.2-2.so.3 | grep SONAME
> SONAME libstdc++-libc6.2-2.so.3
>
>How can we known more here ?
I will use qt2 as an example:
$ rpm -qR qt2 | grep libstd
libstdc++-libc6.2-2.so.3
$ rpm -q --whatprovides $(rpm -qR qt2 | grep libstd)
libstdc++-2.95.3-19cl
and of course, if you want to know which gcc generated this (not really needed):
$ rpm -q $(rpm -q --whatprovides $(rpm -qR qt2 | grep libstd) ) --qf "%{SOURCERPM}\n"
gcc-2.95.3-19cl.src.rpm
Btw, I did this on a CL system, not mdk. But the results should be equivalent.
Regards,
Raul Dias
>
>Fran�ois.
>