Python 2.3C1 Fails to build ?

H

Holden Caulfield

Hi,

I am trying to build Python 2.3 RC1 (2.3c1) on Cray SV1 running UNICOS 10.0.
And I am difficulty
building it on this architecture.

Background
--------------

.. Python 2.2.3 builds withs no problem. (without any changes).
.. This architecture has all C-datatypes as 8 bytes.

Try 1:
-------

I got this error message first time around.

~~~~ Cut ~~
cc -h nomessage=450 -h nostdc -h noconform -c -DNDEBUG -h scalar0 -h
vector0 -I. -I./Include -DPy_BUILD_CORE -o Parser/grammar.o
Parser/grammar.c
CC-513 cc: ERROR File = Parser/grammar.c, Line = 45
A value of type "int" cannot be assigned to an entity of type "char *".

d->d_name = strdup(name);
^

CC-513 cc: ERROR File = Parser/grammar.c, Line = 105
A value of type "int" cannot be assigned to an entity of type "char *".

lb->lb_str = strdup(str);
^

Total errors detected in Parser/grammar.c: 2
make: *** [Parser/grammar.o] Error 1

~~~~~~

- For some reason the strdup prototype does not get picked by the python
build.
Anyways, since strdup is there in libc, I just #ifdef'ed the prototype for
_CRAY and proceeded. It went
further this time around, but now I get this error in obmalloc.c, which
seems more problematic to fix.

~~~ Error message cut ~~~
cc -h nomessage=450 -h nostdc -h noconform -c -DNDEBUG -h scalar0 -h
vector0 -I. -I./Include -DPy_BUILD_CORE -o Objects/obmalloc.o
Objects/obmalloc.c
CC-61 cc: ERROR File = Objects/obmalloc.c, Line = 371
The integer operation result is out of range.

PT(0), PT(1), PT(2), PT(3), PT(4), PT(5), PT(6), PT(7)
^

CC-61 cc: ERROR File = Objects/obmalloc.c, Line = 371
The integer operation result is out of range.

PT(0), PT(1), PT(2), PT(3), PT(4), PT(5), PT(6), PT(7)
^

Total errors detected in Objects/obmalloc.c: 2
make: *** [Objects/obmalloc.o] Error 1
~~~~~~~~~~~~~~

Any ideas what is going on?

Thanks.
 
M

Martin v. =?iso-8859-15?q?L=F6wis?=

Holden Caulfield said:
The integer operation result is out of range.

PT(0), PT(1), PT(2), PT(3), PT(4), PT(5), PT(6), PT(7) [...]
Any ideas what is going on?

I'd say there is a bug in the compiler. PT(0) is PTA(0), PTA(0),
which is

((poolp )((uchar *)&(usedpools[2*(0)]) - 2*sizeof(block *)))

Assuming that "2*(0)*" and "2*sizeof(block*)" are all not out of
range, abouth the only remaining operation is the subtraction, which
is of type "uchar* - size_t". This is, however, not an integer
operation, but a pointer operation.

You might want to try similar expressions in a separate program, to
narrow down the problem further.

Regards,
Martin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top