Re: GLib and 64-bit Windows
- From: Jake Goulding <goulding vivisimo com>
- To: GTK Devel List <gtk-devel-list gnome org>
- Subject: Re: GLib and 64-bit Windows
- Date: Mon, 05 Mar 2007 11:06:37 -0500
Jonathan:
I'd definitely like to see the list of issues that you have dealt with
previously. Anything to minimize work is welcome in my book! :-)
Based on the various (well-argued) dissent shown to making a glong 64
bit, I undid my change. That does leave me with the issue that there are
a bunch of assumptions that
sizeof(long) == sizeof(size_t) == sizeof(void *)
Any suggestions on how best to tackle that issue?
Let me know what kind of help you would be interested in doing!
-Jake
Jonathan Chambers wrote:
Just wanted to note that I am interested in this topic as well, as I
am trying to port mono (which depends on glib) to Win64. I just
contacted Tor about this a week ago offline. I saw this thread
searching the web, and just joined the list.
Jake, if you want/need any help with anything let me know as I would
be interested/willing to do so. I haven't worked on gtk previously,
but I have ported a few apps to win64. But, I don't want to duplicate
any effort.
I agree with Tor that glong should correspond to long. Any place where
a variable needs to be platform sized should use something other than
a glong, IMO. I do have a list of issues dealt with when porting to
Win64, if anyone is interested.
Just for trivia, I seem to recall that MS decided to leave long
32-bits on all platforms because they determined that too many people
had written longs to binary files, binary blobs in databases, etc.
Thanks,
Jonathan
On 3/4/07, *Tor Lillqvist* <tml iki fi <mailto:tml iki fi>> wrote:
Morten Welinder writes:
> ">=", I think, but yes. You need to make sure configure defines
gsize
> as unsigned long long, and gssize as long long.
Jake is using the MSVC makefiles which doesn't run any configure
script (because there is no Bourne shell to run it in, etc...).
He uses the more or less manually written config.h.win32(.in) as
config.h and glibconfig.h.win32.in <http://glibconfig.h.win32.in>
as glibconfig.h. If he is using the
stock config.h.win32 and glibconfig.h.win32 they will be very wrong
for Win64.
The intention is that config.h.win32 and glibconfig.h.win32 match what
running the configure script would produce, with just
compiler-specific ifdefs added (like using the "i64" suffix instead of
"ll" for 64-bit ints and unsigneds with MSVC).
It is/was expected that config.h.win32(.in) and
glibconfig.h.win32 (.in) need to be updated as necessary for
win64. I'm
sorry if I didn't remember to point this out early on. For instance,
the macros GLIB_SIZEOF_VOID_P, GLIB_SIZEOF_SIZE_T and the typedefs for
gsize and gssize in glibconfig.h.win32.in
<http://glibconfig.h.win32.in> need to be made conditional
on _WIN64 or whatever the proper feature test macro is.
As soon as there then is a chance to run the real configure script
for
the win64 target (either once gcc etc have been ported, or by using
some of the wrappers that make cl.exe look like gcc
command-line-parameter-wise), the config.h and glibconfig.h files it
outputs should be compared to config.h.win32 and glibconfig.h.win32
files that have been manually edited for Win64, and any discrepancies
fixed.
(I definitely think it would be a very bad idea to typedef glong as an
64-bit integer on win64, with plain "long" still being 32 bit. Surely
the expected convention is that "glong" is *exactly* the same as
"long"?)
(Whether having "long" being 32-bit in Win64 is a silly design
decision or not is pointless to discuss here. I am sure MS did a
thorough analysis and came to the conclusion that this causes less
problems than going to 64-bit longs.)
--tml
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list gnome org <mailto:gtk-devel-list gnome org>
http://mail.gnome.org/mailman/listinfo/gtk-devel-list
------------------------------------------------------------------------
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list
--
JAKE GOULDING
Software Engineer
goulding vivisimo com
Viv�imo [Search Done Right�]
1710 Murray Avenue
Pittsburgh, PA 15217 USA
tel: +1.412.422.2499 x105
fax: +1.412.422.2495
vivisimo.com clusty.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]