Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
isv:ownCloud:toolchains:mingw:win32:2.2
mingw32-cross-nsis-plugin-uac
build-with-mingw-on-Linux.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File build-with-mingw-on-Linux.patch of Package mingw32-cross-nsis-plugin-uac
From e1178aec4453b9c8dee4fe8ccfd70d67352689a7 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin <daniel@molkentin.de> Date: Wed, 11 Mar 2015 01:09:00 +0000 Subject: [PATCH] Build with mingw on Linux --- Makefile | 21 +++++++++++++++++++++ NSIS_CUSTOMPISDK.h | 2 +- RunAs.cpp | 8 +++++--- merge_rdata_and_text.x | 7 +++++++ platform.h | 6 +++--- uac.cpp | 2 +- uac.h | 4 ++-- 7 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 Makefile create mode 100644 merge_rdata_and_text.x diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..489324c --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +CXX = i686-w64-mingw32-g++ +WINDRES = i686-w64-mingw32-windres +OBJ = RunAs.o uac.o util.o resource.o +LIBS = -lkernel32 -luser32 -lole32 -ladvapi32 -lshell32 -lmsvcrt +LDFLAGS = -v -nostdlib -Wl,--subsystem,windows -Wl,merge_rdata_and_text.x -Wl,-Bsymbolic-functions -Wl,-S -mdll -Wl,-entry=__DllMainCRTStartup@12 +#LDFLAGS = -Wl,--export-all-symbols -nodefaultlibs -Wl,--subsystem,windows -Wl,-Bsymbolic-functions -Wl,--export-all-symbols +#uncomment for unicode build +CXXFLAGS = -fno-exceptions -fno-rtti #-DUNICODE -D_UNICODE + +UAC.dll: $(OBJ) + $(CXX) -o $@ $(OBJ) $(LIBS) $(LDFLAGS) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -Os -mwindows -c $< + +%.o: %.rc + $(WINDRES) $< $@ + + +clean: + rm -f *.o *.dll diff --git a/NSIS_CUSTOMPISDK.h b/NSIS_CUSTOMPISDK.h index 9d11c86..2a44144 100644 --- a/NSIS_CUSTOMPISDK.h +++ b/NSIS_CUSTOMPISDK.h @@ -1,7 +1,7 @@ // Copyright (C) Anders Kjersem. Licensed under the zlib/libpng license, see License.txt for details. #pragma once -#include <TChar.h> +#include <tchar.h> typedef TCHAR NSISCH; diff --git a/RunAs.cpp b/RunAs.cpp index 99f73fd..99c28ab 100644 --- a/RunAs.cpp +++ b/RunAs.cpp @@ -11,10 +11,12 @@ extern GETUSERNAMEEX _GetUserNameEx; extern CREATEPROCESSWITHLOGONW _CreateProcessWithLogonW; -#include <Lmcons.h>//UNLEN && GNLEN && PWLEN -#include <WindowsX.h> +#include <lmcons.h>//UNLEN && GNLEN && PWLEN +#include <windowsx.h> #include "resource.h" + using namespace NSIS; +#define max(a,b) (((a) > (b)) ? (a) : (b)) #define ERRAPP_TRYAGAIN (0x20000000|1) #define MYMAX_DOMAIN (2+max(GNLEN,MAX_COMPUTERNAME_LENGTH)+1) @@ -313,4 +315,4 @@ extern "C" void __declspec(dllexport) __cdecl DBGRDMyRunAs(HWND hwnd,HINSTANCE h VERIFY(!DelayLoadFunctions()); TRACEF("ec=%d\n",MyRunAs(GetModuleHandle(_T("UAC.dLl")),sei)); } -#endif \ No newline at end of file +#endif diff --git a/merge_rdata_and_text.x b/merge_rdata_and_text.x new file mode 100644 index 0000000..f8bf2b6 --- /dev/null +++ b/merge_rdata_and_text.x @@ -0,0 +1,7 @@ +SECTIONS { + .text : { + *(.text) + *(.rdata) + *(SORT(.rdata$*)) +} +} diff --git a/platform.h b/platform.h index d54a86f..884d8a3 100644 --- a/platform.h +++ b/platform.h @@ -7,9 +7,9 @@ #define _WIN32_WINNT 0x0501 #define WIN32_LEAN_AND_MEAN #include <windows.h> -#include <ShellAPI.h> -#include <TChar.h> -#include <WindowsX.h> +#include <shellapi.h> +#include <tchar.h> +#include <windowsx.h> #ifndef FORCEINLINE #define FORCEINLINE __forceinline diff --git a/uac.cpp b/uac.cpp index 76a8b74..f4ad8a2 100644 --- a/uac.cpp +++ b/uac.cpp @@ -215,7 +215,7 @@ void MSRunAsDlgMod_Init() FORCEINLINE void* DelayLoadFunction(HMODULE hLib,LPCSTR Export) { - return GetProcAddress(hLib,Export); + return (void*) GetProcAddress(hLib,Export); } DWORD DelayLoadFunctions() diff --git a/uac.h b/uac.h index 3a3b82b..2f32933 100644 --- a/uac.h +++ b/uac.h @@ -52,7 +52,7 @@ typedef BOOL (WINAPI*CHANGEWINDOWMESSAGEFILTER)(UINT message,DWORD dwFlag); typedef BOOL (WINAPI*GETUSERNAME)(LPTSTR lpBuffer,LPDWORD nSize); typedef BOOL (WINAPI*CREATEPROCESSWITHLOGONW)(LPCWSTR lpUsername,LPCWSTR lpDomain,LPCWSTR lpPassword,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID pEnv,LPCWSTR WorkDir,LPSTARTUPINFOW pSI,LPPROCESS_INFORMATION pPI); #define SECURITY_WIN32 -#include <Security.h> //NameSamCompatible +#include <security.h> //NameSamCompatible typedef BOOLEAN (WINAPI*GETUSERNAMEEX)(EXTENDED_NAME_FORMAT NameFormat,LPTSTR lpNameBuffer,PULONG nSize); typedef DWORD (WINAPI*SHGETVALUEA)(HKEY hKey,LPCSTR pszSubKey,LPCSTR pszValue,DWORD*pdwType,void*pvData,DWORD*pcbData); #endif @@ -172,4 +172,4 @@ typedef struct { WNDPROC OrgMainWndProc; HWND hwndNSIS; #endif -} UAC_GLOBALS; \ No newline at end of file +} UAC_GLOBALS; -- 2.1.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor