public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] analyze/change assembly code
Date: Tue, 20 Nov 2012 14:26:15 +0100	[thread overview]
Message-ID: <201211201426.15738.marex@denx.de> (raw)
In-Reply-To: <50AB50B8.3010606@keymile.com>

Dear Gerlando Falauto,

> On 11/20/2012 09:54 AM, Marek Vasut wrote:
> > Dear Gerlando Falauto,
> > 
> >> Hi all,
> >> 
> >> we recently to had face some nasty issues, where for some reason two
> >> (functionally identical) versions of some code behave very differently.
> >> Namely, one version works and the other doesn't always work.
> >> It was clear from the beginning this was because of HW- (or compiler-)
> >> related issues.
> >> I thought it would then be useful to have a peek at what the compiler is
> >> doing behind the scenes, and possibly make some simple changes to the
> >> code. For instance, inserting some nops here and there, or reordering
> >> some instructions, may help in tracking down these different behaviors.
> >> 
> >> I know the easiest way to LOOK at the file is simply to use objdump to
> >> disassemble an .o file. In the end I somehow managed to tamper with the
> >> makefiles so to get what I wanted for a given file, by adding a fake new
> >> ".s" target with the recipe to build it, and having the .o file depend
> >> on a ".S" file (which would be a manual/changed copy of the generated
> >> ".s" file) instead of the original ".c" file.
> >> This is however not linear and nice at all. So I was wondering whether
> >> there already is a well-established way of having the make process
> >> create (and keep) assembly files which can be then manually changed.
> >> 
> >> Does my question make any sense at all? Any ideas?
> > 
> > What compiler do you use? The Linaro one didn't behave properly for
> > example.
> 
> powerpc-linux-gcc (GCC) 4.6.4 20120303 (prerelease)
> arm-linux-gnueabi-gcc (GCC) 4.6.4 20120303 (prerelease)

Where did you get this from, ELDK or elsewhere?

> What do you mean it didn't behave properly???? How's that even possible?

The Linaro toolchain had broken libgcc and u-boot pulls in components from this 
libgcc ... thus the breakage.

> A compiler which doesn't translate to assembly and from assembly to
> binary is by definition a _BROKEN_ compiler, so I strongly doubt that...
> Or maybe I got you wrong?
> 
> Best regards,
> Gerlando

Best regards,
Marek Vasut

  reply	other threads:[~2012-11-20 13:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-30 11:08 [U-Boot] analyze/change assembly code Gerlando Falauto
2012-11-10 11:25 ` Albert ARIBAUD
2012-11-19  6:23   ` Gerlando Falauto
2012-11-20  8:54 ` Marek Vasut
2012-11-20  9:43   ` Gerlando Falauto
2012-11-20 13:26     ` Marek Vasut [this message]
2012-11-20 13:40       ` Albert ARIBAUD
2012-11-20 13:48       ` Gerlando Falauto

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=201211201426.15738.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox