This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: [RFC] setup: allow building with i686-w64-mingw32
- From: "Yaakov (Cygwin/X)" <yselkowitz at users dot sourceforge dot net>
- To: cygwin-apps <cygwin-apps at cygwin dot com>
- Date: Thu, 30 Aug 2012 04:50:24 -0500
- Subject: Re: [RFC] setup: allow building with i686-w64-mingw32
- References: <4FC87306.2080405@users.sourceforge.net> <1346291849.3504.28.camel@YAAKOV04>
On Wed, 2012-08-29 at 20:57 -0500, Yaakov (Cygwin/X) wrote:
> On Fri, 2012-06-01 at 02:45 -0500, Yaakov (Cygwin/X) wrote:
> > The attached draft patch fixes most of the issues with the build. (I
> > just added the necessary mingw64-i686-* libraries to Ports.) ntdll.h
> > needs some more work though; perhaps JonY could provide some input?
>
> Revised patches for mingw-w64-headers SVN HEAD attached.
Pending those changes, revised patch for setup attached. Tested with
i686-pc-mingw32 and i686-w64-mingw32, as well as compile-only with
x86_64-w64-mingw32 (autoload.c still needs changes for x64, as do other
things when we get to that point).
Yaakov
2012-08-30 Yaakov Selkowitz <yselkowitz@...>
Fix build with mingw-w64 headers and start on X86-64 compatibility.
* archive_tar.cc (archive_tar::next_file_name): Fix sscanf formats
for 64-bit size_t.
* autoload.c: Define DECLSPEC_IMPORT for mingw-w64 headers.
* bootstrap.sh: Use i686-w64-mingw32 toolchain if available.
* choose.cc (ChooserPage::OnMouseWheel): Fix return type.
* choose.h (ChooserPage::OnMouseWheel): Ditto.
* filemanip.cc (nt_wfopen): Fix argument cast for _open_osfhandle.
* filemanip.h: Include <sys/types.h> to fix missing mode_t typedef
error with mingw-w64 headers.
* gpg-packet.cc: Include "win32.h" to avoid macro redefinition
errors with mingw-w64 headers.
(ARRAYSIZE): Do not redefine.
* main.cc: Remove CINTERFACE define.
(_argv): Declare if using mingw-w64 headers.
(main_display): Use C++ syntax for COM.
(WinMain): Move up _argv definition to before it is first used.
* mklink2.cc: Remove CINTERFACE define.
(make_link_2): Use C++ syntax for COM.
* netio.cc (auth_proc): Fix return type.
* ntdll.h: Include PSDK headers with mingw-w64 instead of DDK.
* package_message.h: Include "win32.h" instead of <windows.h>.
* proppage.cc (PropertyPage::FirstDialogProcReflector): Fix return type.
Use SetWindowLongPtr and DWLP_* instead of SetWindowLong and DWL_*.
(PropertyPage::DialogProcReflector): Ditto.
(PropertyPage::DialogProc): Ditto.
(PropertyPage::OnMouseWheel): Ditto.
* proppage.h (PropertyPage::FirstDialogProcReflector): Fix return type.
(PropertyPage::DialogProcReflector): Ditto.
(PropertyPage::DialogProc): Ditto.
(PropertyPage::OnMouseWheel): Ditto.
* propsheet.cc (PROPSHEETHEADER_V1_SIZE): Do not redefine.
* site.cc (drop_proc): Fix return type.
* win32.h: Include <sys/types.h>
Define DECLSPEC_IMPORT for mingw-w64 headers.
* window.cc (Window::FirstWindowProcReflector): Use GWLP_* with
SetWindowLongPtr calls.
(Window::WindowProcReflector): Ditto.
Index: archive_tar.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/archive_tar.cc,v
retrieving revision 2.17
diff -u -p -r2.17 archive_tar.cc
--- archive_tar.cc 8 Mar 2012 09:20:03 -0000 2.17
+++ archive_tar.cc 30 Aug 2012 09:01:53 -0000
@@ -171,7 +171,7 @@ archive_tar::next_file_name ()
else if (state.have_longname)
state.have_longname = 0;
- sscanf (state.tar_header.size, "%o", &state.file_length);
+ sscanf (state.tar_header.size, "%Io", &state.file_length);
state.file_offset = 0;
// vp2 (_tar_vfile, "%c %9d %s\n", state.tar_header.typeflag,
@@ -190,7 +190,7 @@ archive_tar::next_file_name ()
MAX_PATH);
err++;
state.parent->read (&state.tar_header, 512);
- sscanf (state.tar_header.size, "%o", &state.file_length);
+ sscanf (state.tar_header.size, "%Io", &state.file_length);
state.file_offset = 0;
skip_file ();
return next_file_name ();
Index: autoload.c
===================================================================
RCS file: /cvs/cygwin-apps/setup/autoload.c,v
retrieving revision 2.9
diff -u -p -r2.9 autoload.c
--- autoload.c 17 Mar 2010 17:51:18 -0000 2.9
+++ autoload.c 30 Aug 2012 09:01:53 -0000
@@ -17,6 +17,7 @@ static const char *cvsid = "\n%%% $Id: a
#endif
#define WIN32_LEAN_AND_MEAN
+#define DECLSPEC_IMPORT
#include <windows.h>
typedef struct {
Index: bootstrap.sh
===================================================================
RCS file: /cvs/cygwin-apps/setup/bootstrap.sh,v
retrieving revision 2.6
diff -u -p -r2.6 bootstrap.sh
--- bootstrap.sh 24 Feb 2012 20:21:42 -0000 2.6
+++ bootstrap.sh 30 Aug 2012 09:01:53 -0000
@@ -50,14 +50,22 @@ fi
cd "$builddir"
build=`$srcdir/cfgaux/config.guess`
-host="i686-pc-mingw32"
-if hash $host-g++ 2> /dev/null; then
+if hash i686-w64-mingw32-g++ 2> /dev/null; then
+ host=i686-w64-mingw32
CC="$host-gcc"
CXX="$host-g++"
-else
+elif hash i686-pc-mingw32-g++ 2> /dev/null; then
+ host=i686-pc-mingw32
+ CC="$host-gcc"
+ CXX="$host-g++"
+elif hash g++-3 2> /dev/null; then
+ host=i686-pc-mingw32
CC="gcc-3 -mno-cygwin"
CXX="g++-3 -mno-cygwin"
+else
+ echo "mingw32-target g++ required for building setup"
+ exit 1
fi
echo "running configure"
Index: choose.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/choose.cc,v
retrieving revision 2.161
diff -u -p -r2.161 choose.cc
--- choose.cc 22 Dec 2011 17:54:26 -0000 2.161
+++ choose.cc 30 Aug 2012 09:01:53 -0000
@@ -436,7 +436,7 @@ ChooserPage::OnMessageCmd (int id, HWND
return true;
}
-BOOL CALLBACK
+INT_PTR CALLBACK
ChooserPage::OnMouseWheel (UINT message, WPARAM wParam, LPARAM lParam)
{
return chooser->WindowProc (message, wParam, lParam);
Index: choose.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/choose.h,v
retrieving revision 2.40
diff -u -p -r2.40 choose.h
--- choose.h 15 Feb 2010 00:45:01 -0000 2.40
+++ choose.h 30 Aug 2012 09:01:53 -0000
@@ -29,8 +29,8 @@ public:
~ChooserPage ();
virtual bool OnMessageCmd (int id, HWND hwndctl, UINT code);
- virtual BOOL CALLBACK OnMouseWheel (UINT message, WPARAM wParam,
- LPARAM lParam);
+ virtual INT_PTR CALLBACK OnMouseWheel (UINT message, WPARAM wParam,
+ LPARAM lParam);
bool Create ();
virtual void OnInit ();
Index: filemanip.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/filemanip.cc,v
retrieving revision 2.35
diff -u -p -r2.35 filemanip.cc
--- filemanip.cc 1 Mar 2010 15:18:39 -0000 2.35
+++ filemanip.cc 30 Aug 2012 09:01:53 -0000
@@ -514,7 +514,7 @@ nt_wfopen (const wchar_t *wpath, const c
return NULL;
}
wname[1] = L'\\';
- int fd = _open_osfhandle ((long) h, oflags);
+ int fd = _open_osfhandle ((intptr_t) h, oflags);
if (fd < 0)
return NULL;
return _fdopen (fd, mode);
Index: filemanip.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/filemanip.h,v
retrieving revision 1.15
diff -u -p -r1.15 filemanip.h
--- filemanip.h 11 May 2009 10:49:15 -0000 1.15
+++ filemanip.h 30 Aug 2012 09:01:53 -0000
@@ -16,6 +16,7 @@
#ifndef SETUP_FILEMANIP_H
#define SETUP_FILEMANIP_H
+#include <sys/types.h>
#include <string>
extern int find_tar_ext (const char *path);
Index: gpg-packet.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/gpg-packet.cc,v
retrieving revision 2.1
diff -u -p -r2.1 gpg-packet.cc
--- gpg-packet.cc 22 Jun 2008 02:37:16 -0000 2.1
+++ gpg-packet.cc 30 Aug 2012 09:01:53 -0000
@@ -26,6 +26,7 @@ static const char *cvsid =
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include "win32.h"
#include "io_stream.h"
#include "gcrypt.h"
#include "gpg-packet.h"
@@ -42,7 +43,9 @@ static const char *cvsid =
#define MESSAGE while (0) msg
#endif /* CRYPTODEBUGGING */
+#ifndef ARRAYSIZE
#define ARRAYSIZE(_ar) (sizeof (_ar) / sizeof (_ar[0]))
+#endif
static const struct { char from; char to; } RFC4880HashCodesToGPGHashCodes[] =
{
Index: main.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/main.cc,v
retrieving revision 2.67
diff -u -p -r2.67 main.cc
--- main.cc 3 Jun 2012 15:00:06 -0000 2.67
+++ main.cc 30 Aug 2012 09:01:53 -0000
@@ -33,7 +33,6 @@ static const char *cvsid =
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
-#define CINTERFACE
#include "win32.h"
#include <commctrl.h>
#include "shlobj.h"
@@ -80,6 +79,10 @@ static const char *cvsid =
#include <wincon.h>
#include <fstream>
+#ifdef __MINGW64_VERSION_MAJOR
+extern char **_argv;
+#endif
+
using namespace std;
HINSTANCE hinstance;
@@ -161,8 +164,8 @@ main_display ()
// done later, in the thread which actually creates the shortcuts.
extern IShellLink *sl;
CoInitializeEx (NULL, COINIT_APARTMENTTHREADED);
- HRESULT res = CoCreateInstance (&CLSID_ShellLink, NULL,
- CLSCTX_INPROC_SERVER, &IID_IShellLink,
+ HRESULT res = CoCreateInstance (CLSID_ShellLink, NULL,
+ CLSCTX_INPROC_SERVER, IID_IShellLink,
(LPVOID *) & sl);
if (res)
{
@@ -209,7 +212,7 @@ main_display ()
// Uninitalize COM
if (sl)
- sl->lpVtbl->Release (sl);
+ sl->Release ();
CoUninitialize ();
}
@@ -240,6 +243,12 @@ WinMain (HINSTANCE h,
snprintf(locale, sizeof locale, ".%u", GetACP());
setlocale(LC_ALL, locale);
+ char **_argv;
+ int argc;
+ for (argc = 0, _argv = __argv; *_argv; _argv++)
+ ++argc;
+ _argv = __argv;
+
set_legacy (_argv[0]);
if (is_legacy && IsWindowsNT ())
@@ -271,13 +280,6 @@ WinMain (HINSTANCE h,
GetCurrentDirectory (MAX_PATH, cwd);
local_dir = std::string (cwd);
- // TODO: make an equivalent for __argv under cygwin.
- char **_argv;
- int argc;
- for (argc = 0, _argv = __argv; *_argv; _argv++)
- ++argc;
- _argv = __argv;
-
if (!GetOption::GetInstance ().Process (argc,_argv, NULL))
exit (1);
Index: mklink2.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/mklink2.cc,v
retrieving revision 2.12
diff -u -p -r2.12 mklink2.cc
--- mklink2.cc 10 Aug 2010 20:38:00 -0000 2.12
+++ mklink2.cc 30 Aug 2012 09:01:53 -0000
@@ -1,4 +1,3 @@
-#define CINTERFACE
#include <stdlib.h>
#include <wchar.h>
#include "win32.h"
@@ -29,16 +28,16 @@ make_link_2 (char const *exepath, char c
WCHAR widepath[MAX_PATH];
if (sl)
{
- sl->lpVtbl->QueryInterface (sl, &IID_IPersistFile, (void **) &pf);
+ sl->QueryInterface (IID_IPersistFile, (void **) &pf);
- sl->lpVtbl->SetPath (sl, exepath);
- sl->lpVtbl->SetArguments (sl, args);
- sl->lpVtbl->SetIconLocation (sl, icon, 0);
+ sl->SetPath (exepath);
+ sl->SetArguments (args);
+ sl->SetIconLocation (icon, 0);
MultiByteToWideChar (CP_ACP, 0, lname, -1, widepath, MAX_PATH);
- pf->lpVtbl->Save (pf, widepath, TRUE);
+ pf->Save (widepath, TRUE);
- pf->lpVtbl->Release (pf);
+ pf->Release ();
}
}
Index: netio.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/netio.cc,v
retrieving revision 2.15
diff -u -p -r2.15 netio.cc
--- netio.cc 22 Jun 2008 02:37:16 -0000 2.15
+++ netio.cc 30 Aug 2012 09:01:53 -0000
@@ -233,7 +233,7 @@ auth_cmd (HWND h, int id, HWND hwndctl,
return 0;
}
-static BOOL CALLBACK
+static INT_PTR CALLBACK
auth_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
Index: ntdll.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/ntdll.h,v
retrieving revision 2.3
diff -u -p -r2.3 ntdll.h
--- ntdll.h 10 Aug 2010 20:38:00 -0000 2.3
+++ ntdll.h 30 Aug 2012 09:01:53 -0000
@@ -16,8 +16,15 @@
#define NTOSAPI
+#ifdef __MINGW64_VERSION_MAJOR
+#include <winternl.h>
+#include <ntdef.h>
+#include <ntstatus.h>
+#define DDKAPI __stdcall
+#else
#include "ddk/ntapi.h"
#include "ddk/ntifs.h"
+#endif
extern "C" {
NTSTATUS DDKAPI NtCreateFile (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES,
Index: package_message.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/package_message.h,v
retrieving revision 1.3
diff -u -p -r1.3 package_message.h
--- package_message.h 10 Aug 2010 20:38:01 -0000 1.3
+++ package_message.h 30 Aug 2012 09:01:53 -0000
@@ -16,7 +16,7 @@
#include "UserSettings.h"
#include "state.h"
#include <stdlib.h>
-#include <windows.h>
+#include "win32.h"
class packagemessage
{
Index: proppage.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/proppage.cc,v
retrieving revision 2.21
diff -u -p -r2.21 proppage.cc
--- proppage.cc 19 Feb 2012 13:57:03 -0000 2.21
+++ proppage.cc 30 Aug 2012 09:01:53 -0000
@@ -81,7 +81,7 @@ PropertyPage::Create (DLGPROC dlgproc,
return true;
}
-BOOL CALLBACK
+INT_PTR CALLBACK
PropertyPage::FirstDialogProcReflector (HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
@@ -96,25 +96,25 @@ PropertyPage::FirstDialogProcReflector (
This = (PropertyPage *) (((PROPSHEETPAGE *) lParam)->lParam);
- SetWindowLong (hwnd, DWL_USER, (DWORD) This);
- SetWindowLong (hwnd, DWL_DLGPROC, (DWORD) DialogProcReflector);
+ SetWindowLongPtr (hwnd, DWLP_USER, (LONG_PTR) This);
+ SetWindowLongPtr (hwnd, DWLP_DLGPROC, (LONG_PTR) DialogProcReflector);
This->SetHWND (hwnd);
return This->DialogProc (message, wParam, lParam);
}
-BOOL CALLBACK
+INT_PTR CALLBACK
PropertyPage::DialogProcReflector (HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam)
{
PropertyPage *This;
- This = (PropertyPage *) GetWindowLong (hwnd, DWL_USER);
+ This = (PropertyPage *) GetWindowLongPtr (hwnd, DWLP_USER);
return This->DialogProc (message, wParam, lParam);
}
-BOOL CALLBACK
+INT_PTR CALLBACK
PropertyPage::DialogProc (UINT message, WPARAM wParam, LPARAM lParam)
{
try
@@ -143,7 +143,7 @@ PropertyPage::DialogProc (UINT message,
{
case PSN_APPLY:
{
- SetWindowLong (GetHWND (), DWL_MSGRESULT, PSNRET_NOERROR);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, PSNRET_NOERROR);
return TRUE;
}
case PSN_SETACTIVE:
@@ -178,7 +178,7 @@ PropertyPage::DialogProc (UINT message,
if(!wantsActivation())
{
- ::SetWindowLong (GetHWND (), DWL_MSGRESULT, -1);
+ ::SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, -1);
return TRUE;
}
@@ -194,29 +194,29 @@ PropertyPage::DialogProc (UINT message,
if (nextwindow == -2)
{
unattended_mode = attended;
- SetWindowLong (GetHWND (), DWL_MSGRESULT, 0);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, 0);
return TRUE;
}
else if (nextwindow == -1)
{
- SetWindowLong (GetHWND (), DWL_MSGRESULT, 0);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, 0);
return TRUE;
}
else if (nextwindow == 0)
{
- SetWindowLong (GetHWND (), DWL_MSGRESULT, -1);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, -1);
return TRUE;
}
else
{
- SetWindowLong (GetHWND (), DWL_MSGRESULT, nextwindow);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, nextwindow);
return TRUE;
}
}
else
{
// 0 == Accept activation, -1 = Don't accept
- ::SetWindowLong (GetHWND (), DWL_MSGRESULT, 0);
+ ::SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, 0);
return TRUE;
}
@@ -226,28 +226,28 @@ PropertyPage::DialogProc (UINT message,
{
OnDeactivate ();
// FALSE = Allow deactivation
- SetWindowLong (GetHWND (), DWL_MSGRESULT, FALSE);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, FALSE);
return TRUE;
}
case PSN_WIZNEXT:
{
LONG retval;
retval = OnNext ();
- SetWindowLong (GetHWND (), DWL_MSGRESULT, retval);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, retval);
return TRUE;
}
case PSN_WIZBACK:
{
LONG retval;
retval = OnBack ();
- SetWindowLong (GetHWND (), DWL_MSGRESULT, retval);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, retval);
return TRUE;
}
case PSN_WIZFINISH:
{
OnFinish ();
// False = Allow the wizard to finish
- SetWindowLong (GetHWND (), DWL_MSGRESULT, FALSE);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, FALSE);
return TRUE;
}
case TTN_GETDISPINFO:
@@ -270,7 +270,7 @@ PropertyPage::DialogProc (UINT message,
if (retval == true)
{
// Handled, return 0
- SetWindowLong (GetHWND (), DWL_MSGRESULT, 0);
+ SetWindowLongPtr (GetHWND (), DWLP_MSGRESULT, 0);
return TRUE;
}
else if (cmdproc != NULL)
@@ -334,9 +334,7 @@ PropertyPage::DialogProc (UINT message,
theURL->second.brush = CreateSolidBrush
(GetSysColor (COLOR_BTNFACE));
- // now this is really crazy, but apparently MSDN says we are to
- // cast this brush as a BOOL and return it (?!)
- return (BOOL)theURL->second.brush;
+ return (INT_PTR) theURL->second.brush;
}
case WM_MOUSEWHEEL:
// we do this so that derived classes that wish to process this message
@@ -362,7 +360,7 @@ PropertyPage::DialogProc (UINT message,
return FALSE;
}
-BOOL CALLBACK
+INT_PTR CALLBACK
PropertyPage::OnMouseWheel (UINT message, WPARAM wParam, LPARAM lParam)
{
return 1; // not handled; define in a derived class to support this
@@ -428,7 +426,7 @@ PropertyPage::urlWinProc (HWND hwnd, UIN
case WM_LBUTTONDOWN:
{
// they clicked our URL! yay!
- int rc = (int)ShellExecute (hwnd, "open",
+ intptr_t rc = (intptr_t) ShellExecute (hwnd, "open",
theURL->second.url.c_str (), NULL, NULL, SW_SHOWNORMAL);
if (rc <= 32)
Index: proppage.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/proppage.h,v
retrieving revision 2.14
diff -u -p -r2.14 proppage.h
--- proppage.h 15 Apr 2006 21:21:25 -0000 2.14
+++ proppage.h 30 Aug 2012 09:01:53 -0000
@@ -42,10 +42,10 @@ class PropertyPage:public Window
// For setting the back/finish buttons properly.
bool IsFirst, IsLast;
- static BOOL CALLBACK FirstDialogProcReflector (HWND hwnd, UINT message,
+ static INT_PTR CALLBACK FirstDialogProcReflector (HWND hwnd, UINT message,
WPARAM wParam,
LPARAM lParam);
- static BOOL CALLBACK DialogProcReflector (HWND hwnd, UINT message,
+ static INT_PTR CALLBACK DialogProcReflector (HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam);
void setTitleFont ();
@@ -78,10 +78,10 @@ class PropertyPage:public Window
protected:
SizeProcessor sizeProcessor;
- virtual BOOL CALLBACK DialogProc (UINT message, WPARAM wParam,
- LPARAM lParam);
- virtual BOOL CALLBACK OnMouseWheel (UINT message, WPARAM wParam,
- LPARAM lParam);
+ virtual INT_PTR CALLBACK DialogProc (UINT message, WPARAM wParam,
+ LPARAM lParam);
+ virtual INT_PTR CALLBACK OnMouseWheel (UINT message, WPARAM wParam,
+ LPARAM lParam);
public:
PropertyPage ();
Index: propsheet.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/propsheet.cc,v
retrieving revision 2.17
diff -u -p -r2.17 propsheet.cc
--- propsheet.cc 10 Nov 2010 20:25:27 -0000 2.17
+++ propsheet.cc 30 Aug 2012 09:01:53 -0000
@@ -37,7 +37,10 @@ typedef struct _DllVersionInfo
}
DLLVERSIONINFO;
typedef HRESULT CALLBACK (*DLLGETVERSIONPROC) (DLLVERSIONINFO * pdvi);
+
+#ifndef PROPSHEETHEADER_V1_SIZE
#define PROPSHEETHEADER_V1_SIZE 40
+#endif
// Sort of a "hidden" Windows structure. Used in the PropSheetCallback.
#include <pshpack1.h>
Index: site.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/site.cc,v
retrieving revision 2.51
diff -u -p -r2.51 site.cc
--- site.cc 23 Feb 2012 14:34:07 -0000 2.51
+++ site.cc 30 Aug 2012 09:01:53 -0000
@@ -441,7 +441,7 @@ do_download_site_info (HINSTANCE hinst,
CreateThread (NULL, 0, do_download_site_info_thread, context, 0, &threadID);
}
-static BOOL CALLBACK
+static INT_PTR CALLBACK
drop_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
Index: win32.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/win32.h,v
retrieving revision 2.27
diff -u -p -r2.27 win32.h
--- win32.h 8 Mar 2012 09:20:03 -0000 2.27
+++ win32.h 30 Aug 2012 09:01:54 -0000
@@ -17,6 +17,7 @@
#ifndef SETUP_WIN32_H
#define SETUP_WIN32_H
+#include <sys/types.h>
#include <string>
/* Any include of <windows.h> should be through this file, which wraps it in
@@ -42,6 +43,7 @@
* multiple declaration errors at link time. This define turns that off again.
* It will default to off again in later w32api versions, but we need to work
* with 3.1 for now. */
+#define DECLSPEC_IMPORT
#define WINBASEAPI
/* Require at least Internet Explorer 3, in order to have access to
Index: window.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/window.cc,v
retrieving revision 2.18
diff -u -p -r2.18 window.cc
--- window.cc 29 Apr 2012 06:26:54 -0000 2.18
+++ window.cc 30 Aug 2012 09:01:54 -0000
@@ -66,13 +66,13 @@ Window::FirstWindowProcReflector (HWND h
wnd = reinterpret_cast<Window *>(((LPCREATESTRUCT)lParam)->lpCreateParams);
// Set a backreference to this class instance in the HWND.
- SetWindowLongPtr (hwnd, GWL_USERDATA, reinterpret_cast<LONG_PTR>(wnd));
+ SetWindowLongPtr (hwnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(wnd));
// Set a new WindowProc now that we have the peliminaries done.
// We could instead simply do the contents of Window::WindowProcReflector
// in the 'else' clause below, but this way we eliminate an unnecessary 'if/else' on
// every message. Yeah, it's probably not worth the trouble.
- SetWindowLongPtr (hwnd, GWL_WNDPROC, (LONG_PTR) & Window::WindowProcReflector);
+ SetWindowLongPtr (hwnd, GWLP_WNDPROC, (LONG_PTR) & Window::WindowProcReflector);
// Finally, store the window handle in the class.
wnd->WindowHandle = hwnd;
}
@@ -92,7 +92,7 @@ Window::WindowProcReflector (HWND hwnd,
Window *This;
// Get our this pointer
- This = reinterpret_cast<Window *>(GetWindowLongPtr (hwnd, GWL_USERDATA));
+ This = reinterpret_cast<Window *>(GetWindowLongPtr (hwnd, GWLP_USERDATA));
return This->WindowProc (uMsg, wParam, lParam);
}