title: mingw-4.8.1 atomic issue
body: <p>I've the following compile error when I try to use the method is_lock_free() of atomic.</p>
  
  <pre><code>struct Simple1 { int i; };
  struct Simple2 { int a; int b; };
  struct Simple3 { int a; int b; int c; };
  
  int main()
  {
      atomic&lt; Counter &gt; counter;
      atomic&lt; Param &gt; param;
      atomic&lt; Simple1 &gt; s1;
      atomic&lt; Simple2 &gt; s2;
      atomic&lt; Simple3 &gt; s3;
  
      cout
          &lt;&lt; "Is s1 lock free? " &lt;&lt; boolalpha &lt;&lt; s1.is_lock_free() &lt;&lt; '\n'
          &lt;&lt; "Is s2 lock free? " &lt;&lt; boolalpha &lt;&lt; s2.is_lock_free() &lt;&lt; '\n'
          &lt;&lt; "Is s3 lock free? " &lt;&lt; boolalpha &lt;&lt; s3.is_lock_free() &lt;&lt; '\n';
     }
  </code></pre>
  
  <p><code>s1.is_lock_free() and s2.is_lock_free()</code> are okay and <code>atomic&lt; builtin &gt;::is_lock_free()</code>, where <code>builtin</code> is a fondamental type, works well. </p>
  
  <p>But for s3 the call of <code>is_lock_free</code> gives a linkage error: <code>undefined reference to __atomic_is_lock_free</code></p>
  
  <p>Does I need to link some external library? What can I do?</p>
  
  <p><b> Edit 1 </b></p>
  
  <p>The same issue occur on gcc4.8.1 on Ubuntu 13.04</p>
  
  <p>The comand line option is the following:</p>
  
  <pre><code>g++ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++11 -o "atomic_test.o" "atomic_test.cpp" 
  g++ -std=c++11 -o hello.exe atomic_test.o
  </code></pre>
  
  <p><b> Edit 2 </b></p>
  
  <p>I added -latomic and -lpthread on gcc but I've the same error:</p>
  
  <pre><code>04:09:37: Running steps for project atomic...
  04:09:37: Configuration unchanged, skipping qmake step.
  04:09:37: Starting: "/usr/bin/make" 
  /home/dmdtek/Qt/5.1.0/gcc_64/bin/qmake -spec linux-g++ CONFIG+=debug      CONFIG+=declarative_debug CONFIG+=qml_debug -o Makefile ../atomic/atomic.pro
  g++ -latomic -lpthread -Wl,-rpath,/home/dmdtek/Qt/5.1.0/gcc_64 -o atomic main.o    
  main.o: In function `std::atomic&lt;Simple3&gt;::is_lock_free() const':
  /usr/include/c++/4.8/atomic:191: undefined reference to `__atomic_is_lock_free'
  main.o: In function `std::atomic&lt;long double&gt;::is_lock_free() const':
  /usr/include/c++/4.8/atomic:191: undefined reference to `__atomic_is_lock_free'
  collect2: error: ld returned 1 exit status
  make: *** [atomic] Error 1
  04:09:37: The process "/usr/bin/make" exited with code 2.
  Error while building/deploying project atomic (kit: Desktop Qt 5.1.0 GCC 64bit)
  When executing step 'Make'
  04:09:37: Elapsed time: 00:00.
  </code></pre>
  
  <p>libatomic is present on my system: </p>
  
  <pre><code>$ ldconfig -v | grep atomic
  /sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
  /sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
  libatomic.so.1 -&gt; libatomic.so.1.0.0
  /sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
  </code></pre>