caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] cygwin/mingw linking
@ 2001-09-14 23:36 CaptnJamesKirk
  2001-09-17  7:58 ` Dmitry Bely
  0 siblings, 1 reply; 6+ messages in thread
From: CaptnJamesKirk @ 2001-09-14 23:36 UTC (permalink / raw)
  To: caml-list

Hi everyone,

I've got OCaml 3.02 succesfully installed, compiled, and working under 
Windows ME using the latest cygwin. I would like to be able to link my 
programs using mingw so the executable doesn't need cygwin1.dll. The docs 
mention using the -output-obj option to create an *.o object file that can be 
linked, but the manual talks about wrapping this with a C program, etc., 
which is not what I want. I just want to manually link the object file(s) 
with whichever libraries are needed, using a separate mingw installation. Can 
I do this?

/John
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] cygwin/mingw linking
  2001-09-14 23:36 [Caml-list] cygwin/mingw linking CaptnJamesKirk
@ 2001-09-17  7:58 ` Dmitry Bely
  0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Bely @ 2001-09-17  7:58 UTC (permalink / raw)
  To: caml-list

CaptnJamesKirk@aol.com writes:

> I've got OCaml 3.02 succesfully installed, compiled, and working under 
> Windows ME using the latest cygwin. I would like to be able to link my 
> programs using mingw so the executable doesn't need cygwin1.dll. The docs 
> mention using the -output-obj option to create an *.o object file that can be 
> linked, but the manual talks about wrapping this with a C program, etc., 
> which is not what I want. I just want to manually link the object file(s) 
> with whichever libraries are needed, using a separate mingw installation.

You cannot do this directly because Ocaml runtime and all its libraries are
also linked with cygwin1.dll if you use cygwin port.

> Can I do this?

It requires some work, but of course is possible. Some time ago I
experimented with combined cygwin/mingw port of Ocaml 3.01:

1. All development tools and byte-compiled ocaml executables are
cygwin-based (linked with cywin1.dll). You have all advantages of standard
cygwin build -- working debugger, profiler etc.

2. At the same time ocamlopt compiler (being the cygwin binary itself)
produces fully native Win32 code, using only standard MSVC runtime
(msvcrt.dll) -- just as "gcc -mno-cygwin" (i.e. mingw) does. If works much
faster (no UNIX emulation layer required) and allows to create commercial
applications without very expensive cygwin1.dll commercial license from Red
Hat.

Unfortunately, OCaml team thinks that supporting even two existing Win32 ports
(MSVC & cygwin) is too boring. So all this is unlikely to be included into
the distribution ...

Hope to hear from you soon,
Dmitry


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] cygwin/mingw linking
  2001-09-17 13:47 RE : RE : " Art Yerkes
@ 2001-09-17 15:14 ` Dmitry Bely
  0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Bely @ 2001-09-17 15:14 UTC (permalink / raw)
  To: caml-list

"Art Yerkes" <ayerkes@gmvnetwork.com> writes:

> If it is _dosmaperr you are thinking of,

Yes, sorry for the typo.

> this function can be taken from
> other GPL code, namely win32.c from cvsnt.
> 
> http://cvs.cvsnt.org/cgi-bin/cvsweb/cvsnt/windows-NT/win32.c

Unfortunately we need LGPL license here, because _dosmaperr() is a part of OCaml
runtime library. Can this code be distributed under LGPL? 

Hope to hear from you soon,
Dmitry


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] cygwin/mingw linking
  2001-09-17 10:02 ` RE : " Lionel Fourquaux
