Re: working version of GTK for win64



On Wednesday 23 July 2008 12:50:46 Tor Lillqvist wrote:
> (Sorry for replying a bit late.)
>
> >  I've tried to build and run gtk for 64-bit Windows. At last I can upload
> > working version for usage:
>
> Great! I hope people who are interested will try them out. (Personally
> I don't have any machine running 64-bit Windows, unfortunately.)
>
> > http://rapidshare.com/files/130142295/gtk-2.12.9-win64-devel.zip.html
> > http://rapidshare.com/files/130142294/gtk-2.12.9-win64-src.tar.bz2.html
> >
> >  For build I've use cross-compile mode for mingw compiler:
>
> Nice.
>
> > with CFLAGS="-s -O2 -mms-bitfields".
>
> Is the -mms-bitfields flag still needed for Win64? I am a bit
> disappointed in that case, why can't they simply make it the default?
> Presumably for Win32 it was noticed only when gcc had been available
> for a while that there are differences in struct packing compared to
> the "official" ABI, and they then introduced that switch (which
> actually first was named -fnative-struct). But as gcc for Win64 is a
> relatively recent development, why not be struct packing compatible
> with MSVC from the beginning?
>

 I've used -mms-bitfields setting as analog for win32 build instructions. 
Without this switch everything works also whenever the same setting (!) used 
for libraries and applications build (otherwise not !), but I am not sure 
about MSVC compatibility in this case. It should be checked.

> > $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
> >
> > to
> > $EGREP -e 'file format pe-(.*architecture: i386)?' >/dev/null ; then
>
> Hmm, this needs to be filed in upstream libtool, I guess. Will take a
> while before such a patch, if accepted, then trickles down into actual
> tarballs, of course. So that is then something one must take care of
> as part of the build process, add to one's build scripts.
>
> > and in glib/gmain.h for polling:
> >
> > #ifdef G_OS_WIN32
> >  void*         fd;
> > #else
> >  gint          fd;
> > #endif
>
> Hmm, GLib already has:
>
> #if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8
>   gint64	fd;
> #else
>   gint		fd;
> #endif
>
> isn't that enough?

 If latter on we used fd as an HANDLE in WIN API calls, then above 
declarations is correct and works for win32 and win64.

>
> >  3) for all Windows API calls in gtk/gdk/win32 use new declarations:
> > SetWindowLongPtr instead of SetWindowLong, GWLP_HWNDPARENT for
> > GWL_HWNDPARENT and so on.
>
> Could you produce a proper patch, and file a bug and attach the patch
> please?

 For MS Windows build we should clarify about usage of new calls, because the 
are no SetWindowLongPtr and GWLP_HWNDPARENT declarations for MSVC version 6. 
So if we confirm that gtk should be on win64, then use mingw or MSVC version 
7 (2003), 8 (2005) and 9 (2008). Current patch works only for above 
compilers.

>
> > From my point of view it will be very useful to
> > incorporate code changes or some cleanups which work with win32 and win64
> > versions of gtk and we'll continue to use gtk libraries in more areas and
> > applications.
>
> Yep. I will work on integrating the necessary changes into trunk in SVN.
>
> --tml




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]