From: Georg R. <new...@ga...> - 2006-04-19 11:05:24
|
Hi, I already asked but it might got lost and possibly indicates some problems: In short: Anyone knows the difference between: -Wl,--out-implib,/d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a (gcc: Can't open .lib file: /d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a) and -Wl,--out-implib,d:\\temp\\xxxx\\lib\\arch-mingw-Debug\\libcore.dll.a (works, fine) Is the behaviour correct? Where are the path strings dealt with, is this in MSYS shell code (couldn't find it there) or is this in gcc sources (was browsing the sf.net webcvs)? orgininal command, executed from MSYS: gcc -L/d/temp/xxxx/lib/arch-mingw-Debug -shared -lstdc++ file1.o file2.o file3.o file4.o -o /d/temp/xxxx/lib/arch-mingw-Debug/core.dll -Wl,--out-implib,/d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a Greets, Georg |
From: Earnie B. <ea...@us...> - 2006-04-19 12:51:22
|
Quoting Georg Ritter <new...@ga...>: > Hi, > > I already asked but it might got lost and possibly indicates some problems: > > In short: Anyone knows the difference between: > -Wl,--out-implib,/d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a > (gcc: Can't open .lib file: > /d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a) > and > -Wl,--out-implib,d:\\temp\\xxxx\\lib\\arch-mingw-Debug\\libcore.dll.a > (works, fine) > > Is the behaviour correct? > Works for me. boyde@OH6000GBOYDE ~ $ gcc -shared -o foo.dll -I. foo.c -Wl,--out-implib,/c/temp/libfoo.dll.a Creating library file: c:/temp/libfoo.dll.a boyde@OH6000GBOYDE ~ $ ls -l /c/temp/libfoo.dll.a -rw-r--r-- 1 boyde Administ 1346 Apr 19 08:43 /c/temp/libfoo.dll.a I suggest that you check for spaces in xxxx. > Where are the path strings dealt with, is this in MSYS shell code > (couldn't find it there) or is this in gcc sources (was browsing the > sf.net webcvs)? > MSYS will translate /d/temp/xxxx to d:/temp/xxxx before passing it to a binary that doesn't depend on msys-1.0.dll > orgininal command, executed from MSYS: > gcc -L/d/temp/xxxx/lib/arch-mingw-Debug -shared -lstdc++ file1.o > file2.o file3.o file4.o -o /d/temp/xxxx/lib/arch-mingw-Debug/core.dll > -Wl,--out-implib,/d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a > You have -lstdc++ specified in the wrong place on the command line. COMMAND LINE ORDER MATTERS see http://www.mingw.org/MinGWiki/index.php for more information. I also suggest you use g++ instead of adding -lstdc++ anyway. Earnie Boyd http://shop.siebunlimited.com |
From: Keith M. <kei...@to...> - 2006-04-19 14:01:56
|
Earnie Boyd wrote, quoting Georg Ritter: >> In short: Anyone knows the difference between: >> -Wl,--out-implib,/d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a >> (gcc: Can't open .lib file: >> /d/temp/xxxx/lib/arch-mingw-Debug/libcore.dll.a) >> and >> -Wl,--out-implib,d:\\temp\\xxxx\\lib\\arch-mingw-Debug\\libcore.dll.a >> (works, fine) >> >> Is the behaviour correct? > > Works for me. > > boyde@OH6000GBOYDE ~ > $ gcc -shared -o foo.dll -I. foo.c -Wl,--out-implib,/c/temp/libfoo.dll.a > Creating library file: c:/temp/libfoo.dll.a > > boyde@OH6000GBOYDE ~ > $ ls -l /c/temp/libfoo.dll.a > -rw-r--r-- 1 boyde Administ 1346 Apr 19 08:43 /c/temp/libfoo.dll.a Hmm. Doesn't work for me, with MSYS 1.0.10: $ gcc -shared -o foo.dll foo.c -Wl,--out-implib,/d/local/tmp/foo.dll.a Can't open .lib file: /d/local/tmp/foo.dll.a But this *does* work -- note it's only the `d:' instead of `/d' that's required; no need to replace `/' with `\\': $ gcc -shared -o foo.dll foo.c -Wl,--out-implib,d:/local/tmp/foo.dll.a Creating library file: d:/local/tmp/foo.dll.a > I suggest that you check for spaces in xxxx. No spaces in *any* path I would use, so I doubt that that's Georg's problem either, (although still possible, obviously). But observe the path translation in action, in `dumpargs': $ cat dumpargs.c #include <stdio.h> int main( int argc, char **argv) { int i = 0; while( argc-- ) printf( "argv[%d]: %s\n", i++, *argv++ ); return 0; } $ gcc -o dumpargs dumpargs.c $ ./dumpargs /d/local/tmp/foo.dll.a argv[0]: D:\MSYS\1.0\home\keith\dumpargs.exe argv[1]: d:/local/tmp/foo.dll.a $ ./dumpargs -Wl,--out-implib,/d/local/tmp/foo.dll.a argv[0]: D:\MSYS\1.0\home\keith\dumpargs.exe argv[1]: -Wl,--out-implib,/d/local/tmp/foo.dll.a I know you're on MSYS 1.0.11, Earnie, and we also know there are some outstanding problems in the path translation logic, particularly when there is some other text preceding the path name to be translated; I guess this is just another manifestation of a known MSYS bug. Regards, Keith. |
From: Georg R. <new...@ga...> - 2006-04-19 15:35:55
|
... > > I know you're on MSYS 1.0.11, Earnie, and we also know there are some > outstanding problems in the path translation logic, particularly when > there is some other text preceding the path name to be translated; I > guess this is just another manifestation of a known MSYS bug. Hi, don't worry, it's no longer a problem for me, I easily could work around it and finished porting our stuff. Excellent job and a big thank you to all people behind MinGW&Co! As I didn't know that the path issue was known I thought that I hit smth important that is worth investigating... I can take a look into it, but I have the feeling that it is _a lot_ faster for someone who is familiar with the code, or even wrote it. Greetz, Georg > > Regards, > Keith. > |
From: Earnie B. <ea...@us...> - 2006-04-19 18:24:58
|
Quoting Georg Ritter <new...@ga...>: > > I can take a look into it, but I have the feeling that it is _a lot_ > faster for someone who is familiar with the code, or even wrote it. > If you have a small amount of time to look it will probably get done faster. CVS is currently a mess and I need to reverse some changes. I wouldn't backup beyond the date of the distributed snapshot for 1.0.11 though which is two years old. Earnie Boyd http://shop.siebunlimited.com |
From: Keith M. <kei...@to...> - 2006-04-20 12:58:37
|
I wrote: [re: MSYS not translating drive id, in `-Wl,--out-implib,/d/path...'] > I know you're on MSYS 1.0.11, Earnie, and we also know there are some > outstanding problems in the path translation logic, particularly when > there is some other text preceding the path name to be translated; I > guess this is just another manifestation of a known MSYS bug. And I guess this is the change which makes it work in MSYS-1.0.11, but fail in 1.0.10; (this appears to postdate the release of 1.0.10): http://cvs.sourceforge.net/viewcvs.py/mingw/msys/rt/src/winsup/cygwin/path.cc Revision 1.45 - (view) (download) (annotate) - [select for diffs] Fri Apr 30 22:42:33 2004 UTC (23 months, 2 weeks ago) by earnie Branch: MAIN Changes since 1.44: +21 -0 lines Diff to previous 1.44 * path.cc (msys_p2w): Add recognition of path after comma in switch. Georg Ritter wrote: > As I didn't know that the path issue was known I thought that I hit > smth important that is worth investigating... > > I can take a look into it, but I have the feeling that it is _a lot_ > faster for someone who is familiar with the code, or even wrote it. Well, Earnie has been the major contributor, and I know he has some serious limitations on the time he has available to work on it further, just at the moment; (I also know, and understand, the reasons for those limitations, but I'm not going to betray his confidence by revealing them here). It looks like the problem you encountered has been resolved for MSYS-1.0.11, but there are other outstanding issues. If you wanted to help us to improve it further, you can find information on how to access the CVS repository here: http://sourceforge.net/cvs/?group_id=2435 You want something like: cvs -d:pserver:ano...@cv...:/cvsroot/mingw login cvs -z3 -d:pserver:ano...@cv...:/cvsroot/mingw co -P msys The path translation logic is in `msys/rt/src/winsup/cygwin/path.cc'. Regards, Keith. |
From: Earnie B. <ea...@us...> - 2006-04-19 18:21:36
|
Quoting Keith MARSHALL <kei...@to...>: > > $ gcc -o dumpargs dumpargs.c > > $ ./dumpargs /d/local/tmp/foo.dll.a > argv[0]: D:\MSYS\1.0\home\keith\dumpargs.exe > argv[1]: d:/local/tmp/foo.dll.a > > $ ./dumpargs -Wl,--out-implib,/d/local/tmp/foo.dll.a > argv[0]: D:\MSYS\1.0\home\keith\dumpargs.exe > argv[1]: -Wl,--out-implib,/d/local/tmp/foo.dll.a > > I know you're on MSYS 1.0.11, Earnie, and we also know there are some > outstanding problems in the path translation logic, particularly when > there is some other text preceding the path name to be translated; I > guess this is just another manifestation of a known MSYS bug. > I gotta find some time to spend on MSYS at least to get CVS stable again. Earnie Boyd http://shop.siebunlimited.com |