Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows builds use an old version of GCC #8598

Closed
vadimcn opened this issue Aug 18, 2013 · 11 comments
Closed

Windows builds use an old version of GCC #8598

vadimcn opened this issue Aug 18, 2013 · 11 comments
Labels
O-windows Operating system: Windows P-medium Medium priority

Comments

@vadimcn
Copy link
Contributor

vadimcn commented Aug 18, 2013

Rust wiki states that on Windows an old version of GCC must be used because of incompatibility with then-current LLVM. This causes problems for Windows users who run on a fresh mingw installation: #5878, #5712.

There had been several LLVM upgrades since then and apparently the incompatibility issue got fixed somewhere along the way: I was able to build Rust with GCC 4.7.2 on 64-bit Windows machine without apparent problems. Well, I had to copy old libgcc_s_dw2-1.dll and libstdc++-6.dll into stage0\bin to make stage1 compilation work, but other than that everything had worked fine.

@adrientetar
Copy link
Contributor

I was able to build Rust with GCC 4.7 on Linux Mint 15 x86-64 for the record without having to do anything particular.

@klutzy
Copy link
Contributor

klutzy commented Sep 16, 2013

#9205 blocks gcc 4.8 use, although it seems not critical. make succeeds, but make check-fast fails.
Tests expected to fail (as reported here):

  • extern-pass-TwoU64s-ref
  • extern-return-TwoU64s
  • struct-return

Also recent mingw has some problems: 1 2

@klutzy
Copy link
Contributor

klutzy commented Sep 16, 2013

It would be good if we know latest working gcc version.
We currently recommend 4.5. I've used 4.6 for several months and had no problem.
4.8 is known to fail tests. I have no experience of 4.7.
So: @vadimcn @adridu59 did you run make only? or did you also run make check-fast and it succeeded?

@klutzy
Copy link
Contributor

klutzy commented Sep 16, 2013

yet another w32api issue (4.0.0-1) from irc: winbase.h has the following lines

#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
...
#if (NTDDK_VERSION >= NTDDI_WIN2KSP2)
#define FILE_FLAG_FIRST_PIPE_INSTANCE   524288
#endif
...
#endif

but NTDDK_VERSION is not defined elsewhere. gcc treats the comparison as false, so the constant is not defined.

My old w32api-3.17-2 contains:

#if (_WIN32_WINNT >= 0x0500)
#define FILE_FLAG_FIRST_PIPE_INSTANCE 524288
#endif

I guess NTDDK_VERSION is a typo of NTDDI_VERSION.

@klutzy
Copy link
Contributor

klutzy commented Sep 16, 2013

@aarondandy documented detailed instruction for gcc 4.8 on wiki. Hooray!

@adrientetar
Copy link
Contributor

@klutzy I ran make only.

@pnkfelix
Copy link
Member

pnkfelix commented Nov 7, 2013

We might currently work with gcc 4.8. But we nonetheless must update our bots to test against the appropriate version of gcc on Windows. Accepted for P-high.

@zokier
Copy link

zokier commented Nov 12, 2013

I just attempted to build rust on fresh install of MinGW with GCC 4.8.1. make check fails 8 tests:

[run-pass] run-pass/extern-pass-TwoU64s-ref.rs
[run-pass] run-pass/extern-pass-TwoU64s.rs
[run-pass] run-pass/extern-return-TwoU64s.rs
[run-pass] run-pass/glob-std.rs
[run-pass] run-pass/linkage-visibility.rs
[run-pass] run-pass/signal-exit-status.rs
[run-pass] run-pass/struct-return.rs
[run-pass] run-pass/tempfile.rs

Full log of failures as gist

@vadimcn
Copy link
Contributor Author

vadimcn commented Nov 12, 2013

That's expected. On Windows one should build the "check-fast" target, i.e. "make check-fast".

@klutzy
Copy link
Contributor

klutzy commented Nov 13, 2013

@zokier @vadimcn I think make check should work anyway: #10452

@vadimcn
Copy link
Contributor Author

vadimcn commented Apr 20, 2014

Rust windows bots have transitioned to mingw-w64, so this is now fixed.

@vadimcn vadimcn closed this as completed Apr 20, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-windows Operating system: Windows P-medium Medium priority
Projects
None yet
Development

No branches or pull requests

5 participants