-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Description
Bugzilla Link | 11078 |
Resolution | FIXED |
Resolved on | Oct 12, 2011 18:38 |
Version | trunk |
OS | Linux |
Blocks | #4440 |
Attachments | preprocessed source |
CC | @efriedma-quic,@stoklund |
Extended Description
when compiling linux-3.0.4/arch/x86/kernel/machine_kexec_32.c i get the following error on i386:
linux-3.0.4-pax-clang/arch/x86/include/asm/cmpxchg_32.h:79:15: error: ran out of registers during register allocation
asm volatile("\n1:\t"
^
with the following inline asm:
79 »·······asm volatile("\n1:\t"
80 »·······»······· LOCK_PREFIX "cmpxchg8b %0\n\t"
81 »·······»······· "jnz 1b"
82 »·······»······· : "=m" (*ptr), "+A" (prev)
83 »·······»······· : "b" (low), "c" (high)
84 »·······»······· : "memory");
this code used to compile fine some months ago. preprocessed source attached, the command line needed to compile it:
clang -Wp,-MD,arch/x86/kernel/.machine_kexec_32.o.d -nostdinc -Iarch/x86/include/generated -Iinclude -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -Qunused-arguments -W -Wno-unused-parameter -Wno-missing-field-initializers -Wno-self-assign -Wno-unused-value -Wno-format -mno-sse -Wno-unknown-warning-option -fcatch-undefined-behavior -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Wno-empty-body -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -mtune=core2 -maccumulate-outgoing-args -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -femit-struct-debug-baseonly -pg -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(machine_kexec_32)" -D"KBUILD_MODNAME=KBUILD_STR(machine_kexec_32)" -c -o machine_kexec_32.o machine_kexec_32.i