Category: Programming

  • Crafty Programmers

    I think of a programming as a craft, like making furniture. Despite the names that people use, it’s not science, it’s not engineering, and it’s not art. Since programming is a craft, it doesn’t advance the way that science and engineering do. Instead, we see waves of fashion, and we see adustments due to changes…

  • Linkers part 20

    This will be my last blog posting on linkers for the time being. Tomorrow my blog will return to its usual trivialities. People who are specifically interested in linker information are warned to stop reading with this post. I’ll close the series with a short update on gold, the new linker I’ve been working on.…

  • Linkers part 19

    I’ve pretty much run out of linker topics. Unless I think of something new, I’ll make tomorrow’s post be the last one, for a total of 20. __start and __stop Symbols A quick note about another GNU linker extension. If the linker sees a section in the output file which can be part of a…

  • Linkers part 18

    Incremental Linking Often a programmer will make change a single source file and recompile and relink the application. A standard linker will need to read all the input objects and libraries in order to regenerate the executable with the change. For a large application, this is a lot of work. If only one input object…

  • Linkers part 17

    Warning Symbols The GNU linker supports a weird extension to ELF used to issue warnings when symbols are referenced at link time. This was originally implemented for a.out using a special symbol type. For ELF, I implemented it using a special section name. If you create a section named .gnu.warning.SYMBOL, then if and when the…