[Mono-dev] Recent xbuild fixes causing issues with finding mcs

Michael Hutchinson m.j.hutchinson at gmail.com
Sun Feb 16 09:15:29 UTC 2014


Yes, but xbuild uses Process.Start, which automatically executes exe
files using Mono. Not sure why that's failing on your machine.

On 15 February 2014 22:13, Michael Franz <mvfranz at gmail.com> wrote:
> On Sat, Feb 15, 2014 at 10:02 PM, Michael Hutchinson
> <m.j.hutchinson at gmail.com> wrote:
>>
>> AFAIK something's wrong with the installation if
>> $prefix/lib/mono/4.5/mcs.exe is missing.
>>
>> What does your $prefix/bin/mcs point to?
>>
>
> It  points to a binary that does not run on its own.
> bash-4.1$ ./lib/mono/4.5/mcs.exe --version
> bash: ./lib/mono/4.5/mcs.exe: cannot execute binary file
>
> but, if I run it with mono it will work.
> bash-4.1$ bin/mono ./lib/mono/4.5/mcs.exe --version
> Mono C# compiler version 3.2.7.0
>
> Prior to the change, it was the mcs wrapper that was being executed, after
> the change, it is trying to run the .NET binary directly.  The contents of
> mcs is:
> #!/bin/sh
> exec /opt/local/JenkinsBuilds/bin/mono $MONO_OPTIONS
> /opt/local/JenkinsBuilds/lib/mono/4.5/mcs.exe "$@"
>
>
>
>> On 15 February 2014 10:51, Michael Franz <mvfranz at gmail.com> wrote:
>> > On Sat, Feb 15, 2014 at 9:46 AM, Michael Franz <mvfranz at gmail.com>
>> > wrote:
>> >>
>> >> Hi,
>> >>
>> >> I see there have been a few changes to xbuild since February 10th,
>> >> 2014.
>> >> February 10th is the last time I was able to build my local C# project
>> >> using
>> >> mono head.  This is a simple project that I have just started and am
>> >> planing
>> >> to build on both mono and .NET.  The issue seems to be that xbuild has
>> >> changed how it finds mcs.  /opt/local/JenkinsBuilds/bin/mcs ->
>> >> /opt/local/JenkinsBuilds/lib/mono/4.5/mcs.exe - see below.
>> >>
>> >> My locally build mono install is in /opt/local/JenkinsBuilds and my
>> >> builds
>> >> are all run via Jenkins.
>> >>
>> >> The build process is:
>> >> - use premake5 to generate Visual Studio 2012 project files (note I am
>> >> using .net 4.5 specific features)
>> >> - use xbuild to build
>> >> - use mono version of nunit to test
>> >>
>> >> The working build out put was like this:
>> >>
>> >> + /opt/local/JenkinsBuilds/bin/xbuild QTS.sln
>> >> XBuild Engine Version 12.0
>> >> Mono, Version 3.2.7.0
>> >> Copyright (C) 2005-2013 Various Mono authors
>> >>
>> >> Build started 2/10/2014 9:56:00 PM.
>> >> __________________________________________________
>> >> Project "/var/lib/jenkins/jobs/CI/workspace/QTS.sln" (default
>> >> target(s)):
>> >>      Target ValidateSolutionConfiguration:
>> >>              Building solution configuration "Debug|Any CPU".
>> >>      Target Build:
>> >>              Project
>> >> "/var/lib/jenkins/jobs/CI/workspace/QTS/QTS.csproj" (default
>> >> target(s)):
>> >>                      Target PrepareForBuild:
>> >>                              Configuration: Debug Platform: AnyCPU
>> >>                      Target GenerateSatelliteAssemblies:
>> >>                      No input files were specified for target
>> >> GenerateSatelliteAssemblies,
>> >> skipping.
>> >>                      Target GenerateTargetFrameworkMonikerAttribute:
>> >>                      Skipping target
>> >> "GenerateTargetFrameworkMonikerAttribute" because its
>> >> outputs are up-to-date.
>> >>                      Target CoreCompile:
>> >>                              Tool /opt/local/JenkinsBuilds/bin/mcs
>> >> execution started with
>> >> arguments: /noconfig /debug:full /debug+ /optimize-
>> >> /out:obj/Debug/QTS.dll
>> >> Properties/AssemblyInfo.cs
>> >> Utilities/Measurements/PerformanceStatistics.cs
>> >> /target:library /define:"DEBUG;TRACE" /platform:AnyCPU
>> >> /reference:/opt/local/JenkinsBuilds/lib/mono/4.5/System.dll
>> >> /reference:/opt/local/JenkinsBuilds/lib/mono/4.5/System.Core.dll
>> >> /warn:4
>> >>
>> >>
>> >> The broken build is now producing:
>> >>
>> >> + /opt/local/JenkinsBuilds/bin/xbuild QTS.sln
>> >> XBuild Engine Version 12.0
>> >> Mono, Version 3.2.7.0
>> >> Copyright (C) 2005-2013 Various Mono authors
>> >>
>> >> Build started 2/15/2014 8:50:52 AM.
>> >> __________________________________________________
>> >> Project "/var/lib/jenkins/jobs/CI/workspace/QTS.sln" (default
>> >> target(s)):
>> >>      Target ValidateSolutionConfiguration:
>> >>              Building solution configuration "Debug|Any CPU".
>> >>      Target Build:
>> >>              Project
>> >> "/var/lib/jenkins/jobs/CI/workspace/QTS/QTS.csproj" (default
>> >> target(s)):
>> >>                      Target PrepareForBuild:
>> >>                              Configuration: Debug Platform: AnyCPU
>> >>                              Created directory "bin/Debug/"
>> >>                              Created directory "obj/Debug/"
>> >>                      Target CopyFilesMarkedCopyLocal:
>> >>                              Copying file from
>> >> '/opt/local/JenkinsBuilds/lib/mono/4.5/mscorlib.dll'
>> >> to '/var/lib/jenkins/jobs/CI/workspace/QTS/bin/Debug/mscorlib.dll'
>> >>                              Copying file from
>> >> '/opt/local/JenkinsBuilds/lib/mono/4.5/mscorlib.dll.mdb' to
>> >> '/var/lib/jenkins/jobs/CI/workspace/QTS/bin/Debug/mscorlib.dll.mdb'
>> >>                      Target GenerateSatelliteAssemblies:
>> >>                      No input files were specified for target
>> >> GenerateSatelliteAssemblies,
>> >> skipping.
>> >>                      Target CoreCompile:
>> >>                              Tool
>> >> /opt/local/JenkinsBuilds/lib/mono/4.5/mcs.exe execution started
>> >> with arguments: /noconfig /debug:full /debug+ /optimize-
>> >> /out:obj/Debug/QTS.dll Properties/AssemblyInfo.cs Utilities/Math.cs
>> >> Utilities/Measurements/PerformanceStatistics.cs
>> >> obj/Debug/.NETFramework,Version=v4.5.AssemblyAttribute.cs
>> >> /target:library
>> >> /define:"DEBUG;TRACE" /nostdlib /platform:AnyCPU
>> >> /reference:/opt/local/JenkinsBuilds/lib/mono/4.5/System.dll
>> >> /reference:/opt/local/JenkinsBuilds/lib/mono/4.5/System.Core.dll
>> >> /reference:/opt/local/JenkinsBuilds/lib/mono/4.5/mscorlib.dll /warn:4
>> >> /opt/local/JenkinsBuilds/lib/mono/4.5/Microsoft.CSharp.targets: error :
>> >> Error executing tool '/opt/local/JenkinsBuilds/lib/mono/4.5/mcs.exe':
>> >>
>> >>
>> >>
>> >> I checked the commit logs, and it looks like there are commits that
>> >> would
>> >> affect this behavior.  Now, it might be that I was doing something
>> >> wrong
>> >> from the start and now I need to fix the process, but it seems like a
>> >> simple
>> >> process.
>> >> e753ca2 Michael Hutchinson [xbuild] Fix dependency in C# targets
>> >> c197478 Michael Hutchinson [xbuild] Fix 2.0 tests to handle mcs sdk
>> >> argument
>> >> 693176c Michael Hutchinson [xbuild] Fix Tooltask.ToolPath behaviour to
>> >> match .NET
>> >> df52831 Michael Hutchinson [xbuild] Make ToolLocationHelper work better
>> >> for 2.0/3.5
>> >> a55c588 Michael Hutchinson [xbuild] Fix typo that broke 2.0/3.5 targets
>> >> c705849 Michael Hutchinson [xbuild] Fix mscorlib resolution for custom
>> >> frameworks
>> >>
>> >> So, is this a bug in xbuild?
>> >>
>> >> Thank you
>> >>
>> >> Michael
>> >
>> >
>> > I did some rollbacks and have confirmed that change c705849b breaks my
>> > build
>> > process, Revision 85fbadaf is the last version that works for me.  I
>> > have
>> > not looked at the change in detail, but it does seem to be relevant to
>> > my
>> > problem.
>> >
>> > Michael
>> >
>> > _______________________________________________
>> > Mono-devel-list mailing list
>> > Mono-devel-list at lists.ximian.com
>> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
>> >
>>
>>
>>
>> --
>> Michael Hutchinson
>> http://mjhutchinson.com
>
>



-- 
Michael Hutchinson
http://mjhutchinson.com


More information about the Mono-devel-list mailing list