@ 2001-09-17 10:35   ` Einar Karttunen
  0 siblings, 0 replies; 6+ messages in thread
From: Einar Karttunen @ 2001-09-17 10:35 UTC (permalink / raw)
  To: Lionel Fourquaux; +Cc: caml-list

On Mon, Sep 17, 2001 at 12:02:16PM +0200, Lionel Fourquaux wrote:
> 
> > 3. win32unix library uses undocumented _dospamerr() function that is
> > available only in the static MSVC runtime. You should exctract it from
> > Microsoft RTL sources.
> 
> 	That's what I was thinking about. There are two problems with
> this:
>  * You need msvc to get this file (DOSMAP.C).
>  * It has already been pointed out in this list that there can be some
> licence problems.
> 
Has anyone tried compiling ocaml with lccwin32 or borland compilers?
I will probably try to get it to compile with lccwin32 in the near
future and would appreciate any experiences trying to compile ocaml
on non-standard platforms.

- Einar Karttunen 

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] cygwin/mingw linking
@ 2001-09-16 16:05 CaptnJamesKirk
  0 siblings, 0 replies; 6+ messages in thread
From: CaptnJamesKirk @ 2001-09-16 16:05 UTC (permalink / raw)
  To: caml-list

In a message dated 9/14/2001 6:41:57 PM Central Daylight Time, 
CaptnJamesKirk@aol.com writes:

> Hi everyone,
>  
>  I've got OCaml 3.02 succesfully installed, compiled, and working under 
>  Windows ME using the latest cygwin. I would like to be able to link my 
>  programs using mingw so the executable doesn't need cygwin1.dll. The docs 
>  mention using the -output-obj option to create an *.o object file that can 
>  be linked, but the manual talks about wrapping this with a C program, 
etc., 
>  which is not what I want. I just want to manually link the object file(s) 
>  with whichever libraries are needed, using a separate mingw installation. 
> Can I do this?
>  
>  /John

Doesn't look like it's possible now. Here's what I tried. I compiled 
"hello_world.ml" with the "-output-obj" option to produce "camlprog.o". Next, 
still under cygwin, I tried "gcc -o hello_world camlprog.o -lgdi32 
-L/usr/lib/ocaml -lasmrun" and it worked! So, I could manually link a 
complete ocmal program without wrapping with a C program. Next, I exited from 
cygwin and opened up my dos-box for mingw (which doesn't have the cygwin bin 
directory in it's path, so there's no conflict). I used the "camlprog.o" 
which was created under cygwin and directed the linker to the ocaml libs. 
Unfortunately, the linker now complains with, among other things, 

/cygwin/lib/ocaml/libasmrun.a(signals.o)(.text+0x17):signals.c: undefined 
reference to `sigemptyset'

If I'm not mistaken, these are references to some of the more "unix-like" 
functions that cygwin provides and mingw doesn't so it can avoid using the 
cygwin1.dll. So it looks like even a simple "hello world" program need things 
from the ocaml libs that call the cygwin1.dll.

This is unfortunate. I think support for mingw would be a big plus for ocaml. 
Not only is mingw easier to install and use under Windows than cygwin, it 
doesn't require the pesky cygwin1.dll.

/John

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Caml-list] cygwin/mingw linking
@ 2001-09-14 23:40 CaptnJamesKirk
  0 siblings, 0 replies; 6+ messages in thread
From: CaptnJamesKirk @ 2001-09-14 23:40 UTC (permalink / raw)
  To: caml-list

Hi everyone,

I've got OCaml 3.02 succesfully installed, compiled, and working under 
Windows ME using the latest cygwin. I would like to be able to link my 
programs using mingw so the executable doesn't need cygwin1.dll. The docs 
mention using the -output-obj option to create an *.o object file that can be 
linked, but the manual talks about wrapping this with a C program, etc., 
which is not what I want. I just want to manually link the object file(s) 
with whichever libraries are needed, using a separate mingw installation. Can 
I do this?

/John
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-09-18  7:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-14 23:36 [Caml-list] cygwin/mingw linking CaptnJamesKirk
2001-09-17  7:58 ` Dmitry Bely
2001-09-14 23:40 CaptnJamesKirk
2001-09-16 16:05 CaptnJamesKirk
2001-09-17  8:40 RE : " Dmitry Bely
2001-09-17 10:02 ` RE : " Lionel Fourquaux
2001-09-17 10:35   ` Einar Karttunen
2001-09-17 13:47 RE : RE : " Art Yerkes
2001-09-17 15:14 ` Dmitry Bely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).