On 04/30/2014 10:23 AM, moze wrote:
I tried the suggestion below. And sync() does the trick. So seems not to be a problem of gcc but rather of the kernel. I consider this only a workaround, because flushing a system-wide cache in such a standard situation seems a littel over-kill. But that belongs in a another list. Or might it be that g++ takes control of the flushing-behaviour but forgets in the end that it cannot rely on the standard flush-on-process-end?
If calling sync() makes a difference, your system is severely broken. sync() should have no observable effect (beyond timing differences) while the system is running.
-- Florian Weimer / Red Hat Product Security Team