[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86: don't use .subsection when compiling with clang
# HG changeset patch # User Tim Deegan <tim@xxxxxxx> # Date 1334146233 -3600 # Node ID 1d8fb1330f98d3eae982c2540c8a2acab7f00009 # Parent d5f9005dfc4ac2edb444e342a427dbe0f2cdf2f5 x86: don't use .subsection when compiling with clang LLVM's assembler doesn't support the .subsection directive, so put the out-of-line failure path in .fixup instead. Signed-off-by: Tim Deegan <tim@xxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Keir Fraser <keir@xxxxxxx> Committed-by: Tim Deegan <tim@xxxxxxx> --- diff -r d5f9005dfc4a -r 1d8fb1330f98 xen/include/asm-x86/spinlock.h --- a/xen/include/asm-x86/spinlock.h Wed Apr 11 13:10:33 2012 +0100 +++ b/xen/include/asm-x86/spinlock.h Wed Apr 11 13:10:33 2012 +0100 @@ -45,11 +45,19 @@ static always_inline int _raw_read_trylo asm volatile ( " lock; decl %0 \n" " jns 2f \n" +#ifdef __clang__ /* clang's builtin assember can't do .subsection */ + "1: .pushsection .fixup,\"ax\"\n" +#else "1: .subsection 1 \n" +#endif "2: lock; incl %0 \n" " decl %1 \n" " jmp 1b \n" +#ifdef __clang__ + " .popsection \n" +#else " .subsection 0 \n" +#endif : "=m" (rw->lock), "=r" (acquired) : "1" (1) : "memory" ); return acquired; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |