* Re: [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() [not found] <200611302118.kAULIrxS011661@fire-2.osdl.org> @ 2006-11-30 21:37 ` Andrew Morton 2006-11-30 22:22 ` Andi Kleen 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2006-11-30 21:37 UTC (permalink / raw) To: Andi Kleen; +Cc: bugme-daemon, linux-kernel, mjw99 On Thu, 30 Nov 2006 13:18:53 -0800 bugme-daemon@bugzilla.kernel.org wrote: > > http://bugzilla.kernel.org/show_bug.cgi?id=7602 > > Summary: Failure on compilation: include/asm/bitops.h:122: error: > inconsistent operand constraints in an `asm' in > nfs_access_add_cache() > Kernel Version: 2.6.19 > Status: NEW > Severity: high > Owner: trond.myklebust@fys.uio.no > Submitter: mjw99@ic.ac.uk > > > Most recent kernel where this bug did *NOT* occur: > 2.6.18.3 > > Distribution: > RHEL4-U2 AS > > Hardware Environment: > 8 CPU Dual Core Opteron box with 32Gb of ram > http://www.iwill.net/product_2.asp?p_id=90&sp=Y > > Software Environment: > RHEL4-U2 > gcc version 3.4.4 20050721 (Red Hat 3.4.4-2) > > Problem Description: > > Compilation fails with the error message: > .... > CC fs/nfs/client.o > CC fs/nfs/dir.o > fs/nfs/dir.c: In function `nfs_access_add_cache': > include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' Seems that this: static __inline__ int __test_and_set_bit(int nr, volatile void * addr) { int oldbit; __asm__( "btsl %2,%1\n\tsbbl %0,%0" :"=r" (oldbit),"+m" (ADDR) :"dIr" (nr)); return oldbit; } explodes with gcc-3.4.4. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() 2006-11-30 21:37 ` [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() Andrew Morton @ 2006-11-30 22:22 ` Andi Kleen 2006-11-30 22:32 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: Andi Kleen @ 2006-11-30 22:22 UTC (permalink / raw) To: Andrew Morton; +Cc: bugme-daemon, linux-kernel, mjw99 > > static __inline__ int __test_and_set_bit(int nr, volatile void * addr) > { > int oldbit; > > __asm__( > "btsl %2,%1\n\tsbbl %0,%0" > :"=r" (oldbit),"+m" (ADDR) > :"dIr" (nr)); > return oldbit; > } > > explodes with gcc-3.4.4. Known issue. The new form is correct and needed, but the old gcc doesn't accept it. I haven't gotten a form that is both and correct and works on the old compiler out of the gcc hackers I asked. Probably need to #ifdef it. -Andi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() 2006-11-30 22:22 ` Andi Kleen @ 2006-11-30 22:32 ` Andrew Morton 2006-11-30 22:49 ` Andi Kleen 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2006-11-30 22:32 UTC (permalink / raw) To: Andi Kleen; +Cc: bugme-daemon, linux-kernel, mjw99 On Thu, 30 Nov 2006 23:22:00 +0100 Andi Kleen <ak@suse.de> wrote: > > > > static __inline__ int __test_and_set_bit(int nr, volatile void * addr) > > { > > int oldbit; > > > > __asm__( > > "btsl %2,%1\n\tsbbl %0,%0" > > :"=r" (oldbit),"+m" (ADDR) > > :"dIr" (nr)); > > return oldbit; > > } > > > > explodes with gcc-3.4.4. > > Known issue. The new form is correct and needed, but the old gcc doesn't accept > it. I haven't gotten a form that is both and correct and works on the old compiler > out of the gcc hackers I asked. Oh, thanks. What does "d" do, btw? My gcc info page only covers "x86" and says only "`d' register" (And, more importantly, where is the best description of gcc asm constraints?) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() 2006-11-30 22:32 ` Andrew Morton @ 2006-11-30 22:49 ` Andi Kleen 2006-11-30 23:08 ` Randy Dunlap 0 siblings, 1 reply; 5+ messages in thread From: Andi Kleen @ 2006-11-30 22:49 UTC (permalink / raw) To: Andrew Morton; +Cc: bugme-daemon, linux-kernel, mjw99 On Thursday 30 November 2006 23:32, Andrew Morton wrote: > On Thu, 30 Nov 2006 23:22:00 +0100 > Andi Kleen <ak@suse.de> wrote: > > > > > > > static __inline__ int __test_and_set_bit(int nr, volatile void * addr) > > > { > > > int oldbit; > > > > > > __asm__( > > > "btsl %2,%1\n\tsbbl %0,%0" > > > :"=r" (oldbit),"+m" (ADDR) > > > :"dIr" (nr)); > > > return oldbit; > > > } > > > > > > explodes with gcc-3.4.4. > > > > Known issue. The new form is correct and needed, but the old gcc doesn't accept > > it. I haven't gotten a form that is both and correct and works on the old compiler > > out of the gcc hackers I asked. > > Oh, thanks. > > What does "d" do, btw? My gcc info page only covers "x86" and says only "`d' register" Hmm, normally edx (aka Extended D register eXtended :) or rdx But you're right it doesn't make sense here because 'd' is already included in 'r'. Probably should be dropped. > > (And, more importantly, where is the best description of gcc asm constraints?) Either info pages or gcc source. There was also a web page somewhere with a tutorial, but i don't think it was a full reference. -Andi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() 2006-11-30 22:49 ` Andi Kleen @ 2006-11-30 23:08 ` Randy Dunlap 0 siblings, 0 replies; 5+ messages in thread From: Randy Dunlap @ 2006-11-30 23:08 UTC (permalink / raw) To: Andi Kleen; +Cc: Andrew Morton, bugme-daemon, linux-kernel, mjw99 On Thu, 30 Nov 2006 23:49:12 +0100 Andi Kleen wrote: > On Thursday 30 November 2006 23:32, Andrew Morton wrote: > > On Thu, 30 Nov 2006 23:22:00 +0100 > > Andi Kleen <ak@suse.de> wrote: > > > > > > > > > > static __inline__ int __test_and_set_bit(int nr, volatile void * addr) > > > > { > > > > int oldbit; > > > > > > > > __asm__( > > > > "btsl %2,%1\n\tsbbl %0,%0" > > > > :"=r" (oldbit),"+m" (ADDR) > > > > :"dIr" (nr)); > > > > return oldbit; > > > > } > > > > > > > > explodes with gcc-3.4.4. > > > > > > Known issue. The new form is correct and needed, but the old gcc doesn't accept > > > it. I haven't gotten a form that is both and correct and works on the old compiler > > > out of the gcc hackers I asked. > > > > Oh, thanks. > > > > What does "d" do, btw? My gcc info page only covers "x86" and says only "`d' register" > > Hmm, normally edx (aka Extended D register eXtended :) or rdx > > But you're right it doesn't make sense here because 'd' is already included in 'r'. > Probably should be dropped. > > > > > (And, more importantly, where is the best description of gcc asm constraints?) > > Either info pages or gcc source. There was also a web page somewhere with a tutorial, > but i don't think it was a full reference. e.g. (may be ix86 instead of x86_64): http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Constraints.html#Constraints http://www-128.ibm.com/developerworks/linux/library/l-ia.html http://www.uwsg.indiana.edu/hypermail/linux/kernel/9804.2/0953.html --- ~Randy ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-11-30 23:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200611302118.kAULIrxS011661@fire-2.osdl.org>
2006-11-30 21:37 ` [Bugme-new] [Bug 7602] New: Failure on compilation: include/asm/bitops.h:122: error: inconsistent operand constraints in an `asm' in nfs_access_add_cache() Andrew Morton
2006-11-30 22:22 ` Andi Kleen
2006-11-30 22:32 ` Andrew Morton
2006-11-30 22:49 ` Andi Kleen
2006-11-30 23:08 ` Randy Dunlap
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.