Klutzy helped me through a bunch of issues tonight and I am now building stage 2 from HEAD using GCC 4.8. I put the procedure I used up on the GitHub wiki for others to try and also linked it from the main getting started page: " https://github.com/mozilla/rust/wiki/Note-Building-Rust-Before-0.8-on-Windows-Systems . Huge thanks for Klutzy helping me out. Aaron@GIR /c/projects/rust/i686-pc-mingw32/stage2/bin$ rustc.exe hello.rs Aaron@GIR /c/projects/rust/i686-pc-mingw32/stage2/bin$ helloHello, world. > Date: Sun, 15 Sep 2013 14:33:41 +0900 > From: klutzytheklu...@gmail.com > To: vadi...@gmail.com > CC: rust-dev@mozilla.org > Subject: Re: [rust-dev] Windows Users can build Rust properly again ! > > The error is due to abi change of win32 gcc. reported here: > https://github.com/mozilla/rust/issues/9205 > > On Sat, Sep 14, 2013 at 4:52 PM, klutzy <klutzytheklu...@gmail.com> wrote: > > I've finished `make` on gcc 4.8.1, but `make check-fast` failed: > > > > task <unnamed> failed at 'assertion failed: `(left == right) && > > (right == left)` > > (left: `t_317::TwoU64s{one: 98784247808u64, two: 257698037760u64}`, > > right: `t_317::TwoU64s{one: 22u64, two: 94489280535u64}`)', > > > > C:\home\stone\rust-vanilla\src\test\run-pass\extern-pass-TwoU64s-ref.rs:27 > > make: *** > > [i686-pc-mingw32/test/run_pass_stage2_driver-i686-pc-mingw32.out] > > Error 101 > > > > I previously met this when I tested on mingw-w64/32bit. > > (https://github.com/mozilla/rust/issues/8996) > > Seems like the failure is related to recent gcc. > > > > > > On Sat, Sep 14, 2013 at 3:35 PM, klutzy <klutzytheklu...@gmail.com> wrote: > >> some more explanation: > >> > >> #include <fenv.h> causes /lib/gcc/mingw32/<ver>/include/c++/fenv.h to > >> be included. > >> The header contains: > >> > >> #include <bits/c++config.h> > >> #if _GLIBCXX_HAVE_FENV_H > >> # include_next <fenv.h> > >> #endif > >> > >> where bits/c++config.h is at /lib/gcc/mingw32/<ver>/include/c++/mingw32. > >> However, for some reason (I don't know), they removed `#define > >> _GLIBCXX_HAVE_FENV_H 1` somewhere between 4.6.2 and 4.8.1. > >> so `#include_next <fenv.h>` does not occur, which is > >> `/include/fenv.h`. It contains some definitions e.g. `FE_ALL_EXCEPT`. > >> > >> On Sat, Sep 14, 2013 at 3:25 PM, klutzy <klutzytheklu...@gmail.com> wrote: > >>> I've solved it some minutes ago :) > >>> > >>> <klutzy> at > >>> /path/to/mingw/lib/gcc/mingw32/<ver>/include/c++/mingw32/bits/c++config.h: > >>> <klutzy> there is #define _GLIBCXX_HAVE_FENV_H 1 in 4.6.1's header > >>> <klutzy> but there isn't [such #define] in 4.8.1 header. > >>> <klutzy> this causes /include/fenv.h not included when llvm does > >>> #include <fenv.h> > >>> > >>> The c++config.h has such lines: > >>> /* Define to 1 if you have the <fenv.h> header file. */ > >>> /* #undef _GLIBCXX_HAVE_FENV_H */ > >>> > >>> I added `#define _GLIBCXX_HAVE_FENV_H 1` at the file directly, and it > >>> works. We can't recommend users to do this hack though. > >>> > >>> > >>> > >>> On Sat, Sep 14, 2013 at 3:21 PM, Vadim <vadi...@gmail.com> wrote: > >>>> Yes, but we can't check this into Rust repo. Maybe it can be worked > >>>> around > >>>> by -DWSAPOLLFD somewhere in makefiles... > >>>> > >>>> And just as a heads-up, these seems to be another problem,- with LLVM: > >>>> http://sourceforge.net/p/mingw/bugs/2043/ > >>>> > >>>> Vadim > >>>> > >>>> On Sep 13, 2013, at 9:16 PM, klutzy k <klutzytheklu...@gmail.com> wrote: > >>>> > >>>> Mingw added new winapi at mswsock.h: > >>>> > >>>> #if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) > >>>> int WSAAPI WSAPoll(WSAPOLLFD, ULONG, INT); > >>>> > >>>> #endif > >>>> > >>>> but they forgot to add definition of WSAPOLLFD. > >>>> > >>>> Someone submitted patch at http://sourceforge.net/p/mingw/bugs/1980/ > >>>> but seems like it's not on mainstream. > >>>> > >>>> Anyway, we (including libuv) don't use the api. Removing the codeblock > >>>> helps > >>>> us. > >>>> > >>>> On Fri, Sep 13, 2013 at 3:19 PM, Vadim <vadi...@gmail.com> wrote: > >>>> > >>>> Hmm. Looks like mingw released a new version with gcc 4.8 and that > >>>> somehow > >>>> > >>>> broke mswsock.h (though the file didn't change). > >>>> > >>>> > >>>> > >>>> > >>>> On Thu, Sep 12, 2013 at 6:56 PM, Thad Guidry <thadgui...@gmail.com> > >>>> wrote: > >>>> > >>>> > >>>> Doesn't work... > >>>> > >>>> > >>>> Errors regarding libuv and mswsock... > >>>> > >>>> > >>>> http://pastebin.mozilla.org/3038909 > >>>> > >>>> > >>>> > >>>> > >>>> On Thu, Sep 12, 2013 at 5:06 PM, Vadim <vadi...@gmail.com> wrote: > >>>> > >>>> > >>>> Hi Brian, > >>>> > >>>> > >>>> Actually, I would argue that these changes *should* be made before 0.8 > >>>> > >>>> release in order to smoothen the path of people who will install 0.8 to > >>>> try > >>>> > >>>> it out. > >>>> > >>>> > >>>> Regarding the work to be done, as far as I know all you need is: > >>>> > >>>> 1. Save libgcc_s_dw2-1.dll and libstdc++-6.dll from %mingw%\bin > >>>> > >>>> 2. "mingw-get update" > >>>> > >>>> 3. "mingw-get upgrade" > >>>> > >>>> 4. run %rust%\configure (not sure if actually needed, but won't hurt) > >>>> > >>>> 5. "make clean" > >>>> > >>>> 6. "make check", which will fail at building stage1 std crate because > >>>> > >>>> step 3 upgraded libgcc and libstdc++ and stage0 compiler needs them. > >>>> > >>>> 7. copy dlls saved in step 1 into %rust%\build\i686-pc-mingw32\stage0\bin > >>>> > >>>> 8. "make check" again, which should succeed this time > >>>> > >>>> > >>>> Can somebody please verify that this works? > >>>> > >>>> > >>>> > >>>> Re mingw-w64: sort of works, however its' phtreads implementation seems > >>>> > >>>> to be buggy. Also see this thread. I don't think we'll should migrate > >>>> to > >>>> > >>>> it just yet. > >>>> > >>>> > >>>> Vadim > >>>> > >>>> > >>>> > >>>> > >>>> On Thu, Sep 12, 2013 at 2:10 PM, Brian Anderson <bander...@mozilla.com> > >>>> > >>>> wrote: > >>>> > >>>> > >>>> On 09/12/2013 12:39 PM, Thad Guidry wrote: > >>>> > >>>> > >>>> Yeah, there should not be a reason anymore, if I am correct, to not have > >>>> > >>>> GCC 4.7 in MinGW for Rust Windows users anymore. I will give that a try > >>>> > >>>> also , and if it works, then we can close out (#8598). (I also would > >>>> like > >>>> > >>>> to get rid of the 4.5 downgrade needed).... but that does need more > >>>> testing > >>>> > >>>> from the core Rust team and others. > >>>> > >>>> > >>>> It's something that Brian has been counting on me to help make happen, > >>>> > >>>> and Alex is also contributing to some of that effort by fixing various > >>>> LLVM > >>>> > >>>> build issues that affect Windows Rust users as you mention in (#8598). > >>>> > >>>> > >>>> Agreed, if a new stage0 compiler snapshot can be created, then we should > >>>> > >>>> be in the clear to also close out #5878. > >>>> > >>>> > >>>> > >>>> > >>>> Thanks for everybody's amazing contributions to our Windows support. If > >>>> > >>>> somebody makes the changes necessary to work with a newer toolchain then > >>>> we > >>>> > >>>> will upgrade the bots. It's unlikely we can do this before 0.8 though, > >>>> due > >>>> > >>>> in two weeks. > >>>> > >>>> > >>>> I gather that some folks would like to switch to the mingw-w64 toolchain > >>>> > >>>> as well. Is that in the cards here? > >>>> > >>>> > >>>> _______________________________________________ > >>>> > >>>> Rust-dev mailing list > >>>> > >>>> Rust-dev@mozilla.org > >>>> > >>>> https://mail.mozilla.org/listinfo/rust-dev > >>>> > >>>> > >>>> > >>>> > >>>> _______________________________________________ > >>>> > >>>> Rust-dev mailing list > >>>> > >>>> Rust-dev@mozilla.org > >>>> > >>>> https://mail.mozilla.org/listinfo/rust-dev > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> -Thad > >>>> > >>>> Thad on Freebase.com > >>>> > >>>> Thad on LinkedIn > >>>> > >>>> > >>>> > >>>> > >>>> _______________________________________________ > >>>> > >>>> Rust-dev mailing list > >>>> > >>>> Rust-dev@mozilla.org > >>>> > >>>> https://mail.mozilla.org/listinfo/rust-dev > >>>> > >>>> > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev