Or maybe we could try long path support on WIndows. http://msdn.microsoft.com/en-us/library/windows/desktop/aa364944(v=vs.85).aspx
"In the ANSI version of this function, the name is limited to *MAX_PATH* characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path. For more information, see File Names, Paths, and Namespaces<http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx> ." Thanks, Jonathan On Tue, Jul 9, 2013 at 11:22 PM, Greg Najda <gregna...@gmail.com> wrote: > Following up on this, I finally got it figured it. The length of my > checkout directory is too long at 49 chars, which is not really that long. > I did some digging and found that Mono uses GetFileAttributes to check for > the existence of a file in Windows. So I made a test program in C that > takes a path on the command line and calls GetFileAttributes on it. > > #include <Windows.h> > #include <stdio.h> > > int _tmain(int argc, _TCHAR* argv[]) > { > DWORD res = GetFileAttributes(argv[1]); > > if(res != -1) > { > printf("GetFileAttributes: Found.\r\n"); > } > else > { > printf("GetFileAttributes: Not found. Error code: %d\r\n", > GetLastError()); > } > > return 0; > } > > I added two files to > external\entityframework\src\EntityFramework.SqlServer\Resources\System\Data\SqlClient: > System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping123.msl > and > System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping1234.msl. > > > C:\Users\Greg\Documents\Programming\mono_nul_fork\mcs\class\EntityFramework.SqlServer>MonoFileExistsTest.exe > ../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping123.msl > GetFileAttributes: Found. > > C:\Users\Greg\Documents\Programming\mono_nul_fork\mcs\class\EntityFramework.SqlServer>MonoFileExistsTest.exe > ../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping1234.msl > GetFileAttributes: Not found. Error code: 3 > > ../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping1234.msl > is only 174 chars, much lower than MAX_PATH of 260 chars. What gives? > > Well, if you put the current directory before the relative path so it > becomes > C:\Users\Greg\Documents\Programming\mono_nul_fork\mcs\class\EntityFramework.SqlServer\../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping1234.msl, > then that is exactly 260 chars. With null terminator, it's 261 and over > MAX_PATH. I guess Windows prepends the current directory before checking > path length. > > Interestingly, .NET's File.Exists does not encounter the same problem. If > I run mcs using .NET instead of Mono, the particular compile step that > failed works. I wonder what sorcery it does? > > Perhaps add a suggestion to > http://www.mono-project.com/Compiling_Mono_on_Windows to keep the path > length of your checkout directory extremely short. > > https://wrench.mono-project.com/Wrench/index.aspx?show_all=true shows the > Windows build as still broken so this was all with the last revision that > Wrench shows to successfully build. > > > On Thu, Jun 27, 2013 at 10:24 PM, Greg Najda <gregna...@gmail.com> wrote: > >> I'm new to git. I'm using Atlassian SourceTree as a git gui. I'm pretty >> sure it updates submodules after cloning. I ran "git submodule update" >> anyway, which produced no output, and then tried building again and got >> the same error. >> >> After pulling the latest changes I get a new error earlier in the build: >> >> make[3]: *** No rule to make target `mono-sgen', needed by `mono'. Stop. >> >> >> On Wed, Jun 26, 2013 at 11:12 AM, Rodrigo Kumpera <kump...@gmail.com>wrote: >> >>> Update your git submodules. >>> >>> >>> On Tue, Jun 25, 2013 at 10:05 PM, Greg Najda <gregna...@gmail.com>wrote: >>> >>>> I'm running into some trouble compiling Mono on Windows. Here are the >>>> steps I followed: >>>> >>>> 1. Do a git clone (using 1b5ef4d3df262c66f58596bda152db5f4c34741c, "Add >>>> a GSHAREDVT_REG_IREG return marshalling convention on ARM.", 2013-06-23) >>>> 2. Install cygwin. Include packages: autoconf, automake, bison, >>>> gcc-core, gcc-g++, libtool, make, python, wget, zip (all from >>>> http://www.mono-project.com/Compiling_Mono_on_Windows), mingw-pthreads >>>> (get an error with mono/utils/atomic.c without it because it #includes >>>> <pthread.h>), gettext, gettext-devel (seem to be missing msgfmt without the >>>> devel package) >>>> 3. Start cygwin >>>> 4. Copy checkout to /home/Greg/mono >>>> 5. Run: >>>> >>>> export PATH="$PATH:/cygdrive/c/Program Files (x86)/Mono-3.0.10/bin" >>>> cd mono >>>> ./autogen.sh --prefix=/usr/local 2>&1 | tee >>>> ~/autogen_output_with_stderror.txt >>>> make V=1 2>&1 | tee ~/make_output_with_stderror_verbose.txt >>>> >>>> >>>> I did see this in the autogen output. Is it anything to be concerned >>>> about? >>>> >>>> checking winternl.h usability... no >>>> checking winternl.h presence... yes >>>> configure: WARNING: winternl.h: present but cannot be compiled >>>> configure: WARNING: winternl.h: check for missing prerequisite >>>> headers? >>>> configure: WARNING: winternl.h: see the Autoconf documentation >>>> configure: WARNING: winternl.h: section "Present But Cannot Be >>>> Compiled" >>>> configure: WARNING: winternl.h: proceeding with the compiler's result >>>> configure: WARNING: ## >>>> ---------------------------------------------------------------------------- >>>> ## >>>> configure: WARNING: ## Report this to >>>> http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono ## >>>> configure: WARNING: ## >>>> ---------------------------------------------------------------------------- >>>> ## >>>> >>>> >>>> >>>> >>>> Here are the last several lines of output from make: >>>> >>>> make[7]: Entering directory >>>> `/home/Greg/mono/mcs/class/EntityFramework.SqlServer' >>>> make all-local >>>> make[8]: Entering directory >>>> `/home/Greg/mono/mcs/class/EntityFramework.SqlServer' >>>> Converting EntityFramework.SqlServer.dll.sources to >>>> ../../build/deps/net_4_5_EntityFramework.SqlServer.dll.response ... >>>> MONO_PATH="./../../class/lib/net_4_5;$MONO_PATH" >>>> /home/Greg/mono/runtime/mono-wrapper ./../../class/lib/net_4_5/resgen.exe >>>> "../../../external/entityframework/src/EntityFramework.SqlServer/Properties/Resources.SqlServer.resx" >>>> "System.Data.Entity.SqlServer.Properties.Resources.SqlServer.resources" >>>> Read in 44 resources from >>>> 'C:\Users\Greg\Documents\Programs\cygwin\home\Greg\mono\external\entityframework\src\EntityFramework.SqlServer\Properties\Resources.SqlServer.resx' >>>> Writing resource file... Done. >>>> MONO_PATH="./../../class/lib/build;$MONO_PATH" >>>> /home/Greg/mono/runtime/mono-wrapper ./../../class/lib/build/mcs.exe >>>> /codepage:65001 /nologo -d:NET_1_1 -d:NET_2_0 -d:NET_3_0 -d:NET_3_5 >>>> -d:NET_4_0 -d:NET_4_5 -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 >>>> -r:mscorlib.dll /debug+ /debug:full -optimize /noconfig -r:System.dll >>>> -r:System.Xml.dll -r:System.Core.dll -r:EntityFramework.dll >>>> -r:System.Data.dll -keyfile:../ecma.pub -delaysign -warn:1 >>>> -resource:System.Data.Entity.SqlServer.Properties.Resources.SqlServer.resources >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.ProviderManifest.xml >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinition.ssdl >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinition_Sql8.ssdl >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinitionVersion3.ssdl >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinitionVersion3_Sql8.ssdl >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping.msl >>>> -resource:../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMappingVersion3.msl >>>> -target:library -out:../../class/lib/net_4_5/EntityFramework.SqlServer.dll >>>> @./../../build/deps/net_4_5_EntityFramework.SqlServer.dll.response >>>> error CS1566: Error reading resource file >>>> `../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinition.ssdl' >>>> error CS1566: Error reading resource file >>>> `../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinition_Sql8.ssdl' >>>> error CS1566: Error reading resource file >>>> `../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinitionVersion3.ssdl' >>>> error CS1566: Error reading resource file >>>> `../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaDefinitionVersion3_Sql8.ssdl' >>>> error CS1566: Error reading resource file >>>> `../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMapping.msl' >>>> error CS1566: Error reading resource file >>>> `../../../external/entityframework/src/EntityFramework.SqlServer/Resources/System/Data/SqlClient/System.Data.Resources.SqlClient.SqlProviderServices.StoreSchemaMappingVersion3.msl' >>>> Compilation failed: 6 error(s), 0 warnings >>>> ../../build/library.make:256: recipe for target >>>> `../../class/lib/net_4_5/EntityFramework.SqlServer.dll' failed >>>> make[8]: *** [../../class/lib/net_4_5/EntityFramework.SqlServer.dll] >>>> Error 1 >>>> make[8]: Leaving directory >>>> `/home/Greg/mono/mcs/class/EntityFramework.SqlServer' >>>> ../../build/rules.make:137: recipe for target `do-all' failed >>>> make[7]: *** [do-all] Error 2 >>>> make[7]: Leaving directory >>>> `/home/Greg/mono/mcs/class/EntityFramework.SqlServer' >>>> ../build/rules.make:158: recipe for target `all-recursive' failed >>>> make[6]: *** [all-recursive] Error 1 >>>> make[6]: Leaving directory `/home/Greg/mono/mcs/class' >>>> build/rules.make:158: recipe for target `all-recursive' failed >>>> make[5]: *** [all-recursive] Error 1 >>>> make[5]: Leaving directory `/home/Greg/mono/mcs' >>>> Makefile:99: recipe for target `profile-do--net_4_5--all' failed >>>> make[4]: *** [profile-do--net_4_5--all] Error 2 >>>> make[4]: Leaving directory `/home/Greg/mono/mcs' >>>> Makefile:95: recipe for target `profiles-do--all' failed >>>> make[3]: *** [profiles-do--all] Error 2 >>>> make[3]: Leaving directory `/home/Greg/mono/mcs' >>>> Makefile:547: recipe for target `all-local' failed >>>> make[2]: *** [all-local] Error 2 >>>> make[2]: Leaving directory `/home/Greg/mono/runtime' >>>> Makefile:463: recipe for target `all-recursive' failed >>>> make[1]: *** [all-recursive] Error 1 >>>> make[1]: Leaving directory `/home/Greg/mono' >>>> Makefile:390: recipe for target `all' failed >>>> make: *** [all] Error 2 >>>> >>>> >>>> >>>> Complete autogen log is at >>>> http://pastie.org/private/mo0bnluwmekwiws4na4zg and complete make log >>>> is at >>>> http://www.animerecs.com/Content/make_output_with_stderror_verbose.txt(too >>>> big for a pastebin site so I put it on my own site). >>>> >>>> Any ideas? Also, is there a way to only build the mono runtime and/or a >>>> way to only run the tests for a particular component? I'm primarily >>>> interested in testing a bugfix for >>>> https://bugzilla.xamarin.com/show_bug.cgi?id=12752. >>>> >>>> - Greg >>>> >>>> _______________________________________________ >>>> Mono-devel-list mailing list >>>> Mono-devel-list@lists.ximian.com >>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>> >>>> >>> >>> _______________________________________________ >>> Mono-devel-list mailing list >>> Mono-devel-list@lists.ximian.com >>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>> >>> >> > > _______________________________________________ > Mono-devel-list mailing list > Mono-devel-list@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-devel-list > >
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list