linux/tools/power/x86/turbostat
Josh Triplett 2b92865e64 turbostat: Use GCC's CPUID functions to support PIC
turbostat uses inline assembly to call cpuid.  On 32-bit x86, on systems
that have certain security features enabled by default that make -fPIC
the default, this causes a build error:

turbostat.c: In function ‘check_cpuid’:
turbostat.c:1906:2: error: PIC register clobbered by ‘ebx’ in ‘asm’
  asm("cpuid" : "=a" (fms), "=c" (ecx), "=d" (edx) : "a" (1) : "ebx");
  ^

GCC provides a header cpuid.h, containing a __get_cpuid function that
works with both PIC and non-PIC.  (On PIC, it saves and restores ebx
around the cpuid instruction.)  Use that instead.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Cc: stable@vger.kernel.org
Signed-off-by: Len Brown <len.brown@intel.com>
2014-01-18 22:34:08 -05:00
..
Makefile turbostat: Don't put unprocessed uapi headers in the include path 2014-01-18 22:34:07 -05:00
turbostat.8 tools/power turbostat: display SMI count by default 2013-02-13 18:22:12 -05:00
turbostat.c turbostat: Use GCC's CPUID functions to support PIC 2014-01-18 22:34:08 -05:00