[Scons-users] Building versioned shared library fails when using MinGW

Ray Speth speth at darkmatter.mit.edu
Sat Nov 26 19:34:33 EST 2016


If I name the target 'foo.dll', then the error becomes:

scons: *** Multiple ways to build the same target were specified for: 
foo.dll

If I change the name to 'foo.bar' then the error references the name 
'foo.bar'.

Adding either '--deub=presub' or '--tree=prune' does not provide any 
additional information. The output from running 'scons 
--debug-stacktrace' has been added to the previously-linked Gist.

I would also note that debugging this does not necessarily require 
having MinGW installed. I am able to replicate this bug on an Ubuntu 
system as well, with the exception that in the "working" case you end up 
calling the system GCC with some flags that it doesn't like and 
compilation fails, as expected.

Regards,
Ray

On 11/24/2016 11:05 PM, Bill Deegan wrote:
> What happens when you change the target for SharedLibrary to 'foo.dll' ?
>
> On Tue, Nov 22, 2016 at 7:57 PM, Ray Speth <speth at darkmatter.mit.edu
> <mailto:speth at darkmatter.mit.edu>> wrote:
>
>     Bill,
>
>     Adding the --tree=prune and --deub=presub options don't change the
>     output. The value of CCCOM is '$CC -o $TARGET -c $CFLAGS $CCFLAGS
>     $_CCCOMCOM $SOURCES'. According to env.subst, this works out to 'gcc
>     -o -c'.
>
>     The output from adding the --debug=stacktrace option are posted at
>     https://gist.github.com/speth/6f022116c3a1273952afe8167c6388ae
>     <https://gist.github.com/speth/6f022116c3a1273952afe8167c6388ae>,
>     along with the full output of 'print env.Dump()'.
>
>     Regards,
>     Ray
>
>     On 11/20/2016 6:43 PM, Bill Deegan wrote:
>
>         Ray,
>
>         I don't have mingw installed on a system I have readily
>         available today.
>         Can you pastebin the output for the following:
>
>         scons --tree=prune
>         scons --deub=presub
>
>         Add:
>
>         print env.Dump('CCCOM')
>
>         To you Sconstruct and run scons and copy that output as well.
>
>         Thanks,
>
>         Bill
>
>
>
>         On Sat, Nov 19, 2016 at 5:59 PM, Ray Speth
>         <speth at darkmatter.mit.edu <mailto:speth at darkmatter.mit.edu>
>         <mailto:speth at darkmatter.mit.edu
>         <mailto:speth at darkmatter.mit.edu>>> wrote:
>
>
>             Hi,
>
>             I have encountered an apparent bug when trying to build
>             versioned
>
>         shared libraries with MinGW. A minimal SConstruct:
>
>
>                 env = Environment(tools=['mingw'])
>                 lib = env.SharedLibrary('foo', ['foo.cpp'],
>             SHLIBVERSION='2.4')
>                 env.AlwaysBuild(lib)
>
>             generates the following output:
>
>                 scons: Reading SConscript files ...
>                 scons: *** A shared library should have exactly one
>             target with the
>             suffix: .dll
>                 File "path\to\SConstruct", line 2, in <module>
>
>             I have tested this with SCons 2.4.1, 2.5.0, and 2.5.1, with
>             the same
>
>         results.
>
>
>             Regards,
>             Ray
>             _______________________________________________
>             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
>             <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
>         <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
>     <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
>


More information about the Scons-users mailing list