* Strange compilation problem @ 2009-02-11 9:28 Matthieu Dubuget 2009-02-11 12:05 ` Matthieu Dubuget 2009-02-11 14:30 ` Matthieu Dubuget 0 siblings, 2 replies; 7+ messages in thread From: Matthieu Dubuget @ 2009-02-11 9:28 UTC (permalink / raw) To: caml-list This command line fails during the linking stage: > ocamlfind opt -linkpkg -package miniscan test.ml -o test.exe > ** Fatal error: Cannot find file "libmingw32" > File "caml_startup", line 1, characters 0-1: > Error: Error during linking Since this seems to be a problem with my "miniscan" findlib package, I gather some information and by-pass it > $ ocamlfind query miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > $ cat C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan/META > description = "Binding Miniscan" > archive(byte) = "miniscan.cma" > archive(native) = "miniscan.cmxa" > requires = "mtsvrac,ojson,log,dsn153,okenveloppe,traite" and this command line works, and produces a working test.exe file: > ocamlfind opt -linkpkg -package mtsvrac,ojson,log,dsn153,okenveloppe,traite -I c:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan miniscan.cmxa test.ml -o test.exe Any idea what the problem could be? Or what I should check next? Salutations Matt ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Strange compilation problem 2009-02-11 9:28 Strange compilation problem Matthieu Dubuget @ 2009-02-11 12:05 ` Matthieu Dubuget 2009-02-11 14:30 ` Matthieu Dubuget 1 sibling, 0 replies; 7+ messages in thread From: Matthieu Dubuget @ 2009-02-11 12:05 UTC (permalink / raw) To: caml-list Here are some more infos. I increased flexlink.exe verbosity. First, the failing log, then the working one, and at last a diff of both. > ocamlfind opt -o test.exe -linkpkg -package miniscan test.ml -cclib -v -cclib -v -cclib -v > ** Use cygpath: true > ** Search path: > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/dsn153 > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/log > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tics > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/dsn153 > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/log > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tics > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > C:/cygwin/home/matt/ocamlmgw/lib > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/dsn153 > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/log > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tics > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > /lib/mingw > /lib > /lib/w32api > /usr/lib/gcc/i686-pc-mingw32/3.4.4 > ** Default libraries: > crt2.o > -lmingw32 > -lgcc > -lmoldname > -lmingwex > -lmsvcrt > -luser32 > -lkernel32 > -ladvapi32 > -lshell32 > ** open: C:/cygwin/lib/mingw/crt2.o > ** Fatal error: Cannot find file "libmingw32" > File "caml_startup", line 1, characters 0-1: > Error: Error during linking And the working one: > ocamlfind opt -linkpkg -package mtsvrac,ojson,log,dsn153,okenveloppe,traite -I c:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan mini.cmxa test.ml -o test.ex e -cclib -v -cclib -v > ** Use cygpath: true > ** Search path: > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/dsn153 > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/log > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tics > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/dsn153 > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/log > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tics > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > C:/cygwin/home/matt/ocamlmgw/lib > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/dsn153 > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/log > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tics > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > c:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > /lib/mingw > /lib > /lib/w32api > /usr/lib/gcc/i686-pc-mingw32/3.4.4 > ** Default libraries: > crt2.o > -lmingw32 > -lgcc > -lmoldname > -lmingwex > -lmsvcrt > -luser32 > -lkernel32 > -ladvapi32 > -lshell32 > ** open: C:/cygwin/lib/mingw/crt2.o > ** open: C:/cygwin/lib/mingw/libmingw32.a > ** open: C:/cygwin/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a > ** open: C:/cygwin/lib/mingw/libmoldname.a > ** open: C:/cygwin/lib/mingw/libmingwex.a > ** open: C:/cygwin/lib/mingw/libmsvcrt.a > ** open: C:/cygwin/lib/w32api/libuser32.a > ** open: C:/cygwin/lib/w32api/libkernel32.a > ** open: C:/cygwin/lib/w32api/libadvapi32.a > ** open: C:/cygwin/lib/w32api/libshell32.a > + gcc -mno-cygwin -mconsole -L. -I"C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tr (gcc command truncated) Following is a diff output of both. *** c:/DOCUME~1/matt/LOCALS~1/Temp/ediff3236JTj Wed Feb 11 12:59:13 2009 --- c:/DOCUME~1/matt/LOCALS~1/Temp/ediff3236Wdp Wed Feb 11 12:59:13 2009 *************** *** 1,7 **** ! > ocamlfind opt -o test.exe -linkpkg -package miniscan test.ml -cclib -v -cclib -v -cclib -v > ** Use cygpath: true > ** Search path: - > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft --- 1,6 ---- ! > ocamlfind opt -linkpkg -package mtsvrac,ojson,log,dsn153,okenveloppe,traite -I c:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan mini.cmxa test.ml -o test.exe -cclib -v -cclib -v > ** Use cygpath: true > ** Search path: > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft *************** *** 11,17 **** > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac - > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft --- 10,15 ---- *************** *** 22,28 **** > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac > C:/cygwin/home/matt/ocamlmgw/lib - > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/traite > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okenveloppe > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/okfft --- 20,25 ---- *************** *** 32,37 **** --- 29,35 ---- > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/num > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/ojson > C:/cygwin/home/matt/ocamlmgw/lib/site-lib/mtsvrac + > c:/cygwin/home/matt/ocamlmgw/lib/site-lib/miniscan > /lib/mingw > /lib > /lib/w32api *************** *** 48,52 **** > -ladvapi32 > -lshell32 > ** open: C:/cygwin/lib/mingw/crt2.o ! > ** Fatal error: Cannot find file "libmingw32" ! > File "caml_startup", line 1, characters 0-1: --- 46,58 ---- > -ladvapi32 > -lshell32 > ** open: C:/cygwin/lib/mingw/crt2.o ! > ** open: C:/cygwin/lib/mingw/libmingw32.a ! > ** open: C:/cygwin/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a ! > ** open: C:/cygwin/lib/mingw/libmoldname.a ! > ** open: C:/cygwin/lib/mingw/libmingwex.a ! > ** open: C:/cygwin/lib/mingw/libmsvcrt.a ! > ** open: C:/cygwin/lib/w32api/libuser32.a ! > ** open: C:/cygwin/lib/w32api/libkernel32.a ! > ** open: C:/cygwin/lib/w32api/libadvapi32.a ! > ** open: C:/cygwin/lib/w32api/libshell32.a ! > + gcc -mno-cygwin -mconsole -L. -I"C:/cygwin/home/matt/ocamlmgw/lib/site-lib/tr Thanks Salutations Matt ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Strange compilation problem 2009-02-11 9:28 Strange compilation problem Matthieu Dubuget 2009-02-11 12:05 ` Matthieu Dubuget @ 2009-02-11 14:30 ` Matthieu Dubuget [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCCB@KL-SRV57.lmsintl.com> 1 sibling, 1 reply; 7+ messages in thread From: Matthieu Dubuget @ 2009-02-11 14:30 UTC (permalink / raw) Cc: caml-list Progressing… slowly. There is clearly a problem in my configuration or in flexlink, or both? If I copy: libadvapi32.a libmingw32.a libmoldname.a libkernel32.a libmingwex.a libshell32.a in my present working directory, the link stage works. ocamlfind opt -linkpkg -package miniscan test.ml -o test.exe Now trying to understand the problem. It seems like it is the endless unix/window path style problem... ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <BB046CA812535C45BD0029AA9D04BA7905ECDCCB@KL-SRV57.lmsintl.com>]
* Re: [Caml-list] Re: Strange compilation problem [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCCB@KL-SRV57.lmsintl.com> @ 2009-02-11 14:51 ` Matthieu Dubuget [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCD6@KL-SRV57.lmsintl.com> 2009-02-11 16:30 ` [Caml-list] Re: Strange compilation problem -> solved Matthieu Dubuget 1 sibling, 1 reply; 7+ messages in thread From: Matthieu Dubuget @ 2009-02-11 14:51 UTC (permalink / raw) To: caml-list Christoph Bauer a écrit : > Hi, > > I had also similar problems: > http://caml.inria.fr/mantis/view.php?id=4645 > > Make sure, that you use the latest flexlink. > Thanks for the answer. I do have the very last flexdll (0.14). I downloaded the binary version. And I'm inside the subversion version of flexlink.exe in order to understand where the problem comes from. Since I'm not able to use ocamldebug, I go with printf ;-) > One of the problems was with white spaces in the path to libmingw32.a > if i remember correctly > Something else, in my case… Salutations ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <BB046CA812535C45BD0029AA9D04BA7905ECDCD6@KL-SRV57.lmsintl.com>]
* Re: [Caml-list] Re: Strange compilation problem (flexlink trying to deal with windows and cygwin shell limitations) [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCD6@KL-SRV57.lmsintl.com> @ 2009-02-11 15:15 ` Matthieu Dubuget 0 siblings, 0 replies; 7+ messages in thread From: Matthieu Dubuget @ 2009-02-11 15:15 UTC (permalink / raw) To: caml-list Christoph Bauer a écrit : > I added -L$(cygpath -m /usr/lib/w32api) somewhere in the command lin while linking. > Does this help? (Maybe as -cclib -L$(cygpath -m /usr/lib/w32api)) > > Regards, > > Christoph Bauer > No :-/ But I think I understood the problem. flexlink tries a lot of paths. And if the file is not found, a cygpath conversion is tried before a second search. This cygpath conversion is done through a file redirection. > let get_output cmd = > let fn = Filename.temp_file "flexdll" "" in > if (Sys.command (cmd ^ " > " ^ fn) < 0) > then failwith ("Cannot run " ^ cmd); > let r = read_file fn in > Sys.remove fn; > r In my case fn is void, and cmd is… long. String.length cmd gives 8406 ie > 8k I'm pretty sure that I could have my app. compiled by using a site-lib directory near the root of the filesystem. Salutations Matt ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] Re: Strange compilation problem -> solved [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCCB@KL-SRV57.lmsintl.com> 2009-02-11 14:51 ` [Caml-list] " Matthieu Dubuget @ 2009-02-11 16:30 ` Matthieu Dubuget 2009-02-11 17:19 ` Alain Frisch 1 sibling, 1 reply; 7+ messages in thread From: Matthieu Dubuget @ 2009-02-11 16:30 UTC (permalink / raw) To: caml-list; +Cc: Alain Frisch [-- Attachment #1: Type: text/plain, Size: 687 bytes --] Here is a patch against subversion version of flexlink that solves my problem. Salutations P.S. Alain, j'ai eu un problème d’édition de liens avec flexlink, qui s’est avéré être à ma portée (voir la liste de diffusion caml) ; d’autant plus que la solution était déjà en partie dans les sources de flexlink ;-) Voici de quoi je suis parti. Path: . URL: svn://frisch.fr/flexdll/trunk Repository Root: svn://frisch.fr/flexdll Repository UUID: 673e9a06-3c3d-0410-add4-e21af864612f Revision: 153 Node Kind: directory Schedule: normal Last Changed Author: frisch Last Changed Rev: 153 Last Changed Date: 2009-01-28 17:17:06 +0100 (Wed, 28 Jan 2009) [-- Attachment #2: long_path.patch --] [-- Type: text/x-diff, Size: 1208 bytes --] Index: reloc.ml =================================================================== --- reloc.ml (revision 153) +++ reloc.ml (working copy) @@ -58,13 +58,25 @@ close_in ic; List.rev !r + let get_output cmd = let fn = Filename.temp_file "flexdll" "" in - if (Sys.command (cmd ^ " > " ^ fn) < 0) - then failwith ("Cannot run " ^ cmd); - let r = read_file fn in - Sys.remove fn; - r + let cmd' = cmd ^ " > " ^ (Filename.quote fn) in + if String.length cmd' < 8182 then + begin + if (Sys.command cmd' < 0) + then failwith ("Cannot run " ^ cmd); + end + else + begin + let (cfn, oc) = Filename.open_temp_file "longcmd" ".sh" in + output_string oc cmd'; close_out oc; + if Sys.command (Printf.sprintf "bash %s" cfn) < 0 + then failwith ("Cannot run " ^ cmd) + end; + let r = read_file fn in + Sys.remove fn; + r let get_output1 cmd = List.hd (get_output cmd) @@ -142,7 +154,7 @@ (* Looking for files *) let cygpath l = - get_output (Printf.sprintf "cygpath -m %s" (String.concat " " l)) + get_output (Printf.sprintf "cygpath -m %s" (String.concat " " (List.map Filename.quote l))) let gcclib () = let extra = match !toolchain with ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] Re: Strange compilation problem -> solved 2009-02-11 16:30 ` [Caml-list] Re: Strange compilation problem -> solved Matthieu Dubuget @ 2009-02-11 17:19 ` Alain Frisch 0 siblings, 0 replies; 7+ messages in thread From: Alain Frisch @ 2009-02-11 17:19 UTC (permalink / raw) To: matthieu.dubuget; +Cc: caml-list Matthieu Dubuget wrote: > Here is a patch against subversion version of flexlink that solves my > problem. Thanks Matthieu! The patch has been applied to flexlink's SVN repository. -- Alain ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-02-11 17:19 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-02-11 9:28 Strange compilation problem Matthieu Dubuget 2009-02-11 12:05 ` Matthieu Dubuget 2009-02-11 14:30 ` Matthieu Dubuget [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCCB@KL-SRV57.lmsintl.com> 2009-02-11 14:51 ` [Caml-list] " Matthieu Dubuget [not found] ` <BB046CA812535C45BD0029AA9D04BA7905ECDCD6@KL-SRV57.lmsintl.com> 2009-02-11 15:15 ` [Caml-list] Re: Strange compilation problem (flexlink trying to deal with windows and cygwin shell limitations) Matthieu Dubuget 2009-02-11 16:30 ` [Caml-list] Re: Strange compilation problem -> solved Matthieu Dubuget 2009-02-11 17:19 ` Alain Frisch
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox