From: Adrien <camaradetux@gmail.com>
To: matthieu.dubuget@gmail.com
Cc: Caml Mailing List <caml-list@yquem.inria.fr>,
David Allsopp <dra-news@metastack.com>
Subject: Re: [Caml-list] Trying to setup mingw OCaml 3.12.1 + fresh cygwin
Date: Wed, 10 Aug 2011 12:55:31 +0200 [thread overview]
Message-ID: <CAP5QFJkUc7X8GAa7zLsrKVxpPuUn3iZEgkin=c85MCCfj4RhRg@mail.gmail.com> (raw)
In-Reply-To: <4E42526F.8000200@gmail.com>
On 10/08/2011, Matthieu Dubuget <matthieu.dubuget@gmail.com> wrote:
>
> Date: 10/08/2011 10:25
> From: David Allsopp <dra-news@metastack.com> wrote:
>> Good to know that 64-bit MinGW is working - that said, I thought the MinGW
>> port was broken in 3.12.1 or is that not affected with the 64-bit
>> compiler? Could you share details on how you configured OCaml?
>
> This is not 64 bits. i686-w64-mingw32 is 32 bits. But for this, I
> adapted some patches borrowed from bug #5179, that may interest you.
To clarify the situation a bit, in the triplet, "w64" refers to the
mingw-w64 project. mingw.org uses "pc" instead (and you can configure
any build to use that one too, but the behaviour of your toolchain
will change). It could also be McDonalds were McDonald's doing
anything with GCC.
For "mingw32", the issue is that many configure scripts (and other
elements) check for "mingw32" when they should actually check for
"mingw*". Noone is to blame, it used to be perfectly acceptable but
it'll take some time to change (it's hopefully improving).
By the way, ocaml's configure scripts have at least one problem:
windows uses the LLP64 model while linux and many others use the LP64
model [1]. The endianess test uses a variable of type long and assumes
it is the same size as a pointer which is not the case on windows 64.
On C99, you can use (u)intptr_t and types from stddef.h (size_t,
ptrdiff_t, ...) instead. These types can also be used with GCC and
probably others even when in non-C99 mode.
[1] http://en.wikipedia.org/wiki/LLP64#Specific_C-language_data_models
If I remember correctly, you're still supposed to use the Makefile.nt
(make -f Makefile.nt) files with minor changes instead of calling
configure when using mingw and you're outside of cygwin which means
the issue won't always pop up but it's quite important to have this in
mind when porting to windows 64 (it's a common issue).
--
Adrien Nader
next prev parent reply other threads:[~2011-08-10 10:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-08 14:35 Matthieu Dubuget
2011-08-08 19:25 ` Adrien
2011-08-10 8:25 ` David Allsopp
2011-08-10 9:42 ` Matthieu Dubuget
2011-08-10 10:55 ` Adrien [this message]
2011-08-12 11:55 ` David Allsopp
2011-08-12 12:00 ` David Allsopp
2011-08-12 13:07 ` Adrien
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAP5QFJkUc7X8GAa7zLsrKVxpPuUn3iZEgkin=c85MCCfj4RhRg@mail.gmail.com' \
--to=camaradetux@gmail.com \
--cc=caml-list@yquem.inria.fr \
--cc=dra-news@metastack.com \
--cc=matthieu.dubuget@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox