I have updated and added new steps (Step 5) that correctly install the
needed pthread libraries for Windows users of MinGW.

Rust now correctly compiles Stage0, Stage1, Stage2 out of the box
 following the updated guide here:
https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust


The new package details for the pthread libraries provided from 'mingw-get
show' , for those interested are below:


Package: mingw32-libpthread-old                       Subsystem: mingw32
Components: dll

POSIX threading library for Win32
---------------------------------

pthreads-w32 seeks  to  provide  a  freely  available  and  high-quality
implementation  of  pthreads for Windows. Pthreads is an API for writing
multithreaded applications following the POSIX standard.

The  mingw32-libpthread-old  package  provides  the  MinGW  pthreads-w32
runtime  dll  associated  with  MinGW  GCC  4.5.2  and  older. Due to an
unfortunate naming choice, upgrading to newer GCC will also install  the
newer,  renamed  pthreads-w32  DLLs, removing the old DLL. While the may
not affect the new GCC, threaded applications compiled using  the  older
compiler  will break, as they will miss this runtime library. Therefore,
the old runtime library is provided  here  using  a  new  package  name:
mingw32-libpthread-old,  so that it can be (re)installed parallel to the
new pthreads-w32 runtime libraries.


Package: mingw32-libpthreadgc                         Subsystem: mingw32
Components: dll

POSIX threading library for Win32
---------------------------------

pthreads-w32 seeks  to  provide  a  freely  available  and  high-quality
implementation  of  pthreads for Windows. Pthreads is an API for writing
multithreaded applications following the POSIX standard.

There are two mingw32 versions of the pthread-w32 runtime  library:  the
standard  one,  provided by this package, is called libpthreadgc but may
also be referred to as  'libpthread'.  The  non-standard  one  uses  C++
exception handling, and is called libpthreadgce. (Note that the standard
library may be used successfully with C++ code;  indeed,  on  most  *nix
platorms  the  system  pthreads  implementation  follows the behavior of
mingw32-libpthreadgc, and NOT the behavior of  the  'GCE'  version).  We
recommend  that  most  users rely on mingw32-libpthreadgc ('GC') and not
mingw32-libpthreadgce ('GCE').

The mingw32-libpthreadgc and mingw32-libpthreadgce packages provide  the
two  runtime libraries (most people need not install the 'GCE' one). The
associated mingw32-pthreads-w32 package provides the  documentation  for
the  pthreads-w32 library, as well as the related development files. The
mingw32-libquserex  package  provides  optional  support  for   enhanced
standards conformance of the GCE runtime.

mingw32-libpthreadgc is a  required  component  of  the  MinGW  Compiler
Suite.

-- 
-Thad
Thad on Freebase.com <http://www.freebase.com/view/en/thad_guidry>
Thad on LinkedIn <http://www.linkedin.com/in/thadguidry/>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to