[Scons-users] SHLIBVERSION questions
William Blevins
wblevins001 at gmail.com
Sun Jun 14 15:00:07 EDT 2015
Looks like SHLINKFLAGS needs to get set correctly at default.
V/R,
William
On Sun, Jun 14, 2015 at 2:42 PM, William Blevins <wblevins001 at gmail.com>
wrote:
> So it turns out this is indirectly caused by
> https://bitbucket.org/scons/scons/pull-request/86/fix-http-sconstigrisorg-issues/diff
>
> # Fix http://scons.tigris.org/issues/show_bug.cgi?id=2903 :
>> # Ensure we still depend on SCons.Defaults.ShLinkAction command line
>> which is $SHLINKCOM.
>> # This was tricky because we don't want changing LIBPATH to cause a
>> rebuild, but
>> # changing other link args should. LIBPATH has $( ... $) around it but
>> until this
>> # fix, when the varlist was added to the build sig those ignored parts
>> weren't getting
>> # ignored.
>> ShLibAction = SCons.Action.Action(VersionedSharedLibrary, None,
>> varlist=['SHLINKCOM'])
>>
>
> I think the intention of the fix makes sense but see last email.
>
> V/R,
> William
>
>
>
> On Sun, Jun 14, 2015 at 2:32 PM, William Blevins <wblevins001 at gmail.com>
> wrote:
>
>> Order of events:
>>
>> 1. make_ready called on node libcc.so.0.1.0, action = gcc -o
>> libcc.so.0.1.0 -shared cc.os
>> 1. At this point, node libcc.so.0.1.0 bact differs from
>> .sconsign.dblite (IE. the correct value)
>> 2. Node marked as requiring update
>> 2. Tool/__init__.py:VersionedSharedLibrary executes and modifies
>> the ShLinkAction
>> 1. The action is now correct and match the .sconsign.dblite value,
>> action = gcc -o libcc.so.0.1.0 -shared -Wl,-Bsymbolic
>> -Wl,-soname=libcc.so.0 cc.os
>> 3. .sconsign.dblite written with action from step 2
>>
>> I hope this marks sense. Not immediately sure how to resolve.
>>
>> V/R,
>>
>> William
>>
>> On Sun, Jun 14, 2015 at 2:01 PM, William Blevins <wblevins001 at gmail.com>
>> wrote:
>>
>>> I think my original assumption was silly. More like the command is
>>> changing after the initial action is created...
>>>
>>> V/R,
>>> William
>>>
>>> On Sun, Jun 14, 2015 at 1:23 PM, William Blevins <wblevins001 at gmail.com>
>>> wrote:
>>>
>>>> Here is some additional information for anyone with indepth knowledge
>>>> of the VersionedSharedLibrary tool.
>>>>
>>>> Sample SConstruct: SharedLibrary( 'cc', 'cc.c', SHLIBVERSION = '0.1.0' )
>>>>
>>>> bactsig is computed as md5( executor.get_contents() ) and the executor
>>>> contents differ between lookups at byte 2828 line 162.
>>>>
>>>> Pass 1: "S),(N.,N.,N.),()gcc -o libcc.so.0.1.0 -shared cc.osgcc -o
>>>> libcc.so.0.1.0 -shared cc.os"
>>>> Pass 2: "S),(N.,N.,N.),()gcc -o libcc.so.0.1.0 -shared -Wl,-Bsymbolic
>>>> -Wl,-soname=libcc.so.0 cc.osgcc -o libcc.so.0.1.0 -shared -Wl,-Bsymbolic
>>>> -Wl,-soname=libcc.so.0 cc.os"
>>>>
>>>> What I see on the command line: "gcc -o libcc.so.0.1.0 -shared
>>>> -Wl,-Bsymbolic -Wl,-soname=libcc.so.0 cc.os"
>>>>
>>>> Seems that the issue is that the symlink targets are getting turned
>>>> into libcc.so Node rather than being there OWN node. We may need to add
>>>> symlink handling to Node disambiguate?
>>>>
>>>> V/R,
>>>> William
>>>>
>>>> On Sun, Jun 14, 2015 at 11:55 AM, William Blevins <
>>>> wblevins001 at gmail.com> wrote:
>>>>
>>>>> I'm looking at the Node object code and I see that get_binfo gets
>>>>> called twice for versioned shared libraries but the bactsig changes between
>>>>> calls.
>>>>>
>>>>> I'll try and determine the delta.
>>>>>
>>>>> On Sat, Jun 6, 2015 at 6:55 PM, Paweł Tomulik <ptomulik at meil.pw.edu.pl
>>>>> > wrote:
>>>>>
>>>>>> Ok, submitted: http://scons.tigris.org/issues/show_bug.cgi?id=3006
>>>>>>
>>>>>> W dniu 06.06.2015 o 22:23, Bill Deegan pisze:
>>>>>> > Seems like a bug.
>>>>>> > Please file with a simple reproducible test case.
>>>>>> >
>>>>>> > Thanks,
>>>>>> > Bill
>>>>>> >
>>>>>> > On Sat, Jun 6, 2015 at 3:53 PM, Paweł Tomulik <
>>>>>> ptomulik at meil.pw.edu.pl
>>>>>> > <mailto:ptomulik at meil.pw.edu.pl>> wrote:
>>>>>> >
>>>>>> >
>>>>>> > W dniu 06.06.2015 o 18:59, Bill Deegan pisze:
>>>>>> > > What version of SCons are you running?
>>>>>> >
>>>>>> >
>>>>>> > ptomulik at barakus:$ scons --version
>>>>>> > SCons by Steven Knight et al.:
>>>>>> > script: v2.3.4, 2014/09/27 12:51:43, by garyo on lubuntu
>>>>>> > engine: v2.3.4, 2014/09/27 12:51:43, by garyo on lubuntu
>>>>>> > engine path: ['/usr/local/lib/scons-2.3.4/SCons']
>>>>>> > Copyright (c) 2001 - 2014 The SCons Foundation
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > > There have been some fixes since 2.3.4 for this code
>>>>>> > > Can you try running the tip of default?
>>>>>> >
>>>>>> >
>>>>>> > Tip (b6cecd171b57) does the same.
>>>>>> >
>>>>>> >
>>>>>> > >
>>>>>> > > -Bill
>>>>>> > >
>>>>>> > > On Fri, Jun 5, 2015 at 9:07 AM, Paweł Tomulik <
>>>>>> ptomulik at meil.pw.edu.pl <mailto:ptomulik at meil.pw.edu.pl>
>>>>>> > > <mailto:ptomulik at meil.pw.edu.pl <mailto:
>>>>>> ptomulik at meil.pw.edu.pl>>>
>>>>>> > wrote:
>>>>>> > >
>>>>>> > > I have this simple sconstruct:
>>>>>> > >
>>>>>> > > env = Environment()
>>>>>> > > tgt = env.SharedLibrary('test', ['test.cpp'],
>>>>>> > SHLIBVERSION='0.1.0')
>>>>>> > > print tgt
>>>>>> > >
>>>>>> > > I observed, that the linking command is invoked each time
>>>>>> I
>>>>>> > run scons,
>>>>>> > > which is wrong:
>>>>>> > >
>>>>>> > > ptomulik at barakus:$ scons -Q
>>>>>> > > ['libtest.so.0.1.0']
>>>>>> > > g++ -o libtest.so.0.1.0 -shared -Wl,-Bsymbolic
>>>>>> > -Wl,-soname=libtest.so.0
>>>>>> > > test.os
>>>>>> > > ptomulik at barakus:$ scons -Q
>>>>>> > > ['libtest.so.0.1.0']
>>>>>> > > g++ -o libtest.so.0.1.0 -shared -Wl,-Bsymbolic
>>>>>> > -Wl,-soname=libtest.so.0
>>>>>> > > test.os
>>>>>> > >
>>>>>> > > debug=explain shows this:
>>>>>> > >
>>>>>> > > ptomulik at barakus:$ scons -Q --debug=explain
>>>>>> > > ['libtest.so.0.1.0']
>>>>>> > > scons: rebuilding `libtest.so.0.1.0' because the contents
>>>>>> of
>>>>>> > the build
>>>>>> > > action changed
>>>>>> > > action: SharedFlagChecker(target, source,
>>>>>> env)
>>>>>> > > VersionedSharedLibrary(target,
>>>>>> source, env)
>>>>>> > > g++ -o libtest.so.0.1.0 -shared -Wl,-Bsymbolic
>>>>>> > -Wl,-soname=libtest.so.0
>>>>>> > > test.os
>>>>>> > >
>>>>>> > >
>>>>>> > > Is it something already known, or shall I submit a bug?
>>>>>> > >
>>>>>> > > Anyway, the SharedLibrary builder creates symlinks, but
>>>>>> they
>>>>>> > do not
>>>>>> > > appear in the function result (tgt contains only the
>>>>>> library).
>>>>>> > Is this a
>>>>>> > > bug or a feature? How can I guess what are the nodes
>>>>>> produced
>>>>>> > by the
>>>>>> > > builder?
>>>>>> > >
>>>>>> > > --
>>>>>> > > Pawel Tomulik
>>>>>> > > _______________________________________________
>>>>>> > > Scons-users mailing list
>>>>>> > > Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>>>> > <mailto:Scons-users at scons.org <mailto:Scons-users at scons.org>>
>>>>>> > > https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>> > >
>>>>>> > >
>>>>>> > >
>>>>>> > >
>>>>>> > > _______________________________________________
>>>>>> > > Scons-users mailing list
>>>>>> > > Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>>>> > > https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>> > >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > --
>>>>>> > Pawel Tomulik
>>>>>> > _______________________________________________
>>>>>> > Scons-users mailing list
>>>>>> > Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>>>> > https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > Scons-users mailing list
>>>>>> > Scons-users at scons.org
>>>>>> > https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>> >
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Pawel Tomulik
>>>>>> _______________________________________________
>>>>>> Scons-users mailing list
>>>>>> Scons-users at scons.org
>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150614/5da909a3/attachment.html>
More information about the Scons-users
mailing list