Message140894
| Author |
vstinner |
| Recipients |
landry, mark.dickinson, rpointel, vstinner |
| Date |
2011年07月22日.16:04:25 |
| SpamBayes Score |
7.628679e-07 |
| Marked as misclassified |
No |
| Message-id |
<1311350666.52.0.0807311712815.issue12589@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I'm not sure that your version of gdb understands macros. You may have to set a breakpoint on __isinf. Compile Python with "-g -ggdb" helps gdb.
Py_IS_INFINITY is may not defined as "# define Py_IS_INFINITY(X) isinf(X)". To check that, add #error macro in pymath.h for all cases around #ifndef Py_IS_INFINITY. For example:
#ifndef Py_IS_INFINITY
# if defined HAVE_DECL_ISINF && HAVE_DECL_ISINF == 1
# error "Py_IS_INFINITY is implemented using isinf()"
# define Py_IS_INFINITY(X) isinf(X)
# else
# error "Py_IS_INFINITY is implemented using *0.5"
# define Py_IS_INFINITY(X) ((X) && \
(Py_FORCE_DOUBLE(X)*0.5 == Py_FORCE_DOUBLE(X)))
# endif
#else
# error "Py_IS_INFINITY already set!?"
#endif
And recompile Python. It may be a typo in pyconfig.h (generated by configure) or an issue with the inclusion paths of gcc (-I options).
Can you please attach your pyconfig.h and /usr/include/math.h files?
Can you also copy-paste the line used to compile Object/floatobject.c (to check the compiler options)? Use touch Object/floatobject.c && make to recompile this file.
FYI, isinf() is also a macro on Linux:
# ifdef __NO_LONG_DOUBLE_MATH
# define isinf(x) \
(sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
# else
# define isinf(x) \
(sizeof (x) == sizeof (float) \
? __isinff (x) \
: sizeof (x) == sizeof (double) \
? __isinf (x) : __isinfl (x))
# endif |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2011年07月22日 16:04:26 | vstinner | set | recipients:
+ vstinner, mark.dickinson, rpointel, landry |
| 2011年07月22日 16:04:26 | vstinner | set | messageid: <1311350666.52.0.0807311712815.issue12589@psf.upfronthosting.co.za> |
| 2011年07月22日 16:04:25 | vstinner | link | issue12589 messages |
| 2011年07月22日 16:04:25 | vstinner | create |
|