http://bugs.gentoo.org/419563 http://bugs.gentoo.org/419971 See -gcc47-patch and -magic.patch in Fedora git: http://pkgs.fedoraproject.org/gitweb/?p=libwvstreams.git;a=tree --- include/wvtask.h +++ include/wvtask.h @@ -45,7 +45,8 @@ typedef void TaskFunc(void *userdata); static int taskcount, numtasks, numrunning; - int magic_number, *stack_magic; + int volatile magic_number; + int *stack_magic; WvString name; int tid; @@ -84,7 +85,7 @@ static WvTaskMan *singleton; static int links; - static int magic_number; + static int volatile magic_number; static WvTaskList all_tasks, free_tasks; static void get_stack(WvTask &task, size_t size); --- include/wvuid.h +++ include/wvuid.h @@ -7,6 +7,7 @@ #ifndef __WVUID_H #define __WVUID_H +#include #include "wvstring.h" #if WIN32 --- utils/wvtask.cc +++ utils/wvtask.cc @@ -58,7 +58,8 @@ int WvTask::taskcount, WvTask::numtasks, WvTask::numrunning; WvTaskMan *WvTaskMan::singleton; -int WvTaskMan::links, WvTaskMan::magic_number; +int WvTaskMan::links; +int volatile WvTaskMan::magic_number; WvTaskList WvTaskMan::all_tasks, WvTaskMan::free_tasks; ucontext_t WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return, WvTaskMan::toplevel;