Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005831OCamlconfigure and build/installpublic2012-11-17 20:582012-11-19 12:13
Assigned Tofrisch 
StatusclosedResolutionno change required 
PlatformWindowsOSWindowsOS VersionVista 64
Product Version4.00.1 
Target VersionFixed in Version 
Summary0005831: When buliding an MSVC executable, flexdll passes cygwin paths to microsoft tools
DescriptionWhen flexlink builds an MSVC project, it will pass cygwin style paths to microsoft LINK.

For example, if I have TMPDIR unset, it passes /tmp/dyndll051eba.obj to link which gives this error:
LINK : warning LNK4044: unrecognized option "tmp/dyndll051eba.obj"; ignored

If I have TMPDIR set to c:\windows\temp, it passes /cygdrive/c/windows/temp/dyndlla8f209.obj to Link which gives this error:

LINK : warning LNK4044: unrecognized option "cygdrive/c/windows/temp/dyndlla8f209.obj"; ignored

Steps To Reproduce* build flexdll with a cygwin ocaml
* build a msvc ocaml
* Either set TMPDIR to "c:/windows/temp" or leave it unset
* Build a "Hello world" with the MSVC port of OCaml and its ocamlbuild

You will get those errors when the project is linking.
Additional Information(Currently I can't link flexdll with my MSVC OCaml so I'm not certain whether that build of flexlink would have this problem.)

This patch to flexlink 0.30 solves the problem: [^] (I don't think the patch works if TMPDIR is not set.)

This other patch to flexlink 0.30 is useful for testing this problem because it causes flexlink.exe to print out the name of every temporary file that it creates. [^]
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
frisch (developer)
2012-11-17 22:34

flexdll is supposed to be built with a native Win32 port (mingw or msvc). Do you have a reason not to use the binary distribution of flexdll?
sesquized (reporter)
2012-11-18 00:28

I get problems trying to build the libraries such as win32unix.

If I have flexlink in the default install path of "c:\program files (x86)\flexdll",
I get LINK : fatal error LNK1104: cannot open file ''c:\Program.obj'
(because some step in the process doesn't handle spaces properly)

If I move it to c:\Tools\Flexdll, I get this error:
LINK : fatal error LNK1104: cannot open file ''c:\Tools\Flexdll\flexdll_initer_msvc.obj''

where the problem is extra single quotes in the arguments to LINK (the '' is two single quotes, not a double quote. One is from the error message and one is from what was given to link.) I checked and the file is there.

subcommands get passed through bash which has its own magic processing in the middle

sesquized (reporter)
2012-11-19 03:12

I found out today that the version I was using yesterday was not the "stock" version that I thought it was. I had replaced it by my own build about two weeks ago and forgot that I'd made the change.

Once I restarted the build process from start, I was able to get it to work, except that I couldn't build ocamlbrowser.

So this report is all wrong...

- Issue History
Date Modified Username Field Change
2012-11-17 20:58 sesquized New Issue
2012-11-17 22:34 frisch Note Added: 0008522
2012-11-18 00:28 sesquized Note Added: 0008523
2012-11-19 03:12 sesquized Note Added: 0008528
2012-11-19 12:13 frisch Status new => closed
2012-11-19 12:13 frisch Assigned To => frisch
2012-11-19 12:13 frisch Resolution open => no change required
2017-02-23 16:38 doligez Category OCaml internal build/install (Makefiles, configure) => configure and build/install

Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker