Fix mono 4.0 installation. - #388
Conversation
Mono 4.0 no longer ships a functioning 4.0 profile. $install/lib/mono/4.0 only has reference assemblies with no IL. Which means we cannot have fsc.exe there as mono will try to use the mscorlib on that directory and fail. The solution is to change the build to default to install things on 4.5 and symlink the libraries on 4.0.
|
But this would break F# installation in mono < 4.0 right? |
Using a patch until fsharp/fsharp#388 is accepted.
Using a patch until fsharp/fsharp#388 is accepted.
|
Yes, maybe the solution is to detect mono 4.0+ and only flip things in that case. There's a competing PR for the same issue, btw: #389 |
Then this PR should change the configure.ac file to require Mono 4.0 or higher.
That would be preferable, I guess. |
|
alexischr@01908e8 should also fix the related issue with referencing the MSBuild .targets files for the 4.0 profile (by also symlinking them from 4.5) This also doesn't check Mono versions and is used as a patch in bockbuild for now. |
|
I'm inclined that we should accept this and alexischr@ 01908e8 and then work out the pre-4.5 experience next (and also work out how we can CI a pre-4.5 build). There are too many people hitting this issue in some form or another, and pre-4.5 profile builds are becoming rarer. |
Since the build change [1] was committed, fsharp repository cannot be built with mono versions previous to 4.0, so it's better to fail fast at configure time than to give obscure error messages at build time. Strictly speaking, this change should have been part of this PR [2]. [1]: fsharp@735646a [2]: fsharp#388
Given this decision, FYI I've proposed #394 . |
adjust #388 to keep targets at canonical locations
Mono 4.0 no longer ships a functioning 4.0 profile. $install/lib/mono/4.0 only has reference assemblies with no IL.
Which means we cannot have fsc.exe there as mono will try to use the mscorlib on that directory and fail.
The solution is to change the build to default to install things on 4.5 and symlink the libraries on 4.0.