This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Fri, Mar 25, 2005 at 07:08:56PM +0100, Martin Egholm Nielsen wrote: >>>>>I'm almost there - but it gets stuck when it should install gcc's >>>>>multilibs. >>>>>Anybody got a clue to what causes the unavailability? >>>>>make[4]: execvp: /bin/sh: Resource temporarily unavailable >>>>>make[4]: *** [all-multi] Error 127 >>>>>make[4]: Leaving directory >>>>>`/cygdrive/c/DATA/crosstool-0.29/build/powerpc-405-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-gcc/powerpc-405-linux-gnu/nof/zlib' >>>>This old thread reports a similar problem: >>>>http://sources.redhat.com/ml/cygwin/2001-07/msg01333.html >>>>He blames the command length when running under Cygwin... >>>>Unfortunately there is no solution to the problem - other than changing >>>>to Linux... >>> >>>The limit appears to be enforced in winsup/cygwin/spawn.cc: >>>static int __stdcall >>>spawn_guts (const char * prog_arg, const char *const *argv, >>> const char *const envp[], int mode) >>>{ >>> ... >>> if (one_line.ix > 32767) >>> { >>> debug_printf ("Command line too long (>32K), return E2BIG"); >>> set_errno (E2BIG); >>> return -1; >>> } >>> >>>msdn says in >>>http://msdn.microsoft.com/library/en-us/dllproc/base/createprocess.asp >>> >>>lpCommandLine >>> [in, out] Pointer to a null-terminated string that specifies the >>> command line to execute. >>> The maximum length of this string is 32K characters. >>> Windows 2000: The maximum length of this string is MAX_PATH >>> characters. >>> >>>So it appears to be a Windows limitation, not a Cygwin one. >>> >>>You have a couple options, in increasing order of difficulty: >>> >>>1) switch to linux or some other real OS, like mac os x (putty is your >>>friend, you can keep >>>your windows workstation, just remote log in to the other box) >>>2) cross-compile the cygwin toolchain from linux >>>3) patch gcc's build to use shorter commandlines >>>4) patch cygwin to bypass the windows commandline mechanism >> >> >>5) cygwin already bypasses windows command line mechanism. You just have >> to tell it to assume that the executables in /bin (or wherever) are >> 100% pure cygwin executables. See "man mount". >> >> mount -f -X c:\cygwin\bin /bin >> mount -f -X c:\cygwin\bin /usr/bin >> mount -f -x c:\cygwin\bin\strace.exe /bin/strace.exe # buit with >> -mno-cygwin >> mount -f -x c:\cygwin\bin\strace.exe /usr/bin/strace.exe # buit with >> -mno-cygwin >> mount -f -x c:\cygwin\bin\strace.exe /bin/cygcheck.exe # buit with >> -mno-cygwin >> mount -f -x c:\cygwin\bin\strace.exe /usr/bin/cygcheck.exe # buit with >> -mno-cygwin >> >> This will bypass the 32K limitation in windows for command line and >> similar >> limitations for environment variables. > >>mount -f -x c:\cygwin\bin\strace.exe /bin/cygcheck.exe # buit with >>-mno-cygwin >>mount -f -x c:\cygwin\bin\strace.exe /usr/bin/cygcheck.exe # buit with >-mno-cygwin >Should these in fact be "c:\cygwin\bin\cygcheck.exe" instead? >I'm running it at the moment as you stated (4 x strace.exe)... I'll >return with the result in a couple of hours when it gets to the point. yes. Cut/paste error. >Btw, it should be "\\" in order to escape the backslash... Not if you're doing it from the windows command prompt. I guess I should have added a disclaimer that these commands should be used as a reference not taken verbatim. cgf ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |