[Scons-users] SCons 2.3.6: SharedLibrary + SHLIBVERSION messes up with dependencies

William Blevins wblevins001 at gmail.com
Tue Aug 11 12:19:15 EDT 2015


Did the dependency tree change actually cause a problem or was it just
something you noticed?  The output in 2.3.4 and earlier seems a bit strange
to me, but it may be expected.
On Tue, Aug 11, 2015 at 12:13 PM, William Blevins <wblevins001 at gmail.com>
wrote:

>
> On Tue, Aug 11, 2015 at 4:52 AM, Paweł Tomulik <ptomulik at meil.pw.edu.pl>
> wrote:
>
>> W dniu 11.08.2015 o 03:47, William Blevins pisze:
>> > You still haven't provided much info about your configuration.  What
>> > platform are you on, etc...
>> >
>>
>> Debian testing
>> python 2.7.10
>>
>
> I was looking through the commits for 2.3.5 and noticed that there were
> changes with shared libs for the Solaris platform, so it *could* have been
> a data point.
>
>
>
>>
>> > On Mon, Aug 10, 2015 at 10:31 AM, Paweł Tomulik <
>> ptomulik at meil.pw.edu.pl
>> > <mailto:ptomulik at meil.pw.edu.pl>> wrote:
>> >
>> >     W dniu 10.08.2015 o 11:55, Paweł Tomulik pisze:
>> >     > After recent upgrade of SCons my projects can't be built anymore.
>> >     >
>> >     > I use SharedLibrary builder with SHLIBVERSION argument, but now
>> >     (2.3.6)
>> >     > the softlinks generated by SharedLibrary are not seen as
>> dependency.
>> >     >
>> >     > I attach a minimal example, that replicates the bug(?). The
>> >     mini-project
>> >     > builds one shared library (libfoo.so) and one program (main) which
>> >     uses
>> >     > the library. The Sconstruct is as simple as:
>> >     >
>> >     > env = Environment()
>> >     > env.AppendUnique(CPPPATH = ['.'], LIBPATH = ['.'])
>> >     > env.Program('main.cpp', LIBS = ['foo'])
>> >     > env.SharedLibrary('foo', 'foo.cpp', SHLIBVERSION = '0.1.2')
>> >     >
>> >     >
>> >     [..]
>> >
>> >     Dependency tree generated by 2.3.1 with SHLIBVERSION:
>> >
>> >
>> > If this worked on 2.3.4, then why did you need to go back to 2.3.1?
>> >
>>
>> It was easier too me, I use apt-get/debian repositories to install
>> packages. Currently available versions are
>>
>> 2.3.6 (Debian testing/Debian unstable)
>> 2.3.1 (Debian stable).
>> 2.1.9 (Debian oldstable)
>> 2.0.0 (Debian oldoldstable)
>>
>> https://packages.debian.org/search?keywords=scons
>>
>> 2.3.4 is currently unavailable via Debian repositories.
>>
>> On other PC I managed to keep the 2.3.4, there is the output of
>> --tree=all for scons 2.3.4
>>
>> ptomulik at tea:$ scons --tree=all
>> scons: Reading SConscript files ...
>> scons: done reading SConscript files.
>> scons: Building targets ...
>> g++ -o libfoo.so.0.1.2 -shared -Wl,-Bsymbolic -Wl,-soname=libfoo.so.0
>> foo.os -L.
>> +-.
>>   +-SConstruct
>>   +-foo.cpp
>>   +-foo.hpp
>>   +-foo.os
>>   | +-foo.cpp
>>   | +-/usr/bin/g++
>>   +-libfoo.so.0.1.2
>>   | +-foo.os
>>   |   +-foo.cpp
>>   |   +-/usr/bin/g++
>>   +-libfoo.so.0
>>   | +-libfoo.so.0.1.2
>>   |   +-foo.os
>>   |     +-foo.cpp
>>   |     +-/usr/bin/g++
>>   +-libfoo.so.0.1
>>   | +-libfoo.so.0.1.2
>>   |   +-foo.os
>>   |     +-foo.cpp
>>   |     +-/usr/bin/g++
>>   +-libfoo.so.0.1.2
>>   | +-libfoo.so.0.1.2
>>
>
This dependency here worries me slightly because SCons either thinks that
libfoo.so.0.1.2 depends on itself (and should have thrown a cycle detection
error) or its a bug with the tree printer and its printing what the link is
pointing to rather than the link itself.  I expect that the latter is true.


>   |   +-foo.os
>>   |     +-foo.cpp
>>   |     +-/usr/bin/g++
>>   +-main
>>   | +-main.o
>>   | | +-main.cpp
>>   | | +-foo.hpp
>>   | | +-/usr/bin/g++
>>   | +-/usr/bin/g++
>>   | +-libfoo.so.0.1.2
>>   |   +-foo.os
>>   |     +-foo.cpp
>>   |     +-/usr/bin/g++
>>   +-main.cpp
>>   +-main.o
>>     +-main.cpp
>>     +-foo.hpp
>>     +-/usr/bin/g++
>>
>> >
>> >
>> >     +-.
>> > [...]
>>
>> --
>> Paweł Tomulik, tel. (22) 234 7925
>> Instytut Techniki Lotniczej i Mechaniki Stosowanej
>> Politechnika Warszawska
>> _______________________________________________
>> 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/20150811/be3514cd/attachment.html>


More information about the Scons-users mailing list