[Scons-dev] Bug #2849 is not fixed (64-bit MS Windows 7 fails to build with 32-bit Visual Express C++ 2010).
William Deegan
bill at baddogconsulting.com
Sun Oct 21 21:51:41 EDT 2012
Edward,
On Oct 18, 2012, at 7:03 AM, Edward d'Auvergne <edward at nmr-relax.com> wrote:
> Hi,
>
> I have tested out Scons 2.2.0 and have noticed that bug #2849
> (http://scons.tigris.org/issues/show_bug.cgi?id=2849) is still
> present. I can see this also from the code:
>
> https://bitbucket.org/scons/scons/src/8764000345e06e326ef68fd0acf9366c1f3eb885/src/engine/SCons/Tool/MSCommon/vc.py?at=default
>
> in the lines:
>
> try_target_archs = [target_platform]
> if not req_target_platform and target_platform in ('amd64','x86_64'):
> try_target_archs.append('x86')
>
> The suggestion by Kyle Strand was to change to code from:
>
> try_target_archs = [target_platform]
> if not req_target_platform and target_platform=='amd64'
> try_target_archs.append('x86')
>
> to:
>
> try_target_archs = [target_platform]
> if target_platform in ('amd64','x86_64'):
> try_target_archs.append('x86')
>
> The key problem is that in this case is that 'req_target_platform' is
> set to 'x86_64' when 32-bit C++ is used on 64-bit Windows (and no
> 64-bit compiler is present). Taking out the 'req_target_platform'
> check fixes the problem for Scons 2.2.0.
Can you post your SConstruct/SConscript?
env['TARGET_ARCH'] shouldn't have any default setting, this is what provides a value to req_target_platform.
So in the case that a user explicitly requests a platform, we do not add any other platforms to be searched for.
As far as I can tell that is the way the code is behaving.
If you have an example showing a bug where TARGET_ARCH is not set, and it's not also trying 32bit, please let me know.
Thanks,
Bill
More information about the Scons-dev
mailing list