[Scons-users] TryRun() problem with python3 scons-3.0.1

Bill Deegan bill at baddogconsulting.com
Sun Mar 11 19:33:10 EDT 2018


Nothing smaller than the whole mongodb build tree?..

On Sun, Mar 11, 2018 at 4:26 PM, Andrew C. Morrow <andrew.c.morrow at gmail.com
> wrote:

>
> Hi Bill -
>
> Here is a repro for me.
>
> You will need to clone https://github.com/acmorrow/mongo/tree/SERVER-32295.
> This is a work-in-progress branch for adding py3 support to the mongodb
> build system. I'm using SCons from git, currently checked out to
> 867f762f6c1e23524cd1b0262b8e93e822b23d0c. I'm using python 3.6.4 from
> homebrew on OS X 10.13.
>
> The following command fails:
>
> $ SCONS_LIB_DIR=$(pwd)/../../oss/scons/src/engine /usr/local/bin/python3
> ../../oss/scons/src/script/scons.py -j8 --dbg=on --opt=off --ssl
> --link-model=dynamic CPPPATH="/usr/local/include
> /usr/local/include/libbson-1.0 /usr/local/include/libmongoc-1.0
> /usr/local/opt/openssl/include" LIBPATH="/usr/local/lib
> /usr/local/opt/openssl/lib" --implicit-cache MONGO_VERSION=3.7.1-pre
> --variables-files= --cache
> scons: Reading SConscript files ...
> Mkdir("build/scons")
> scons version: __VERSION__
> python version: 3 6 4 final 0
> Checking whether the C compiler works... yes
> Checking whether the C++ compiler works... yes
> Checking that the C++ compiler can link a C++ program... yes
> Checking if C++ compiler "g++" is GCC... no
> Checking if C++ compiler "g++" is clang... yes
> Checking if C compiler "gcc" is clang... yes
> Detected a x86_64 processor
> Checking if target OS macOS is supported by the toolchain... yes
> Checking if C compiler is clang 3.8 (or Apple XCode 8.3.2) or newer...*TypeError
> : sequence item 0: expected str instance, bytes found*
>
> If I remove the --cache argument, the build runs (at least, it gets a lot
> further along, making it all the way through configure and starting to
> build targets, before failing for other reasons):
>
> SCONS_LIB_DIR=$(pwd)/../../oss/scons/src/engine /usr/local/bin/python3
> ../../oss/scons/src/script/scons.py -j8 --dbg=on --opt=off --ssl
> --link-model=dynamic CPPPATH="/usr/local/include
> /usr/local/include/libbson-1.0 /usr/local/include/libmongoc-1.0
> /usr/local/opt/openssl/include" LIBPATH="/usr/local/lib
> /usr/local/opt/openssl/lib" --implicit-cache MONGO_VERSION=3.7.1-pre
> --variables-files=
> scons: Reading SConscript files ...
> Mkdir("build/scons")
> scons version: __VERSION__
> python version: 3 6 4 final 0
> Checking whether the C compiler works... yes
> Checking whether the C++ compiler works... yes
> Checking that the C++ compiler can link a C++ program... yes
> Checking if C++ compiler "g++" is GCC... no
> Checking if C++ compiler "g++" is clang... yes
> Checking if C compiler "gcc" is clang... yes
> Detected a x86_64 processor
> Checking if target OS macOS is supported by the toolchain... yes
> Checking if C compiler is clang 3.8 (or Apple XCode 8.3.2) or newer...yes
> Checking if C++ compiler is clang 3.8 (or Apple XCode 8.3.2) or newer...yes
> Checking for sufficient macOS target version minimum... yes
> Checking if C compiler supports -Wno-unused-local-typedefs... yes
> Checking if C compiler supports -Wno-unused-function... yes
> Checking if C compiler supports -Wno-unused-private-field... yes
> Checking if C compiler supports -Wno-deprecated-declarations... yes
> Checking if C compiler supports -Wno-tautological-constant-out-of-range-compare...
> yes
> Checking if C compiler supports -Wno-unused-const-variable... yes
> Checking if C compiler supports -Wno-unused-but-set-variable... no
> ...
>
> Can you give that a try and see it you can repro? I'll bet it probably is
> something incomplete in the py3 port on the mongodb side, rather than the
> SCons side, but without a stacktrace it is proving hard to find.
>
> Thanks,
> Andrew
>
>
>
> On Sun, Mar 11, 2018 at 11:59 AM, Bill Deegan <bill at baddogconsulting.com>
> wrote:
>
>> Can someone provide a small reproducer?
>>
>> -Bill
>>
>> On Sun, Mar 11, 2018 at 3:42 AM, Dave Plater <dplater.list at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On 10/03/18 22:26, Bill Deegan wrote:
>>>
>>>> Can you try changing:
>>>>
>>>> outputStr =SCons.Util.to_str(output.get_contents())
>>>>
>>>> to
>>>>
>>>> outputStr =SCons.Util.to_str(output.get_text_contents())
>>>>
>>>> in SCons/SConf.py around line 646 in TryRun()?
>>>> And see if that resolves the issue..
>>>>
>>>> -Bill
>>>>
>>>>
>>> Hi Bill, it doesn't resolve the issue but I did go further and inserted
>>> a couple of print statements into TryBuild where it goes wrong.
>>> The result of (the first line is about line 584 in SConf.py):
>>>             nodes = builder(target = target, source = source)
>>>             print("\nnodes = ",nodes)
>>>             if not SCons.Util.is_List(nodes):
>>>                 nodes = [nodes]
>>>                 print("\n[nodes] = ",nodes)
>>>             nodesToBeBuilt.extend(nodes)
>>>             result = self.BuildNodes(nodesToBeBuilt)
>>>             print("\nresult = ",result)
>>>
>>> This results in :
>>>  Checking for a working C-compiler TryLink
>>>
>>>  nodes =  ['cache/conftest_0']
>>>
>>>  TypeError : sequence item 0: expected str instance, bytes found
>>>
>>> Thanks
>>> Dave
>>>
>>
>>
>> _______________________________________________
>> Scons-users mailing list
>> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180311/dba61a68/attachment.html>


More information about the Scons-users mailing list