All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset()
@ 2010-11-04  6:12 hotdigi
  2010-11-04  6:12 ` [Qemu-devel] [Bug 670776] Re: testandset hotdigi
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: hotdigi @ 2010-11-04  6:12 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

Build errors on TEGRA2(ubuntu)

/tmp/ccqt9Y5t.s: Assembler messages:
/tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
/tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
make[1]: *** [exec.o Error 1

qemu-lock.h

#elif defined(__arm__)
static inline int testandset (int *spinlock)
{
    register unsigned int ret;
    __asm__ __volatile__("swp %0, %1, [%2]"
                         : "=r"(ret)
                         : "0"(1), "r"(spinlock));
    return ret;
}

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
Build errors on TEGRA2(ubuntu), testandset()
https://bugs.launchpad.net/bugs/670776
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.

Status in QEMU: New

Bug description:
Build errors on TEGRA2(ubuntu)

/tmp/ccqt9Y5t.s: Assembler messages:
/tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
/tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
make[1]: *** [exec.o Error 1

qemu-lock.h

#elif defined(__arm__)
static inline int testandset (int *spinlock)
{
    register unsigned int ret;
    __asm__ __volatile__("swp %0, %1, [%2]"
                         : "=r"(ret)
                         : "0"(1), "r"(spinlock));
    return ret;
}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 670776] Re: testandset
  2010-11-04  6:12 [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset() hotdigi
@ 2010-11-04  6:12 ` hotdigi
  2010-11-04 11:03 ` [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset() Peter Maydell
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: hotdigi @ 2010-11-04  6:12 UTC (permalink / raw)
  To: qemu-devel

Build errors on TEGRA2(ubuntu)

/tmp/ccqt9Y5t.s: Assembler messages:
/tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
/tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
make[1]: *** [exec.o Error 1

** Summary changed:

- testandset
+ Build errors on TEGRA2(ubuntu), testandset()

** Description changed:

+ Build errors on TEGRA2(ubuntu)
+ 
+ /tmp/ccqt9Y5t.s: Assembler messages:
+ /tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
+ /tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
+ make[1]: *** [exec.o Error 1
+ 
+ qemu-lock.h
+ 
  #elif defined(__arm__)
  static inline int testandset (int *spinlock)
  {
      register unsigned int ret;
      __asm__ __volatile__("swp %0, %1, [%2]"
                           : "=r"(ret)
                           : "0"(1), "r"(spinlock));
- 
      return ret;
  }

-- 
Build errors on TEGRA2(ubuntu), testandset()
https://bugs.launchpad.net/bugs/670776
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.

Status in QEMU: New

Bug description:
Build errors on TEGRA2(ubuntu)

/tmp/ccqt9Y5t.s: Assembler messages:
/tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
/tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
make[1]: *** [exec.o Error 1

qemu-lock.h

#elif defined(__arm__)
static inline int testandset (int *spinlock)
{
    register unsigned int ret;
    __asm__ __volatile__("swp %0, %1, [%2]"
                         : "=r"(ret)
                         : "0"(1), "r"(spinlock));
    return ret;
}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset()
  2010-11-04  6:12 [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset() hotdigi
  2010-11-04  6:12 ` [Qemu-devel] [Bug 670776] Re: testandset hotdigi
@ 2010-11-04 11:03 ` Peter Maydell
  2011-02-03 15:08 ` Peter Maydell
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2010-11-04 11:03 UTC (permalink / raw)
  To: qemu-devel

The Ubuntu ARM gcc defaults to building in Thumb mode. The swp/swpb
instructions only exist in ARM mode.

In any case, swp is deprecated for more recent ARM architectures (ARMv6
and above), and on ARMv7 MP it will UNDEF and have to be emulated in the
kernel. So the testandset implementation should probably be replaced
with something involving ldrex/strex for cores that support it, or by
using the gcc sync primitives (needs a gcc 4.4.1 or better, I think).

This Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/qemu-
kvm/+bug/514252 has a patch which checks for the gcc primitives in
configure and uses them if they exist -- you might like to try that.

Or if we believe the comment at the top of qemu-lock.h that "most of
this code should be redundant" we could do the cleanup to get rid of it
completely :-)

-- 
Build errors on TEGRA2(ubuntu), testandset()
https://bugs.launchpad.net/bugs/670776
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.

Status in QEMU: New

Bug description:
Build errors on TEGRA2(ubuntu)

/tmp/ccqt9Y5t.s: Assembler messages:
/tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
/tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
make[1]: *** [exec.o Error 1

qemu-lock.h

#elif defined(__arm__)
static inline int testandset (int *spinlock)
{
    register unsigned int ret;
    __asm__ __volatile__("swp %0, %1, [%2]"
                         : "=r"(ret)
                         : "0"(1), "r"(spinlock));
    return ret;
}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset()
  2010-11-04  6:12 [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset() hotdigi
  2010-11-04  6:12 ` [Qemu-devel] [Bug 670776] Re: testandset hotdigi
  2010-11-04 11:03 ` [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset() Peter Maydell
@ 2011-02-03 15:08 ` Peter Maydell
  2011-03-07  9:38 ` Peter Maydell
  2011-08-12 17:52 ` Peter Maydell
  4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2011-02-03 15:08 UTC (permalink / raw)
  To: qemu-devel

This patch which I proposed would fix this bug:
http://patchwork.ozlabs.org/patch/81205/

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/670776

Title:
  Build errors on TEGRA2(ubuntu), testandset()

Status in QEMU:
  New

Bug description:
  Build errors on TEGRA2(ubuntu)

  /tmp/ccqt9Y5t.s: Assembler messages:
  /tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
  /tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
  make[1]: *** [exec.o Error 1

  qemu-lock.h

  #elif defined(__arm__)
  static inline int testandset (int *spinlock)
  {
      register unsigned int ret;
      __asm__ __volatile__("swp %0, %1, [%2]"
                           : "=r"(ret)
                           : "0"(1), "r"(spinlock));
      return ret;
  }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset()
  2010-11-04  6:12 [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset() hotdigi
                   ` (2 preceding siblings ...)
  2011-02-03 15:08 ` Peter Maydell
@ 2011-03-07  9:38 ` Peter Maydell
  2011-08-12 17:52 ` Peter Maydell
  4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2011-03-07  9:38 UTC (permalink / raw)
  To: qemu-devel

This build error was fixed by this commit:
http://git.qemu.org/qemu.git/commit/?id=02615337ef295443daa03233e492194e289a807e


** Changed in: qemu
       Status: New => Fix Committed

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/670776

Title:
  Build errors on TEGRA2(ubuntu), testandset()

Status in QEMU:
  Fix Committed

Bug description:
  Build errors on TEGRA2(ubuntu)

  /tmp/ccqt9Y5t.s: Assembler messages:
  /tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
  /tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
  make[1]: *** [exec.o Error 1

  qemu-lock.h

  #elif defined(__arm__)
  static inline int testandset (int *spinlock)
  {
      register unsigned int ret;
      __asm__ __volatile__("swp %0, %1, [%2]"
                           : "=r"(ret)
                           : "0"(1), "r"(spinlock));
      return ret;
  }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset()
  2010-11-04  6:12 [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset() hotdigi
                   ` (3 preceding siblings ...)
  2011-03-07  9:38 ` Peter Maydell
@ 2011-08-12 17:52 ` Peter Maydell
  4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2011-08-12 17:52 UTC (permalink / raw)
  To: qemu-devel

QEMU 0.15.0 has been released with a fix for this bug.


** Changed in: qemu
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/670776

Title:
  Build errors on TEGRA2(ubuntu), testandset()

Status in QEMU:
  Fix Released

Bug description:
  Build errors on TEGRA2(ubuntu)

  /tmp/ccqt9Y5t.s: Assembler messages:
  /tmp/ccqt9Y5t.s:1899: Error: selected processor does not support Thumb mode 'swp r4, r4, [r2]'
  /tmp/ccqt9Y5t.s:1974: Error: selected processor does not support Thumb mode 'swp r5, r5, [ip]'
  make[1]: *** [exec.o Error 1

  qemu-lock.h

  #elif defined(__arm__)
  static inline int testandset (int *spinlock)
  {
      register unsigned int ret;
      __asm__ __volatile__("swp %0, %1, [%2]"
                           : "=r"(ret)
                           : "0"(1), "r"(spinlock));
      return ret;
  }

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/670776/+subscriptions

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-08-12 18:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-04  6:12 [Qemu-devel] [Bug 670776] [NEW] Build errors on TEGRA2(ubuntu), testandset() hotdigi
2010-11-04  6:12 ` [Qemu-devel] [Bug 670776] Re: testandset hotdigi
2010-11-04 11:03 ` [Qemu-devel] [Bug 670776] Re: Build errors on TEGRA2(ubuntu), testandset() Peter Maydell
2011-02-03 15:08 ` Peter Maydell
2011-03-07  9:38 ` Peter Maydell
2011-08-12 17:52 ` Peter Maydell

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.