[Python-3000] Compiling Python 3.0 with VS 2008 Beta2

Christian Heimes lists at cheimes.de
Sat Nov 17 01:47:48 CET 2007

Martin v. Löwis wrote:
> If you have time and energy, you can try to eliminate duplicate and
> unnecessary settings, using VS defaults wherever possible. For
> optimization, it's probably still useful to copy over some of the
> PCbuild8 settings (although I'm not sure what the precise constraints
> on the feedback optimization are).

Yes, I like to reuse the vsprops files. They are useful to share common
configuration and macros across multiple projects in a solution. It
should make it easier to share global information like include
directories. I'm not going to add PGO (profile guided optimization) for
now. It's a nice to have feature but it's not crucial.

A project can inherit from multiple vcprops and a vcprop sheet can
inherit from another.  I've given some though to a sensible but small

pyproject	(base vcprops for all projects in the solution, machine
    * pyd	(props for Python extensions)
        o pyd_d	(props for Python extensions Debug build)
amd64		(AMD64 related options)
x86		(x86 related options)

> Also, we should consider how to manage both the trunk and the 3k branch
> - they should definitely use the same compiler, so perhaps a lot of
> project files can be shared.

I've planed to work on py3k and port the PCbuild9 stuff back into the
trunk later. The structure of py3k and trunk are almost identical but
the py3k branch has more files. It's easier to remove non existing files
than to add missing files.

> For the multi-architecture thing, there should be build settings for
> both x86 and AMD64; Itanium is probably irrelevant. I'm still undecided
> on how the directory layout should be; people probably will keep asking
> that you can use the same sandbox for both architectures, and other
> people will keep asking that the layout should continue to be compatible
> with Python 2.5. So perhaps we can put x86 binaries into PCbuild
> directly, and AMD64 binaries into PCbuild/amd64.

What combinations of configuration and platform do we need? The migrated
solution has Release, Debug, ReleaseAMD64 and ReleaseItanium as
configurations and Win32 as platform. The platform X64 isn't listed but
I could add it.

Do we need a ReleaseAMD64 when we could use the platform X64?

> If you find that you absolutely cannot build some extension module
> from the sources that are in external (e.g. openssl), feel free to
> import newer releases (provided that they actually work).

I vaguely remember an issue with openssl that is fixed in new versions
of openssl. For now I try to stick to the releases which are already in
the external repository.

I'm not familiar with all settings of VS. While I can make sense of most
settings I don't understand why some projects are setting a base address
in the linker settings.


More information about the Python-3000 mailing list