From: david.jander@protonic.nl (David Jander)
To: linux-arm-kernel@lists.infradead.org
Subject: GCC 4.6.x miscompiling arm-linux?
Date: Tue, 11 Sep 2012 11:31:39 +0200 [thread overview]
Message-ID: <20120911113139.3b7b879f@archvile> (raw)
In-Reply-To: <20120911084853.GT24458@pengutronix.de>
On Tue, 11 Sep 2012 10:48:53 +0200
Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Tue, Sep 11, 2012 at 09:27:53AM +0200, David Jander wrote:
> >
> > Hi Matt,
> >
> > > @ Function supports interworking.
> > > @ args = 0, pretend = 0, frame = 0
> > > @ frame_needed = 0, uses_anonymous_args = 0
> > > @ link register save eliminated.
> > > cmp r0, #9
> > > mov r3, #0
> > > str r3, [r1, #0]
> > > mov r0, #0
> > > strgt r3, [r1, #4]
> > > bx lr
> > > .size flexcan_chip_start, .-flexcan_chip_start
> > > .ident "GCC: (GNU) 4.3.3"
> > > .section .note.GNU-stack,"",%progbits
> > >
> > > I think this looks correct. Perhaps you could try the angstrom arm5te
> > > toolchain and see if it's a toolchain issue?
> >
> > Yes, this looks a lot better, and is exactly what I get when I compile this
> > code with CodeSourcery GCC-4.4.1
> >
> > I have tries building gcc-4.6.3 also with OSELAS/PTXdist, and it gives the
> > same (wrong) result as with gcc-4.6.2
>
> AFAIK our OSELAS/PTXdist Toolchains use Linaro patches, this would
> explain why both have the same result.
It would indeed, if I had just used OSELAS as-is, but I didn't ;-)
I made a copy of
arm-v5te-linux-gnueabi_gcc-4.6.2_glibc-2.14.1_binutils-2.21.1a_kernel-2.6.39-sanitized.ptxconfig
and replaced the version string 4.6.2 with 4.6.3. AFAIK, this way PTXdist will
download pristine gcc-4.6.3 sources and not apply any patches, since there is
no directory named patches/gcc-4.6.3, right? Can I assume that I have an
unpatched version of gcc-4.6.3 then?
Btw, Here's what I get from it:
flexcan_chip_start:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, #0
cmp r0, #9
str r3, [r1, #0]
ldrle r3, [r1, #4]
mov r0, #0
str r3, [r1, #4]
bx lr
.size flexcan_chip_start, .-flexcan_chip_start
.ident "GCC: (OSELAS.Toolchain-2011.11.1) 4.6.3"
.section .note.GNU-stack,"",%progbits
Wrong code.
See the version string? It is clearly not an existing OSELAS version.
Best regards,
--
David Jander
Protonic Holland.
next prev parent reply other threads:[~2012-09-11 9:31 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-10 15:16 GCC 4.6.x miscompiling arm-linux? David Jander
2012-09-10 17:11 ` Matthew Leach
2012-09-11 7:27 ` David Jander
2012-09-11 7:54 ` David Jander
2012-09-11 8:11 ` Mikael Pettersson
2012-09-11 8:49 ` David Jander
2012-09-11 9:41 ` Mikael Pettersson
2012-09-11 10:37 ` David Jander
2012-09-11 11:35 ` Mikael Pettersson
2012-09-11 11:52 ` David Jander
2012-09-11 12:53 ` Mikael Pettersson
2012-09-11 13:43 ` David Jander
2012-09-11 14:10 ` Mikael Pettersson
2012-09-13 8:38 ` David Jander
2012-09-11 8:48 ` Sascha Hauer
2012-09-11 9:31 ` David Jander [this message]
2012-09-11 10:29 ` Michael Olbrich
2012-09-11 10:33 ` Matthew Leach
2012-09-11 10:42 ` David Jander
2012-09-11 13:07 ` Michael Olbrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120911113139.3b7b879f@archvile \
--to=david.jander@protonic.nl \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.