Good Job on documenting the build steps, Dandy ! Closer and closer we get to flawless building on Windows.
On Mon, Sep 16, 2013 at 1:51 AM, Aaron Dandy <aaron.da...@live.com> wrote: > 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 > $ hello > Hello, 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 > > -- -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