Launchpad has imported 3 comments from the remote bug at
http://sourceware.org/bugzilla/show_bug.cgi?id=12698.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2011-04-24T22:20:50+00:00 Arnaud Patard wrote:

As noticed by debian bug 623964, when building an arm kernel with a
snasphot made on 04/19, compiling head.S is failing with :

Error: selected processor does not support requested special purpose
register -- `mrs r2,cpsr'

It's valid for current head.

To reproduce, create a head.S containing:

                mrs     r2, cpsr
                msr     cpsr_c, r2

And then build with ./gas/as-new -march=all -c head.S -o head.o

I believe it's due to this commit :
http://sourceware.org/git/?p=binutils.git;a=commitdiff;h=335cd49156302284cea0438fd068f0a7cc11355a

I've written this workaround:

--- binutils.orig/gas/config/tc-arm.c
+++ binutils/gas/config/tc-arm.c
@@ -5356,6 +5356,11 @@ parse_psr (char **str, bfd_boolean lhs)
   bfd_boolean is_apsr = FALSE;
   bfd_boolean m_profile = ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_m);
 
+  /* march=all, will match the m_profile case too, so things like 'mrs r2,cpsr'
+   * will now fail. Workaround by saying it's not a m profile */
+  if (selected_cpu.core == arm_arch_any.core)
+         m_profile = FALSE;
+
   /* CPSR's and SPSR's can now be lowercase.  This is just a convenience
      feature for ease of use and backwards compatibility.  */
   p = *str;

It doesn't seem to create any regression but I'm not sure how good is
this patch. At least, I hope it'll help fixing the bug.

Reply at: https://bugs.launchpad.net/binutils/+bug/947111/comments/0

------------------------------------------------------------------------
On 2011-06-03T14:42:51+00:00 Cvs-commit wrote:

CVSROOT:        /cvs/src
Module name:    src
Changes by:     [email protected]    2011-06-03 14:42:48

Modified files:
        gas            : ChangeLog 
        gas/config     : tc-arm.c 

Log message:
        PR gas/12698
        * config/tc-arm.c (parse_psr): Set m_profile to false when
        assembling for any architecture.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/ChangeLog.diff?cvsroot=src&r1=1.4499&r2=1.4500
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-arm.c.diff?cvsroot=src&r1=1.490&r2=1.491

Reply at: https://bugs.launchpad.net/binutils/+bug/947111/comments/1

------------------------------------------------------------------------
On 2011-06-03T14:45:07+00:00 Nickc wrote:

Hi Arnaud,

  Thanks for reporting this problem and providing a patch.  Your
solution works, so I have checked it in, with a slightly tweaked
comment.

Cheers
  Nick

Reply at: https://bugs.launchpad.net/binutils/+bug/947111/comments/2


** Changed in: binutils
       Status: Unknown => Fix Released

** Changed in: binutils
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/947111

Title:
  -march bug when building kernel

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to