Hi there,

I've spent some time today experimenting with building pywin32 for
AMD64. That is, mostly the Py_ssize_t changes from PEP 353 and
whatever else the compiler complained about.

I've asked Mark for permission and made a 'AMD64' branch (apparently
the first branch on this repository?!).

The overall situation on the branch is the following:

 - It still builds with Python 2.4, meaning the changes are apparently
backward compatible
 - It does not finish building with Python 2.5 AMD64, but it's pretty close.
 - I had to disable the building of 'axdebug', since it complained
about a certain function ending with '64' which I could not figure how
to declare.
 - The build fails when building the 'shell' module, with the error below.

The process I'm using to build is:

  - Open the Platform SDK "Set Windows XP x64 Build Environment (Retail)"
  - 'set DISTUTILS_USE_SDK=1'
  - 'set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Microsoft Visual
Studio .NET 2003\Vc7\PlatformSDK\Include' (so it finds 'dxsound.h')
  - 'C:\Python25\python.exe setup.py build'

The only thing that looks suspect on the output is that cl.exe from
the SDK does not support the '/YX' switch, though maybe that doesn't
matter.

For reference, here's the diff between HEAD and the branch.
https://houston.enfoldsystems.com/files/sidnei/pywin32-amd64.diff

********************************************************
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin\Win64\x86
\AMD64\link.exe /DLL /nologo /INCREMENTAL:NO "/LIBPATH:C:\Program Files\Microsof
t Platform SDK for Windows Server 2003 R2\lib\AMD64" /LIBPATH:c:\Python25\libs /
LIBPATH:c:\Python25\PCBuild /LIBPATH:build\temp.win32-2.5\Release shell32.lib ol
eaut32.lib ole32.lib /EXPORT:initshell build\temp.win32-2.5\Release\com/win32com
ext/shell/src/PyIActiveDesktop.obj build\temp.win32-2.5\Release\com/win32comext/
shell/src/PyIAsyncOperation.obj build\temp.win32-2.5\Release\com/win32comext/she
ll/src/PyIBrowserFrameOptions.obj build\temp.win32-2.5\Release\com/win32comext/s
hell/src/PyIColumnProvider.obj build\temp.win32-2.5\Release\com/win32comext/shel
l/src/PyIContextMenu.obj build\temp.win32-2.5\Release\com/win32comext/shell/src/
PyICopyHook.obj build\temp.win32-2.5\Release\com/win32comext/shell/src/PyIDeskBa
nd.obj build\temp.win32-2.5\Release\com/win32comext/shell/src/PyIDockingWindow.o
bj build\temp.win32-2.5\Release\com/win32comext/shell/src/PyIDropTargetHelper.ob
j build\temp.win32-2.5\Release\com/win32comext/shell/src/PyIEnumIDList.obj build
\temp.win32-2.5\Release\com/win32comext/shell/src/PyIExtractIcon.obj build\temp.
win32-2.5\Release\com/win32comext/shell/src/PyIInputObject.obj build\temp.win32-
2.5\Release\com/win32comext/shell/src/PyIPersistFolder.obj build\temp.win32-2.5\
Release\com/win32comext/shell/src/PyIQueryAssociations.obj build\temp.win32-2.5\
Release\com/win32comext/shell/src/PyIShellBrowser.obj build\temp.win32-2.5\Relea
se\com/win32comext/shell/src/PyIShellExtInit.obj build\temp.win32-2.5\Release\co
m/win32comext/shell/src/PyIShellFolder.obj build\temp.win32-2.5\Release\com/win3
2comext/shell/src/PyIShellIcon.obj build\temp.win32-2.5\Release\com/win32comext/
shell/src/PyIShellIconOverlay.obj build\temp.win32-2.5\Release\com/win32comext/s
hell/src/PyIShellIconOverlayIdentifier.obj build\temp.win32-2.5\Release\com/win3
2comext/shell/src/PyIShellIconOverlayManager.obj build\temp.win32-2.5\Release\co
m/win32comext/shell/src/PyIShellLink.obj build\temp.win32-2.5\Release\com/win32c
omext/shell/src/PyIShellLinkDataList.obj build\temp.win32-2.5\Release\com/win32c
omext/shell/src/PyIShellView.obj build\temp.win32-2.5\Release\com/win32comext/sh
ell/src/PyIUniformResourceLocator.obj build\temp.win32-2.5\Release\com/win32come
xt/shell/src/shell.obj /OUT:build\lib.win32-2.5\win32comext/shell\shell.pyd /IMP
LIB:build\temp.win32-2.5\Release\com/win32comext/shell/src\shell.lib /MACHINE:AM
D64 /BASE:0x1e7d0000

shell.obj : warning LNK4197: export 'initshell' specified multiple times; using
first specification
  Creating library build\temp.win32-2.5\Release\com/win32comext/shell/src\shell
.lib and object build\temp.win32-2.5\Release\com/win32comext/shell/src\shell.exp

PyIShellView.obj : error LNK2001: unresolved external symbol "int __cdecl PyObje
ct_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned int *
)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
shell.obj : error LNK2001: unresolved external symbol "int __cdecl PyObject_AsPI
DL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned int *)" (?Py
Object_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
PyIShellFolder.obj : error LNK2001: unresolved external symbol "int __cdecl PyOb
ject_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned int
 *)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
PyIShellIcon.obj : error LNK2001: unresolved external symbol "int __cdecl PyObje
ct_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned int *
)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
PyIShellIconOverlay.obj : error LNK2001: unresolved external symbol "int __cdecl
 PyObject_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigne
d int *)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL 
PROTECTED])
PyIShellLink.obj : error LNK2001: unresolved external symbol "int __cdecl PyObje
ct_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned int *
)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
PyIEnumIDList.obj : error LNK2019: unresolved external symbol "int __cdecl PyObj
ect_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned int
*)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED]) 
referenced
in function "protected: virtual long __cdecl PyGEnumIDList::Next(unsigned long,s
truct _ITEMIDLIST __unaligned * *,unsigned long *)" ([EMAIL PROTECTED]@@MEAAJK
PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
PyIPersistFolder.obj : error LNK2001: unresolved external symbol "int __cdecl Py
Object_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned i
nt *)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL 
PROTECTED])
PyIShellBrowser.obj : error LNK2001: unresolved external symbol "int __cdecl PyO
bject_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned in
t *)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
PyIShellExtInit.obj : error LNK2001: unresolved external symbol "int __cdecl PyO
bject_AsPIDL(struct _object *,struct _ITEMIDLIST __unaligned * *,int,unsigned in
t *)" (?PyObject_AsPIDL@@YAHPEAU_object@@PEAPEFAU_ITEMIDLIST@@[EMAIL PROTECTED])
build\lib.win32-2.5\win32comext/shell\shell.pyd : fatal error LNK1120: 1 unresol
ved externals
error: command 'link.exe' failed with exit status 1120
********************************************************

-- 
Sidnei da Silva
Enfold Systems                http://enfoldsystems.com
Fax +1 832 201 8856     Office +1 713 942 2377 Ext 214
_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to