inteltool: Fixed building of position independent executables
authorMathias Krause <mathias.krause@secunet.com>
Wed, 9 Mar 2011 10:30:55 +0000 (11:30 +0100)
committerPatrick Georgi <patrick@georgi-clan.de>
Wed, 14 Sep 2011 05:43:04 +0000 (07:43 +0200)
When building a position independent executable (PIE) EBX is used
internally by the compiler to generate position independent address
references so it cannot be used in the clobber list. Use the already
existing code for the Darwin plattform for that case, too -- it'll
preserve the EBX value.

Change-Id: Ief6d4872b8cd990856a0e8227a88bb228782aced
Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Reviewed-on: http://review.coreboot.org/209
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marcj303@gmail.com>
util/inteltool/cpu.c

index e79380aef43b5e1b2fb8aa032ee858d28affe81b..9037d5df66fe1af08fea89315a13597adaae0387 100644 (file)
@@ -32,7 +32,7 @@ unsigned int cpuid(unsigned int op)
 {
        uint32_t ret;
 
-#if defined(__DARWIN__) && !defined(__LP64__)
+#if defined(__PIC__) || defined(__DARWIN__) && !defined(__LP64__)
        asm volatile (
                "pushl %%ebx\n"
                "cpuid\n"