[Scons-users] AIX crashes with python3

Mats Wichmann mats at wichmann.us
Tue Jul 7 12:51:18 EDT 2020


On 7/7/20 10:37 AM, Rob Boehne wrote:

> I can fix it by adding this patch – this should work with any python 3.4
> or later (as opposed to some of the other fixes that would not).
> 
> I was about to create an issue but read I should post here first.
> 
>  
> 
> robb at rhel7:/raid/checkouts-raid/robb/AIX-scons/scons (master)$ git diff
> 
> diff --git a/SCons/Platform/aix.py b/SCons/Platform/aix.py
> 
> index c91679f..247437a 100644
> 
> --- a/SCons/Platform/aix.py
> 
> +++ b/SCons/Platform/aix.py
> 
> @@ -55,6 +55,7 @@ def get_xlc(env, xlc=None, packages=[]):
> 
>          pipe = SCons.Action._subproc(env, ['lslpp', '-fc', package],
> 
>                  stdin = 'devnull',
> 
>                  stderr = 'devnull',
> 
> +                universal_newlines=True,
> 
>                  stdout = subprocess.PIPE)
> 
>          # output of lslpp is something like this:
> 
>          #     #Path:Fileset:File

yes, scons is having problems with this topic.  we haven't had feedback
on AIX for a while.

in *MY* opinion, and I'm just one person, not sure all agree, all of the
cases where scons talks to a commandline utility via subprocess should
do so in text mode (which most versions of Python have called
universal_newlines, it finally has been renamed though the old name
continues to work). It's not like reading from files, which are
ultimately binary: the utilities speak text, and I'm not really clear
why Python chooses to default subprocess to binary.  If we talk to
utilities in binary, then we have to convert to text, and decoding risks
running into problems depending on character sets - we had a spate of
problems with non-US locales.

I had a patch making this change more gobally, but there's been a lot
going on...


More information about the Scons-users mailing list