Building 64-bit gvim on Vista x64 using MinGW-x64

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Building 64-bit gvim on Vista x64 using MinGW-x64

John Marriott-2
Hi all,
I have recently moved to Vista x64 and I'm having troubling compiling a
64-bit version of gvim. I downloaded the MinGW-x64 packages
(mingw-w64-bin_x86_64-mingw_20081123.zip) along with the MinGW-x86
version of make (mingw32-make-3.81-20080326-2.tar.gz).

Now the make fails when compiling if_ole.cpp with this error in included
header if_ole.h:

<snip>
gcc -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF
-DFEAT_BIG -DFEAT_OLE DFEAT_GUI_W32
-DFEAT_CLIPBOARD -DFEAT_MBYTE -pipe -w -march=native -Wall -O3
-fomit-frame-pointer -freg-struct-return -s -c
-o gobj/if_ole.o if_ole.cpp
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400
-DHAVE_PATHDEF -DFEAT_BIG -DFEAT_OLE -DFEAT_GUI_W
32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -pipe -w -march=native -Wall -O3
-fomit-frame-pointer -freg-struct-return -s
pathdef.c -o gobj/pathdef.o
windres gobj/vimres.res gobj/vimrc.o
In file included from if_ole.cpp:43:
if_ole.h:50: error: 'interface' does not name a type
if_ole.cpp: In member function 'virtual HRESULT CVim::GetHwnd(UINT*)':
if_ole.cpp:299: error: cast from 'HWND__*' to 'UINT' loses precision
make: *** [gobj/if_ole.o] Error 1
make: Target `gvim.exe' not remade because of errors.
make: Leaving directory
`C:/Users/John/Documents/Software/Utility/Vim/72/vim72/src'



gvimext.cpp: In member function 'virtual HRESULT
CShellExtClassFactory::CreateInstance(IUnknown*, const IID&, void**)':
gvimext.cpp:432: error: cannot allocate an object of abstract type
'CShellExt'
gvimext.h:112: note: because the following virtual functions are pure
within 'CShellExt':
c:\program
files\gcc\bin\../lib/gcc/x86_64-pc-mingw32/4.4.0/../../../../x86_64-pc-mingw32/include/shlobj.h:215:

note: virtual HRESULT IContextMenu::GetCommandString(UINT_PTR,
UINT, UINT*, CHAR*, UINT)
make[1]: *** [gvimext.o] Error 1
windres --input-format=rc --output-format=coff -DMING gvimext_ming.rc -o
gvimext.res
make[1]: Target `all' not remade because of errors.
make[1]: Leaving directory
`C:/Users/John/Documents/Software/Utility/Vim/72/vim72/src/GvimExt'
make: *** [GvimExt/gvimext.dll] Error 2
make: Target `all' not remade because of errors.
make: Leaving directory
`C:/Users/John/Documents/Software/Utility/Vim/72/vim72/src'
</snip>

If I remove the need for OLE from the build I get a gvim.exe, but it
doesn't run. It starts up and then hangs chewing up 50% CPU on my Intel
Core 2 Duo. Process Explorer says that it's sitting in kernel function:

expinterlockedflushslist

If I use Visual Studio 2008 Express with the SDK addon to build a 64-bit
version of gvim, I don't get any errors on if_ole.h and I get a working
copy of gvim.exe.
Has anyone else tried this?




------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users

_______________________________________________
This list observes the Etiquette found at http://www.mingw.org/Mailing_Lists.
We ask that you be polite and do the same.