package openmpi tag 510845 + patch tag 517543 + patch thanks Hi everyone,
I (hopefully) fixed the build issue on Alpha. You can find the patch attached. It implements the timing routine that is missing. I applied it to our SVN repository. Though I was able to successfully build it on a porter box, I'd be happy if you could test and/or review it if you have access to an Alpha box! Thanks in advance! I do not know if it is fully functional, but at least it builds. ;) Best regards Manuel
--- a/ompi/contrib/vt/vt/vtlib/vt_pform_linux.c +++ b/ompi/contrib/vt/vt/vtlib/vt_pform_linux.c @@ -170,6 +170,8 @@ # elif defined(__ia64__) /* ... ITC */ clock_value = __getReg(_IA64_REG_AR_ITC); +# elif defined(__alpha__) + asm volatile ("rpcc %0" : "=r" (clock_value)); # else /* ... TSC */ { --- a/opal/asm/base/ALPHA.asm +++ b/opal/asm/base/ALPHA.asm @@ -197,3 +197,28 @@ addl $31,$0,$0 ret $31,($26),1 .end opal_atomic_cmpset_rel_64 + .align 2 + .align 4 + .globl opal_sys_timer_get_cycles + .ent opal_sys_timer_get_cycles +$opal_sys_timer_get_cycles..ng: +opal_sys_timer_get_cycles: + .eflag 48 + .frame $30,0,$26,0 + .prologue 0 + .set macro + wmb + 1: ldq_l $0, 0($16) + cmpeq $0, $17, $0 + beq $0, 2f + mov $18, $0 + stq_c $0, 0($16) + beq $0, 1b + jmp 3f +2: mov $31, $0 +3: + + .set nomacro + rpcc $0 + ret + .end opal_sys_timer_get_cycles --- a/opal/asm/generated/atomic-alpha-linux.s +++ b/opal/asm/generated/atomic-alpha-linux.s @@ -197,5 +197,30 @@ addl $31,$0,$0 ret $31,($26),1 .end opal_atomic_cmpset_rel_64 + .align 2 + .align 4 + .globl opal_sys_timer_get_cycles + .ent opal_sys_timer_get_cycles +$opal_sys_timer_get_cycles..ng: +opal_sys_timer_get_cycles: + .eflag 48 + .frame $30,0,$26,0 + .prologue 0 + .set macro + wmb + 1: ldq_l $0, 0($16) + cmpeq $0, $17, $0 + beq $0, 2f + mov $18, $0 + stq_c $0, 0($16) + beq $0, 1b + jmp 3f +2: mov $31, $0 +3: + + .set nomacro + rpcc $0 + ret + .end opal_sys_timer_get_cycles .section .note.GNU-stack,"",@progbits
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil