From: "Anthony G. Basile" <basile@opensource.dyc.edu>
To: gentoo-portage-dev@lists.gentoo.org
Subject: Re: [gentoo-portage-dev] Pre RFC on RFC: Add compiler information to exported a Package Manger's Cached Information.
Date: Wed, 25 Feb 2015 18:41:55 -0500 [thread overview]
Message-ID: <54EE5DC3.2070603@opensource.dyc.edu> (raw)
In-Reply-To: <54EE32D0.8060806@gentoo.org>
On 02/25/15 15:38, Zac Medico wrote:
> On 02/25/2015 12:01 PM, Anthony G. Basile wrote:
>> On 02/25/15 14:51, Anthony G. Basile wrote:
>>> On 02/22/15 01:30, Zac Medico wrote:
>>>> On 02/21/2015 10:22 PM, Zac Medico wrote:
>>>>> If we put the real/canonical libstdc++.so path in the DT_NEEDED
>>>>> section,
>>>>> then it will automatically work with existing soname dependency
>>>>> support.
>>>>
>>>> Actually, we'd also have to add a way for you to put the full path of
>>>> the libstdc++.so in PROVIDES. For example:
>>>>
>>>> PROVIDES_ABSOLUTE="/usr/lib/gcc/*/*/libstdc++.so.6"
>>>>
>>>
>>> I guess I don't understand how this would work exactly. What if someone
>>> has gcc-4.8.3. Builds library libfoo.so which uses c++. Then upgrades
>>> to gcc-4.9, removes 4.8 and then tries to build bar which is also
>>> written in c++ and links against libfoo.so. We would have mismatching
>>> abis. How would this catch it and trigger the correct rebuilds?
>>>
>>> Unless I'm misunderstanding your *'s in that line. Are you using
>>> PROVIDES_ABSOLUTE as a way of recording what version of the compiler
>>> libfoo.so was build with? So that you'd have a line that says libfoo.so
>>> links against /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libstdc++.so, so
>>> that parsing that line gives 4.8.3?
>>>
>>> Also if you had the absolute path in VDB somewhere, like in PROVIDES,
>>> then you don't need it in the elf's rpath which would make me feel
>>> better.
>>>
>>
>> Actually no, you'd still need rpath for the elf itslef otherwise you can
>> still link against the wrong version of libstdc++.so. Note in my
>> following example that even though I build test.cpp with 4.7.3 I still
>> wind up linking aginast 4.8.3.
>
> If DT_NEEDED contains the absolute libstdc++.so path, it's guaranteed to
> link against the correct version, regardless of rpath.
>
How do you get DT_NEEDED to the absolute libstdc++.so path when building?
--
Anthony G. Basile, Ph. D.
Chair of Information Technology
D'Youville College
Buffalo, NY 14201
(716) 829-8197
next prev parent reply other threads:[~2015-02-25 23:40 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-21 16:14 [gentoo-portage-dev] Pre RFC on RFC: Add compiler information to exported a Package Manger's Cached Information Anthony G. Basile
2015-02-21 20:18 ` Zac Medico
2015-02-22 6:22 ` Zac Medico
2015-02-22 6:30 ` Zac Medico
2015-02-25 19:51 ` Anthony G. Basile
2015-02-25 20:01 ` Anthony G. Basile
2015-02-25 20:38 ` Zac Medico
2015-02-25 23:41 ` Anthony G. Basile [this message]
2015-02-26 0:07 ` Zac Medico
2015-03-02 3:25 ` Zac Medico
2015-03-02 4:27 ` Zac Medico
2015-02-25 20:34 ` Zac Medico
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54EE5DC3.2070603@opensource.dyc.edu \
--to=basile@opensource.dyc.edu \
--cc=gentoo-portage-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox