[Patches] Extension building on Win32 using Gnu C

Rene Liebscher htw7192@htw-dresden.de
Fri, 2 Jun 2000 19:51:06 +0200 (DFT)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1925705967-1682430998-959968266=:38558
Content-Type: TEXT/PLAIN; charset=US-ASCII

I want to provide a patch which makes it possible
to use the Gnu Win32 compilers (cygwin and mingw32)
to build extensions.

It is not intended to make python1.6 be able to be
build with these compilers, there you would need
at least a special makefile and probably even 
more support.

It introduces a section for Gnu C in the PC
specific config.h file. Also it makes some 
type definitions available for dll functions
(you have to declare all types which are used
by the dll interface. If you don't, you get
warnings about incompatible types and so on) 
This is done by some #defines, which are 
empty for all others.

I have compiled the patched version on linux and Window 
MS Visual C++ and both are still working. I also
tried to build an extension module with Gnu C
which worked too.


To build extensions with Gnu C on Win32, you also 
need an import library. This library cannot be build
by MSVC, but every one who uses Gnu C on Win32
can build it for himself (with dlltool), if 
the def-file for the dll-file is provided. So 
this file should be included in the distribution. 


Kind regards

Rene Liebscher

R.Liebscher@gmx.de

---1925705967-1682430998-959968266=:38558
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="python.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.A41.4.10.10006021951060.38558@rob.rz.htw-dresden.de>
Content-Description: 
Content-Disposition: attachment; filename="python.patch"

ZGlmZiAtQmNyTiAtLW1pbmltYWwgcHl0aG9uLm9yaWcvZGlzdC9zcmMvSW5j
bHVkZS9QeXRob24uaCBweXRob24ucGF0Y2hlZC9kaXN0L3NyYy9JbmNsdWRl
L1B5dGhvbi5oDQoqKiogcHl0aG9uLm9yaWcvZGlzdC9zcmMvSW5jbHVkZS9Q
eXRob24uaAlTdW4gTWF5IDI4IDIyOjI5OjQ4IDIwMDANCi0tLSBweXRob24u
cGF0Y2hlZC9kaXN0L3NyYy9JbmNsdWRlL1B5dGhvbi5oCVR1ZSBNYXkgMzAg
MTA6MjQ6NDAgMjAwMA0KKioqKioqKioqKioqKioqDQoqKiogNDYsNTEgKioq
Kg0KLS0tIDQ2LDYyIC0tLS0NCiAgI2RlZmluZSBETF9FWFBPUlQoUlRZUEUp
IFJUWVBFDQogICNlbmRpZg0KICANCisgLyogVGhlIG5leHQgYXJlIHVzZWQg
YnkgdGhlIEdudSBDLWNvbXBpbGVycyBvbiBXaW4zMiwgZm9yIGFsbCBvdGhl
cnMNCisgICAgdGhleSB3aWxsIGJlIGRlZmluZWQgYXMgZW1wdHkgKi8gDQor
IC8qIERlZmluaXRpb24gb2YgZXZlcnkgdHlwZSwgdmFyaWFibGVzIG9mIHdo
aWNoIG1heSBiZSBpbXBvcnRlZCBmcm9tIERMTCwNCisgICAgbXVzdCBiZSB3
cmFwcGVkIGluIERMX0NMQVNTSU1QT1JUX0JFRy9ETF9DTEFTU0lNUE9SVF9F
TkQgYnJhY2tldHMgKi8NCisgI2lmbmRlZiBETF9DTEFTU0lNUE9SVF9CRUcN
CisgI2RlZmluZSBETF9DTEFTU0lNUE9SVF9CRUcNCisgI2VuZGlmDQorICNp
Zm5kZWYgRExfQ0xBU1NJTVBPUlRfRU5EDQorICNkZWZpbmUgRExfQ0xBU1NJ
TVBPUlRfRU5EDQorICNlbmRpZg0KKyANCiAgI2lmZGVmIFNZTUFOVEVDX19D
Rk02OEtfXw0KICAjZGVmaW5lIFVzaW5nU2hhcmVkTGlicw0KICAjZW5kaWYN
CmRpZmYgLUJjck4gLS1taW5pbWFsIHB5dGhvbi5vcmlnL2Rpc3Qvc3JjL0lu
Y2x1ZGUvb2JqZWN0LmggcHl0aG9uLnBhdGNoZWQvZGlzdC9zcmMvSW5jbHVk
ZS9vYmplY3QuaA0KKioqIHB5dGhvbi5vcmlnL2Rpc3Qvc3JjL0luY2x1ZGUv
b2JqZWN0LmgJTW9uIEFwciAyNCAxNzo0MDo0NSAyMDAwDQotLS0gcHl0aG9u
LnBhdGNoZWQvZGlzdC9zcmMvSW5jbHVkZS9vYmplY3QuaAlUdWUgTWF5IDMw
IDEwOjM0OjMzIDIwMDANCioqKioqKioqKioqKioqKg0KKioqIDEwNywxMjAg
KioqKg0KICAJUHlPYmplY3RfSEVBRCBcDQogIAlpbnQgb2Jfc2l6ZTsgLyog
TnVtYmVyIG9mIGl0ZW1zIGluIHZhcmlhYmxlIHBhcnQgKi8NCiAgIA0KISB0
eXBlZGVmIHN0cnVjdCBfb2JqZWN0IHsNCiAgCVB5T2JqZWN0X0hFQUQNCiEg
fSBQeU9iamVjdDsNCiAgDQotIHR5cGVkZWYgc3RydWN0IHsNCi0gCVB5T2Jq
ZWN0X1ZBUl9IRUFEDQotIH0gUHlWYXJPYmplY3Q7DQogIA0KICANCiAgLyoN
CiAgVHlwZSBvYmplY3RzIGNvbnRhaW4gYSBzdHJpbmcgY29udGFpbmluZyB0
aGUgdHlwZSBuYW1lICh0byBoZWxwIHNvbWV3aGF0DQotLS0gMTA3LDEyMCAt
LS0tDQogIAlQeU9iamVjdF9IRUFEIFwNCiAgCWludCBvYl9zaXplOyAvKiBO
dW1iZXIgb2YgaXRlbXMgaW4gdmFyaWFibGUgcGFydCAqLw0KICAgDQohIHR5
cGVkZWYgRExfQ0xBU1NJTVBPUlRfQkVHIHN0cnVjdCBfb2JqZWN0IHsNCiAg
CVB5T2JqZWN0X0hFQUQNCiEgfSBETF9DTEFTU0lNUE9SVF9FTkQgUHlPYmpl
Y3Q7DQogIA0KICANCisgdHlwZWRlZiBETF9DTEFTU0lNUE9SVF9CRUcgc3Ry
dWN0IHsNCisgCVB5T2JqZWN0X1ZBUl9IRUFEDQorIH0gRExfQ0xBU1NJTVBP
UlRfRU5EIFB5VmFyT2JqZWN0Ow0KICANCiAgLyoNCiAgVHlwZSBvYmplY3Rz
IGNvbnRhaW4gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgdHlwZSBuYW1lICh0
byBoZWxwIHNvbWV3aGF0DQoqKioqKioqKioqKioqKioNCioqKiAxNDYsMTUy
ICoqKioNCiAgdHlwZWRlZiBpbnQgKCpnZXRjaGFyYnVmZmVycHJvYykgUHlf
UFJPVE8oKFB5T2JqZWN0ICosIGludCwgY29uc3QgY2hhciAqKikpOw0KICB0
eXBlZGVmIGludCAoKm9iam9ianByb2MpIFB5X1BST1RPKChQeU9iamVjdCAq
LCBQeU9iamVjdCAqKSk7DQogIA0KISB0eXBlZGVmIHN0cnVjdCB7DQogIAli
aW5hcnlmdW5jIG5iX2FkZDsNCiAgCWJpbmFyeWZ1bmMgbmJfc3VidHJhY3Q7
DQogIAliaW5hcnlmdW5jIG5iX211bHRpcGx5Ow0KLS0tIDE0NiwxNTIgLS0t
LQ0KICB0eXBlZGVmIGludCAoKmdldGNoYXJidWZmZXJwcm9jKSBQeV9QUk9U
TygoUHlPYmplY3QgKiwgaW50LCBjb25zdCBjaGFyICoqKSk7DQogIHR5cGVk
ZWYgaW50ICgqb2Jqb2JqcHJvYykgUHlfUFJPVE8oKFB5T2JqZWN0ICosIFB5
T2JqZWN0ICopKTsNCiAgDQohIHR5cGVkZWYgRExfQ0xBU1NJTVBPUlRfQkVH
IHN0cnVjdCB7DQogIAliaW5hcnlmdW5jIG5iX2FkZDsNCiAgCWJpbmFyeWZ1
bmMgbmJfc3VidHJhY3Q7DQogIAliaW5hcnlmdW5jIG5iX211bHRpcGx5Ow0K
KioqKioqKioqKioqKioqDQoqKiogMTcwLDE3OCAqKioqDQogIAl1bmFyeWZ1
bmMgbmJfZmxvYXQ7DQogIAl1bmFyeWZ1bmMgbmJfb2N0Ow0KICAJdW5hcnlm
dW5jIG5iX2hleDsNCiEgfSBQeU51bWJlck1ldGhvZHM7DQogIA0KISB0eXBl
ZGVmIHN0cnVjdCB7DQogIAlpbnF1aXJ5IHNxX2xlbmd0aDsNCiAgCWJpbmFy
eWZ1bmMgc3FfY29uY2F0Ow0KICAJaW50YXJnZnVuYyBzcV9yZXBlYXQ7DQot
LS0gMTcwLDE3OCAtLS0tDQogIAl1bmFyeWZ1bmMgbmJfZmxvYXQ7DQogIAl1
bmFyeWZ1bmMgbmJfb2N0Ow0KICAJdW5hcnlmdW5jIG5iX2hleDsNCiEgfSBE
TF9DTEFTU0lNUE9SVF9FTkQgUHlOdW1iZXJNZXRob2RzOw0KICANCiEgdHlw
ZWRlZiBETF9DTEFTU0lNUE9SVF9CRUcgc3RydWN0IHsNCiAgCWlucXVpcnkg
c3FfbGVuZ3RoOw0KICAJYmluYXJ5ZnVuYyBzcV9jb25jYXQ7DQogIAlpbnRh
cmdmdW5jIHNxX3JlcGVhdDsNCioqKioqKioqKioqKioqKg0KKioqIDE4MSwy
MDAgKioqKg0KICAJaW50b2JqYXJncHJvYyBzcV9hc3NfaXRlbTsNCiAgCWlu
dGludG9iamFyZ3Byb2Mgc3FfYXNzX3NsaWNlOw0KICAJb2Jqb2JqcHJvYyBz
cV9jb250YWluczsNCiEgfSBQeVNlcXVlbmNlTWV0aG9kczsNCiAgDQohIHR5
cGVkZWYgc3RydWN0IHsNCiAgCWlucXVpcnkgbXBfbGVuZ3RoOw0KICAJYmlu
YXJ5ZnVuYyBtcF9zdWJzY3JpcHQ7DQogIAlvYmpvYmphcmdwcm9jIG1wX2Fz
c19zdWJzY3JpcHQ7DQohIH0gUHlNYXBwaW5nTWV0aG9kczsNCiAgDQohIHR5
cGVkZWYgc3RydWN0IHsNCiAgCWdldHJlYWRidWZmZXJwcm9jIGJmX2dldHJl
YWRidWZmZXI7DQogIAlnZXR3cml0ZWJ1ZmZlcnByb2MgYmZfZ2V0d3JpdGVi
dWZmZXI7DQogIAlnZXRzZWdjb3VudHByb2MgYmZfZ2V0c2VnY291bnQ7DQog
IAlnZXRjaGFyYnVmZmVycHJvYyBiZl9nZXRjaGFyYnVmZmVyOw0KISB9IFB5
QnVmZmVyUHJvY3M7DQogIAkNCiAgDQogIHR5cGVkZWYgdm9pZCAoKmRlc3Ry
dWN0b3IpIFB5X1BST1RPKChQeU9iamVjdCAqKSk7DQotLS0gMTgxLDIwMCAt
LS0tDQogIAlpbnRvYmphcmdwcm9jIHNxX2Fzc19pdGVtOw0KICAJaW50aW50
b2JqYXJncHJvYyBzcV9hc3Nfc2xpY2U7DQogIAlvYmpvYmpwcm9jIHNxX2Nv
bnRhaW5zOw0KISB9IERMX0NMQVNTSU1QT1JUX0VORCBQeVNlcXVlbmNlTWV0
aG9kczsNCiAgDQohIHR5cGVkZWYgRExfQ0xBU1NJTVBPUlRfQkVHIHN0cnVj
dCB7DQogIAlpbnF1aXJ5IG1wX2xlbmd0aDsNCiAgCWJpbmFyeWZ1bmMgbXBf
c3Vic2NyaXB0Ow0KICAJb2Jqb2JqYXJncHJvYyBtcF9hc3Nfc3Vic2NyaXB0
Ow0KISB9IERMX0NMQVNTSU1QT1JUX0VORCBQeU1hcHBpbmdNZXRob2RzOw0K
ICANCiEgdHlwZWRlZiBETF9DTEFTU0lNUE9SVF9CRUcgc3RydWN0IHsNCiAg
CWdldHJlYWRidWZmZXJwcm9jIGJmX2dldHJlYWRidWZmZXI7DQogIAlnZXR3
cml0ZWJ1ZmZlcnByb2MgYmZfZ2V0d3JpdGVidWZmZXI7DQogIAlnZXRzZWdj
b3VudHByb2MgYmZfZ2V0c2VnY291bnQ7DQogIAlnZXRjaGFyYnVmZmVycHJv
YyBiZl9nZXRjaGFyYnVmZmVyOw0KISB9IERMX0NMQVNTSU1QT1JUX0VORCBQ
eUJ1ZmZlclByb2NzOw0KICAJDQogIA0KICB0eXBlZGVmIHZvaWQgKCpkZXN0
cnVjdG9yKSBQeV9QUk9UTygoUHlPYmplY3QgKikpOw0KKioqKioqKioqKioq
KioqDQoqKiogMjA3LDIxMyAqKioqDQogIHR5cGVkZWYgUHlPYmplY3QgKigq
cmVwcmZ1bmMpIFB5X1BST1RPKChQeU9iamVjdCAqKSk7DQogIHR5cGVkZWYg
bG9uZyAoKmhhc2hmdW5jKSBQeV9QUk9UTygoUHlPYmplY3QgKikpOw0KICAN
CiEgdHlwZWRlZiBzdHJ1Y3QgX3R5cGVvYmplY3Qgew0KICAJUHlPYmplY3Rf
VkFSX0hFQUQNCiAgCWNoYXIgKnRwX25hbWU7IC8qIEZvciBwcmludGluZyAq
Lw0KICAJaW50IHRwX2Jhc2ljc2l6ZSwgdHBfaXRlbXNpemU7IC8qIEZvciBh
bGxvY2F0aW9uICovDQotLS0gMjA3LDIxMyAtLS0tDQogIHR5cGVkZWYgUHlP
YmplY3QgKigqcmVwcmZ1bmMpIFB5X1BST1RPKChQeU9iamVjdCAqKSk7DQog
IHR5cGVkZWYgbG9uZyAoKmhhc2hmdW5jKSBQeV9QUk9UTygoUHlPYmplY3Qg
KikpOw0KICANCiEgdHlwZWRlZiBETF9DTEFTU0lNUE9SVF9CRUcgc3RydWN0
IF90eXBlb2JqZWN0IHsNCiAgCVB5T2JqZWN0X1ZBUl9IRUFEDQogIAljaGFy
ICp0cF9uYW1lOyAvKiBGb3IgcHJpbnRpbmcgKi8NCiAgCWludCB0cF9iYXNp
Y3NpemUsIHRwX2l0ZW1zaXplOyAvKiBGb3IgYWxsb2NhdGlvbiAqLw0KKioq
KioqKioqKioqKioqDQoqKiogMjU2LDI2MiAqKioqDQogIAlpbnQgdHBfbWF4
YWxsb2M7DQogIAlzdHJ1Y3QgX3R5cGVvYmplY3QgKnRwX25leHQ7DQogICNl
bmRpZg0KISB9IFB5VHlwZU9iamVjdDsNCiAgDQogIGV4dGVybiBETF9JTVBP
UlQoUHlUeXBlT2JqZWN0KSBQeVR5cGVfVHlwZTsgLyogVGhlIHR5cGUgb2Yg
dHlwZSBvYmplY3RzICovDQogIA0KLS0tIDI1NiwyNjIgLS0tLQ0KICAJaW50
IHRwX21heGFsbG9jOw0KICAJc3RydWN0IF90eXBlb2JqZWN0ICp0cF9uZXh0
Ow0KICAjZW5kaWYNCiEgfSBETF9DTEFTU0lNUE9SVF9FTkQgUHlUeXBlT2Jq
ZWN0Ow0KICANCiAgZXh0ZXJuIERMX0lNUE9SVChQeVR5cGVPYmplY3QpIFB5
VHlwZV9UeXBlOyAvKiBUaGUgdHlwZSBvZiB0eXBlIG9iamVjdHMgKi8NCiAg
DQpkaWZmIC1CY3JOIC0tbWluaW1hbCBweXRob24ub3JpZy9kaXN0L3NyYy9Q
Qy9jb25maWcuaCBweXRob24ucGF0Y2hlZC9kaXN0L3NyYy9QQy9jb25maWcu
aA0KKioqIHB5dGhvbi5vcmlnL2Rpc3Qvc3JjL1BDL2NvbmZpZy5oCVdlZCBN
YXkgMTAgMTU6MjU6MzIgMjAwMA0KLS0tIHB5dGhvbi5wYXRjaGVkL2Rpc3Qv
c3JjL1BDL2NvbmZpZy5oCVR1ZSBNYXkgMzAgMTA6Mzc6NTUgMjAwMA0KKioq
KioqKioqKioqKioqDQoqKiogNDIsNDcgKioqKg0KLS0tIDQyLDc5IC0tLS0N
CiAgI2RlZmluZSBQUkVGSVggIiINCiAgI2RlZmluZSBFWEVDX1BSRUZJWCAi
Ig0KICANCisgLyogZWdjcy9nbnUtd2luMzIgZGVmaW5lcyBfX0dOVUNfXyBh
bmQgX1dJTjMyICovDQorIA0KKyAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYg
ZGVmaW5lZChfV0lOMzIpDQorICNkZWZpbmUgTlQJLyogTlQgaXMgb2Jzb2xl
dGUgLSBwbGVhc2UgdXNlIE1TX1dJTjMyIGluc3RlYWQgKi8NCisgI2RlZmlu
ZSBNU19XSU4zMg0KKyAjZGVmaW5lIE1TX1dJTkRPV1MNCisgI2RlZmluZSBI
QVZFX0NMT0NLDQorICNkZWZpbmUgSEFWRV9TVFJGVElNRQ0KKyAjZGVmaW5l
IEhBVkVfU1RSRVJST1INCisgI2RlZmluZSBOVF9USFJFQURTDQorICNkZWZp
bmUgV0lUSF9USFJFQUQNCisgI2RlZmluZSBXT1JEX0JJVCAzMg0KKyAjZGVm
aW5lIEhBVkVfTE9OR19MT05HIDENCisgI2RlZmluZSBMT05HX0xPTkcgbG9u
ZyBsb25nDQorICNkZWZpbmUgUFlUSE9OUEFUSCAiLlxcRExMczsuXFxsaWI7
LlxcbGliXFxwbGF0LXdpbjsuXFxsaWJcXGxpYi10ayINCisgDQorICNpZm5k
ZWYgTVNfTk9fQ09SRURMTA0KKyAjZGVmaW5lIE1TX0NPUkVETEwJLyogUHl0
aG9uIGNvcmUgaXMgaW4gYSBETEwgKi8NCisgI2lmbmRlZiBVU0VfRExfRVhQ
T1JUDQorICNkZWZpbmUgVVNFX0RMX0lNUE9SVA0KKyAjZW5kaWYgLyogIVVT
RV9ETF9FWFBPUlQgKi8NCisgI2VuZGlmIC8qICFNU19OT19DT1JFRExMICov
DQorIA0KKyAjaWZkZWYgVVNFX0RMX0lNUE9SVA0KKyAjZGVmaW5lIERMX0lN
UE9SVChzeW0pIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBzeW0NCisgLyogRGVm
aW5pdGlvbiBvZiBldmVyeSB0eXBlLCB2YXJpYWJsZXMgb2Ygd2hpY2ggbWF5
IGJlIGltcG9ydGVkIGZyb20gRExMLA0KKyAgICBtdXN0IGJlIHdyYXBwZWQg
aW4gRExfQ0xBU1NJTVBPUlRfQkVHL0RMX0NMQVNTSU1QT1JUX0VORCBicmFj
a2V0cyAqLw0KKyAjZGVmaW5lIERMX0NMQVNTSU1QT1JUX0JFRw0KKyAjZGVm
aW5lIERMX0NMQVNTSU1QT1JUX0VORCBfX2RlY2xzcGVjKGRsbGltcG9ydCkN
CisgI2VuZGlmIC8qIFVTRV9ETF9JTVBPUlQgKi8NCisgI2VuZGlmIC8qIChk
ZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9XSU4zMikpICovDQorIA0K
ICAvKiBNaWNyb3NvZnQgQyBkZWZpbmVzIF9NU0NfVkVSICovDQogICNpZmRl
ZiBfTVNDX1ZFUg0KICANCg==
---1925705967-1682430998-959968266=:38558--