[ python-Bugs-1311784 ] python.exe 2.4.2 compiled with VS2005 crashes
SourceForge.net
noreply at sourceforge.net
Mon Oct 10 22:13:05 CEST 2005
Bugs item #1311784, was opened at 2005-10-03 14:18
Message generated for change (Comment added) made by loewis
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1311784&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Windows
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Peter Klotz (pete_icoserve)
Assigned to: Nobody/Anonymous (nobody)
Summary: python.exe 2.4.2 compiled with VS2005 crashes
Initial Comment:
The C runtime library shipped with Visual Studio 2005
performs strict checking of parameters.
In function initsignal() in file
Modules\signalmodule.c, an iteration over all signals
from 1 to NSIG is performed.
The function PyOS_getsig() is called with each of these
integer values. PyOS_getsig() then calls signal() with
the given value which leads to the crash.
According to signal.h from VS2005 only these signals
are allowed:
#define SIGINT 2
#define SIGILL 4
#define SIGABRT_COMPAT 6
#define SIGFPE 8
#define SIGSEGV 11
#define SIGTERM 15
#define SIGBREAK 21
#define SIGABRT 22
A solution would be to restrict the loop in
initsignal() to the above values under Windows.
----------------------------------------------------------------------
>Comment By: Martin v. Löwis (loewis)
Date: 2005-10-10 22:13
Message:
Logged In: YES
user_id=21627
Yes, I really do. Users have protested a lot when we
switched from VC6 to VS.NET2003, because they had to buy new
compilers. We cannot reasonably force another compiler
switch on them next year. However, this is off-topic for
this bug report, please discuss it on python-dev.
As for 64-bit windows support: I happily build 64-bit
Windows binaries all the time with VS.NET2003, see
www.python.org/2.4.2. There are no AMD64 binaries released,
but extending the technology to support, say, the AMD64 SDK
compiler would be possible. Patches to the actual code are
greatfully accepted.
----------------------------------------------------------------------
Comment By: Peter Klotz (pete_icoserve)
Date: 2005-10-10 09:05
Message:
Logged In: YES
user_id=299547
Do you really think ignoring/skipping VS2005 is a proper
solution?
I am currently porting our software to 64Bit Windows
(AMD64/EM64T) and the only compiler supporting this is the
one included in VS2005.
If Python does not support VS2005 everyone needing a 64Bit
version of Python is forced to locate and fix this problem
on his own.
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2005-10-08 11:56
Message:
Logged In: YES
user_id=21627
Can somebody please study the source of the C runtime of
VS2005 (probably needs to be requested specifically during
installation), to find out whether more generic solutions
are available. Possible solutions include:
- don't call signal, but call an alternative function
instead which won't cause a crash
- set some magic variable, disabling the error checking
- fetch the list of supported signals from somewhere (at
compile time or at run time), and iterate over that list.
Anyway, I don't see the official Python 2.5 release built
with VS 2005, so this is a minor issue - I rather expect
Python to skip VS 2005, and go right to the version that
succeeds it.
----------------------------------------------------------------------
Comment By: Peter Klotz (pete_icoserve)
Date: 2005-10-04 10:02
Message:
Logged In: YES
user_id=299547
I would leave the code for pre-VS2005 compilers as is and
introduce a specific workaround for VS2005 and all following
compilers.
Something like this comes to my mind:
#if defined (_WIN32) && _MSC_VER >= 1400
...
#endif
This works for 32 and 64 bit platforms since _WIN32 is
defined in both cases.
----------------------------------------------------------------------
Comment By: Neal Norwitz (nnorwitz)
Date: 2005-10-03 21:54
Message:
Logged In: YES
user_id=33168
Do you suggest this be special cased for VS2005 specifically
or Windows in general (ie, any version/compiler)?
----------------------------------------------------------------------
Comment By: Peter Klotz (pete_icoserve)
Date: 2005-10-03 20:10
Message:
Logged In: YES
user_id=299547
VS2005 is still not released.
It is scheduled for November 7th 2005. I tested with CTP
(Community Technology Preview) August 2005.
However I doubt they will change the behavior of their C library
at this point of development.
----------------------------------------------------------------------
Comment By: Michael Hudson (mwh)
Date: 2005-10-03 15:05
Message:
Logged In: YES
user_id=6656
Is VS2005 actually out now then? This behaviour violates the C standard,
as far as we can tell, so we when VS2005 was in beta we hoped that they
would fix it for the final release.
If it is released, though, I guess we need to do something like you suggest
(along with some colourful comments, I guess).
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1311784&group_id=5470
More information about the Python-bugs-list
mailing list