[ofa-general] RE: [Bug 408] dapltest compilation fails on x86 [PATCH]
James Lentini
jlentini at netapp.com
Fri Mar 16 07:47:58 PDT 2007
On Wed, 7 Mar 2007, Arlin Davis wrote:
>
> James, please review this fix for dapltest build issue.
Hi Arlin,
Just returning from vacation and catching up on email.
> Signed-off by: Arlin Davis ardavis at ichips.intel.com
>
> diff --git a/test/dapltest/mdep/linux/dapl_mdep_user.h b/test/dapltest/mdep/linux/dapl_mdep_user.h
> index c05dd30..2903e78 100644
> --- a/test/dapltest/mdep/linux/dapl_mdep_user.h
> +++ b/test/dapltest/mdep/linux/dapl_mdep_user.h
> @@ -117,7 +117,7 @@ typedef unsigned long long int DT_Mdep_TimeStamp;
> static _INLINE_ DT_Mdep_TimeStamp
> DT_Mdep_GetTimeStamp ( void )
> {
> -#if defined(__GNUC__) && defined(__PENTIUM__)
> +#if defined(__GNUC__) && defined(__i386__)
> DT_Mdep_TimeStamp x;
> __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
This is the opcode for a RDTSC instruction. My copy of the "Intel 64
and IA-32 Architectures Software Developer's Manual" says that the
RDTSC instruction was introduced by the Pentium. Although I don't
think anyone is going to use RDMA on a 486, making the change
above would create code that attempted to use an RDTSC instruction on
pre-Pentium processors.
What is the processor that is being excluded by the Pentium test?
Would it be possible to recode the compile guard to check for either
Pentium or X?
As a side note, the code could use the rdtsc mnemonic, as we do below,
instead of the raw opcode.
> return x;
> @@ -143,7 +143,7 @@ DT_Mdep_GetTimeStamp ( void )
> asm volatile("rdtsc" : "=a" (__a), "=d" (__d));
> return ((unsigned long)__a) | (((unsigned long)__d)<<32);
> #else
> -#error "Non-Pentium and Non-PPC Linux - unimplemented"
> +#error "Linux CPU architecture - unimplemented"
> #endif
> #endif
> #endif
More information about the general
mailing list