I tried this out, and from some basic uses, it seems to work OK. However, the PYD file references msvcrt.dll, which suggests that there will be issues in more complex cases. The biggest problem with CRT compatibility issues is that (AFAIK) no-one has actually been able to trigger a *real* error, all of the problems are still theoretical. I have done some fairly extensive analysis of what could go wrong, and I suspect that there are very few genuine cases where data from one CRT could end up being manipulated by another - but this doesn't mean that the problems aren't real, just VERY hard to locate :-(
First of all, thank you for your input. It is greatly appreciated. And yes if Martin, for whom I have much respect, can help here, then that would be awesome.
Okay. This is partly my own fault. I am not using a standard MinGW distribution. This is why there is no release date in the sys.version information of the Python I compiled. I am using GCC RC 3.4.1 but the linking is still done by the 2002 MinGW 3.2, which is most probably hard- wired to use msvcrt.dll. Having said that, however, let me quickly add that it is almost a certainity that the newer standard MinGW distributions link with the latest libraries.
Nevertheless, I updated pyMinGW's cygwinccompiler.py to always link in with libmsvcr71, and rebuit the sample pymingw extension[1]. Now according to objdump we get the following:
[CUT]
00007014 000070b0 00000000 00000000 00007420 00007158
DLL Name: KERNEL32.dll vma: Hint/Ord Member-Name Bound-To 72fc 0 AddAtomA 7308 147 FindAtomA 7314 191 GetAtomNameA
00007028 000070c4 00000000 00000000 00007468 0000716c
DLL Name: msvcr71.dll vma: Hint/Ord Member-Name Bound-To 7324 56 __dllonexit 7334 189 _errno 7340 610 ctime 7348 619 fflush 7354 630 fputs 735c 634 free 7364 642 fwrite 7370 685 malloc 737c 701 puts 7384 724 strcmp 7390 726 strcpy 739c 730 strlen 73a8 733 strncpy 73b4 748 time
0000703c 00007104 00000000 00000000 00007478 000071ac
DLL Name: msvcrt.dll vma: Hint/Ord Member-Name Bound-To 73bc 510 abort
00007050 00000000 00000000 00000000 00000000 00000000
There is an export table in .edata at 0x6000
[CUT]
So what see ye? :) Does it look good?
Best wishes Khalid
[1] pymingw-01.zip (5.37 KB): Location: http://jove.prohosting.com/iwave/misc/pymingw-01.zip MD5: 63b486093b344b0299538c952dea4ce1 -------------------------- Contents in KB: -------------------------- PYMINGW PY 1.115 13/12/04 16:12 pymingw.py PYMINGW I 278 13/12/04 1:00 pymingw.i EXAMPLE C 848 13/12/04 0:23 example.c SETUP PY 192 13/12/04 0:59 setup.py _PYMINGW PYD 9.216 13/12/04 16:12 _pymingw.pyd
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
_______________________________________________ Python-Dev mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com