Month: May 2008

  • Iron Man

    I’ve always liked Iron Man. Tony Stark has a simple comic book story: a smart guy, who doesn’t think very much about what he’s doing, is nearly killed. The experience changes him–but not all that much. He’s a superhero because he’s addicted to action, because he feels the need to justify his survival, and because…

  • Linker relro

    gcc, the GNU linker, and the glibc dynamic linker cooperate to implement an idea called read-only relocations, or relro. This permits the linker to designate a part of an executable or (more commonly) a shared library as being read-only after dynamic relocations have been applied. This may be used for read-only global variables which are…

  • Rent Control

    My home city, Cambridge, Massachusetts, used to have rent control. It was generally supported in the city, but it was voted out in a statewide referendum in 1994. The statewide referendum was a bit of a crock; only three cities in the state had any form of rent control (Cambridge, Boston, and Brookline). Rent control,…

  • GCC in C++

    It is time to start using C++ in gcc. gcc was originally written in C. C++ has now advanced to the point where we can reasonably take advantage of the new features that it provides. The most obvious advantage would be in data structures. gcc implements data structures which are awkward to use for different…

  • Linker combreloc

    The GNU linker has a -z combreloc option, which is enabled by default (it can be turned off via -z nocombreloc). I just implemented this in gold as well. This option directs the linker to sort the dynamic relocations. The sorting is done in order to optimize the dynamic linker. The dynamic linker in glibc…