5 ms·
Autopsy of GCC 4.6.3 compiler bug on Raspberry Pi
- gumby 12y agoThis is only a side point, but I wrote objdump (any objcopy) mainly as a debugging aid when starting to implement bfd. We included it for people porting bfd, rather than as a normal user program. Thus it is weird, though gratifying, to see it actually used for real work. In fact I use it instead of nm, size, etc but I thought I might be the only one!
- quentusrex 12y agoThanks for writing and publishing objdump. I use it often along side of gcc's assembly view. I find the output handy for taking notes, and the format is simple for scripts to parse.
- pjc50 12y agoI too find it extremely useful for reading the disassembly of things.
- Gracana 12y agoOh, cool. objdump has been an absolutely crucial part of the process of making my toy kernel.
- maccard 12y agoI used objdump on one project, and I can't thank you enough for it!
- whoopdedo 12y agoI like to use objcopy as a quick way to get a binary blob into a void*.
- snogglethorpe 12y agoInteresting, as objdump has long been an indispensable tool... [Is there any other way with the standard GNU toolset to conveniently disassemble a random object/binary? Gdb can of course, but isn't very convenient for doing whole-program disassembly...]
- maximilianburke 12y agoMany thanks for both of these tools! objdump has been an invaluable part of my debugging toolset over the years, and objcopy has been an indispensable part of the build pipeline we had for the Playstation 3.
- mehrdada 12y ago(Shameless plug:) It would be great if someone would leverage the pretty successful technique (i.e. found a couple hundred bugs in GCC and Clang) we recently devised to detect miscompilations, Compiler Validation via Equivalence Modulo Inputs[1], to test ARM compilers. In short, the idea is: profile a program running on a specific input; mutate the unexecuted code with respect to that input; compile and execute the mutated program and expect the output to be identical given the input. [1]: http://mehrdadafshari.com/emi/paper.pdf http://mehrdadafshari.com/emi/paper.pdf
- jacquesm 12y agoThat is extremely clever.
- joevandyk 12y agoJust curious, how long did that paper take to write (including research time)?
- mehrdada 12y agoOver a year, I'd say. We'd run the test infrastructure for ~11 months on a couple machines when we submitted the paper. That's not indicative of much though, as the actual timelines for writing papers can be driven by conference deadlines more than the works themselves (when talking about granularity of six months to a year).
- teoryn 12y agoHave you or will you be releasing code for Orion?
- mehrdada 12y agoWe have not, so far. It's a bit difficult to package up as it mostly consists of a bunch of (potentially environment dependent) shell scripts with a transformation program. Shouldn't be too hard to replicate, as the total LOC is pretty low. Do you have a specific use for it? If so, let me know about it, as I might be able to try lobbying for packaging and releasing the code or work something out.
- jallmann 12y agoWhat's also interesting is running FreeSWITCH on a RPi. Last time I tried to compile FS on a i686/512MB host [1], GCC OOM'd during linking. And I can't imagine cross-compiling, mostly because I just spent a day fighting an APR cross-compile [2] from x86 to ARM. But I digress.. awesome bit of detective work in the article. Compiler bugs are really frustrating/tedious to root out, especially if you don't usually muck around with asm. [1] Underpowered according to FS's own recommended specs. [2] FS also uses APR, but I'm just bitter that it's virtually impossible to cross-compile the Apache Portable Runtime out of the box...
- quentusrex 12y agoTry again. There were some major build changes in the FreeSWITCH source tree within the last several months. I've heard people are able to get a few concurrent calls on the Raspberry Pi, and at least one person turned it into a physical phone. http://www.switchpi.org/ http://www.switchpi.org/ http://www.switchpi.org/switchpi-proto-lcd-with-dtmf-pad-lives/ http://www.switchpi.org/switchpi-proto-lcd-with-dtmf-pad-liv...