I'm sorry. The previous code block reported, is referred to 32 bit not 64. So, the right code block is:
static inline int opal_atomic_cmpset_32( volatile int32_t *addr, int32_t oldval, int32_t newval) { unsigned char ret; __asm__ __volatile ( SMPLOCK "cmpxchgl %1,%2 \n\t" "sete %0 \n\t" : "=qm" (ret) *: "q"(newval), "m"(*(volatile long*)addr), "a"(oldval)* //<<<<< HERE : "memory"); return (int)ret; } 2008/6/13 Gabriele Fatigati <g.fatig...@cineca.it>: > Maybe, i solved this bug, deleting long cast. > Now, in compile time, it works well, but at runtime, there are other > problems, like this: > > ../../../opal/class/opal_object.h:428:Bounds error: pointer arithmetic > would overrun the end of the object. > ../../../opal/class/opal_object.h:428: Pointer value: 0x8, Size: 8 > ../../../opal/class/opal_object.h:428: Object `orte_system_info': > ../../../opal/class/opal_object.h:428: Address in memory: 0x0 .. 0xf > ../../../opal/class/opal_object.h:428: Size: 64 bytes > ../../../opal/class/opal_object.h:428: Element size: 1 bytes > ../../../opal/class/opal_object.h:428: Number of elements: 64 > ../../../opal/class/opal_object.h:428: Created at: > util/sys_info.c, line 43 > ../../../opal/class/opal_object.h:428: Storage class: static > > There are very much error of this type, differenting by line code error in > /opal/class/opal_object.h: . All errors are generated by same line code: > > util/sys_info.c, line 43 > > Final status of MPI Job is ever "Undefined". > > Another bug? > > > 2008/6/12 Gabriele Fatigati <g.fatig...@cineca.it>: > >> I found that the error starts in this line code: >> >> static opal_atomic_lock_t class_lock = { { OPAL_ATOMIC_UNLOCKED } }; >> >> in class/opal_object.c, line 52 >> >> and generates the bound error in this code block: >> >> static inline int opal_atomic_cmpset_64( volatile int64_t *addr, >> int64_t oldval, int64_t newval) >> { >> unsigned char ret; >> __asm__ __volatile ( >> SMPLOCK "cmpxchgq %1,%2 \n\t" >> "sete %0 \n\t" >> : "=qm" (ret) >> * : "q"(newval), "m"(*((volatile long*)addr)), >> "a"(oldval)* //<<<<< HERE >> : "memory"); >> >> return (int)ret; >> } >> >> in /opal/include/opal/sys/amd64/atomic.h, at line 89 >> >> The previous enviroment variable is GCC_BOUNDS_OPTS >> >> Thanks in advance. >> >> >> 2008/6/12 Gabriele Fatigati <g.fatig...@cineca.it>: >> >>> Hi, >>> >>> i have installed OpenMPI 1.2.6, using gcc with bounds checking. But, when >>> i compile an MPI program, i have many time the same error: >>> >>> ../opal/include/opal/sys/amd64/atomic.h:89: Address in memory: 0x8 >>> .. 0xb >>> ../opal/include/opal/sys/amd64/atomic.h:89: Size: 4 >>> bytes >>> ../opal/include/opal/sys/amd64/atomic.h:89: Element size: 1 >>> bytes >>> ../opal/include/opal/sys/amd64/atomic.h:89: Number of elements: 4 >>> ../opal/include/opal/sys/amd64/atomic.h:89: Created at: >>> class/opal_object.c, line 52 >>> ../opal/include/opal/sys/amd64/atomic.h:89: Storage class: >>> static >>> ../opal/include/opal/sys/amd64/atomic.h:89:Bounds error: attempt to >>> reference memory overrunning the end of an object. >>> ../opal/include/opal/sys/amd64/atomic.h:89: Pointer value: 0x8, Size: 8 >>> >>> Setting the enviroment variable to "-never-fatal", the compile phase, >>> ends successfull. But, at runtime, i have ever the error above, very much >>> time, and the program fails, with "undefined status". >>> >>> Is this an OpenMPI bug? >>> >>> >>> >>> >>> >>> -- >>> Gabriele Fatigati >>> >>> CINECA Systems & Tecnologies Department >>> >>> Supercomputing Group >>> >>> Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy >>> >>> www.cineca.it Tel: +39 051 6171722 >>> >>> g.fatig...@cineca.it >>> >> >> >> >> -- >> Gabriele Fatigati >> >> CINECA Systems & Tecnologies Department >> >> Supercomputing Group >> >> Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy >> >> www.cineca.it Tel: +39 051 6171722 >> >> g.fatig...@cineca.it >> > > > > -- > Gabriele Fatigati > > CINECA Systems & Tecnologies Department > > Supercomputing Group > > Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy > > www.cineca.it Tel: +39 051 6171722 > > g.fatig...@cineca.it > -- Gabriele Fatigati CINECA Systems & Tecnologies Department Supercomputing Group Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy www.cineca.it Tel: +39 051 6171722 g.fatig...@cineca.it