Category: Programming
-
Gold Released
I have finally released gold, the new ELF linker I’ve been working on, to the free software world. It is now part of the GNU binutils. I sent an announcement to the binutils mailing list.
-
Compiler Warnings
There is an ongoing issue within gcc as to where warnings should be issued. The question is whether warnings should be issued only by the frontend, or whether it is also OK for the optimizers to issue them. The advantage of issuing warnings in the frontend are that warnings are independent of optimization level. Also,…
-
How Does the Gcc Organization Work?
How does the gcc compiler get written? Who works on it and why? It seems to puzzle some people. There are vast numbers of free software projects these days, far more than I try to keep track of. Among these, gcc is unusual in several respects. gcc is more than 20 years old as an…
-
volatile
The volatile qualifier in C/C++ is widely misunderstood. Because it is described so vaguely in language standards, many people interpret it as a do-what-I-mean qualifier. What the standard says is that accesses to volatile objects must be evaluated strictly according to the abstract machine defined by the language standard; this means that if the C/C++…
-
Multi-threading Memory
As I’ve written before, multi-threaded code is hard to write. It becomes even harder to write when you find that lock contention is an efficiency issue. On a modern multi-core system locks require some sort of memory cache coordination between the various cores. If your program is written using fine-grained locks which may be held…