Re: [PATCH] aperf: fix compilation on x86-32 with -fPIC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



applied, thanks.

Best,
	Dominik

On Tue, Jul 26, 2011 at 07:28:31PM -0400, Matt Turner wrote:
> ebx is used to store the GOT pointer when compiled with -fPIC, so it's
> not usable by inline assembly.
> 
> https://bugs.gentoo.org/375967
> 
> Signed-off-by: Matt Turner <mattst88@xxxxxxxxx>
> ---
>  utils/cpuid.h |   14 +++++++++++++-
>  1 files changed, 13 insertions(+), 1 deletions(-)
> 
> diff --git a/utils/cpuid.h b/utils/cpuid.h
> index 2bac69a..53da789 100644
> --- a/utils/cpuid.h
> +++ b/utils/cpuid.h
> @@ -5,9 +5,21 @@ static inline void __cpuid(unsigned int *eax, unsigned int *ebx,
>  				unsigned int *ecx, unsigned int *edx)
>  {
>  	/* ecx is often an input as well as an output. */
> -	asm volatile("cpuid"
> +	asm volatile(
> +#if defined(__i386__) && defined(__PIC__)
> +	    "push %%ebx\n"
> +	    "cpuid\n"
> +	    "movl %%ebx, %1\n"
> +	    "pop %%ebx\n"
> +#else
> +	    "cpuid\n"
> +#endif
>  	    : "=a" (*eax),
> +#if defined(__i386__) && defined(__PIC__)
> +	      "=r" (*ebx),
> +#else
>  	      "=b" (*ebx),
> +#endif
>  	      "=c" (*ecx),
>  	      "=d" (*edx)
>  	    : "0" (*eax), "2" (*ecx));
> -- 
> 1.7.3.4
> 
--
To unsubscribe from this list: send the line "unsubscribe cpufreq" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Devel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Forum]     [Linux SCSI]

  Powered by Linux