
Autopsy of GCC 4.6.3 compiler bug on Raspberry Pi - quentusrex
http://quentusrex.com/freeswitch-raspberrypi-gcc-compiler-bug.html
======
mehrdada
(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)

~~~
joevandyk
Just curious, how long did that paper take to write (including research time)?

~~~
mehrdada
Over 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).

------
gumby
This 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
Thanks 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.

------
jallmann
What'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
Try 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-
liv...](http://www.switchpi.org/switchpi-proto-lcd-with-dtmf-pad-lives/)

