From 3be38c81cfee3dda9a67d7abcde62e8a928a56f4 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Mon, 22 Jun 2015 09:49:52 +0300 Subject: [PATCH] drmingw*: Generate proper library for dbghelp --- mingw-w64-drmingw-git/PKGBUILD | 4 +- mingw-w64-drmingw-git/import-libs.patch | 133 +++++++++++++++++++++++ mingw-w64-drmingw/PKGBUILD | 4 +- mingw-w64-drmingw/import-libs.patch | 135 +++++++++++++++++++++++- 4 files changed, 271 insertions(+), 5 deletions(-) diff --git a/mingw-w64-drmingw-git/PKGBUILD b/mingw-w64-drmingw-git/PKGBUILD index 257692748e..314a06bace 100644 --- a/mingw-w64-drmingw-git/PKGBUILD +++ b/mingw-w64-drmingw-git/PKGBUILD @@ -4,7 +4,7 @@ _realname=drmingw pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" pkgver=r443.9c71cf6 -pkgrel=2 +pkgrel=3 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2.1) @@ -18,7 +18,7 @@ source=("${_realname}"::"git+https://github.com/jrfonseca/drmingw.git" install-files.patch) options=(!strip staticlibs) md5sums=('SKIP' - 'd052ddaacd47a3258a5ec0ba6792121c' + 'a29b4b652caa2dc4fd039c82bb7f6f39' '7a8b0bd82b4c80ee1c923bab7bd552d0') pkgver() { diff --git a/mingw-w64-drmingw-git/import-libs.patch b/mingw-w64-drmingw-git/import-libs.patch index 9f317e2e35..112b12b157 100644 --- a/mingw-w64-drmingw-git/import-libs.patch +++ b/mingw-w64-drmingw-git/import-libs.patch @@ -46,6 +46,16 @@ + ExcHndlSetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 +@@ -1,7 +1,9 @@ + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + set (MGWHELP_DEF mgwhelp32.def) ++ set (DBGHELP_DEF dbghelp.def) + else () + set (MGWHELP_DEF mgwhelp64.def) ++ set (DBGHELP_DEF dbghelp64.def) + endif () + + add_library (mgwhelp SHARED @@ -23,7 +23,11 @@ LINKER_LANGUAGE CXX # for __cxa_demangle ) @@ -59,3 +69,126 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 4) # XXX: We need to use a custom import lib to avoid link failures +@@ -42,8 +44,8 @@ + set (MGWHELP_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/libmgwhelp.a) + add_custom_command ( + OUTPUT ${MGWHELP_IMPLIB} +- COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --kill-at --input-def=${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def +- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def ++ COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --input-def=${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} + ) + else () + set (MGWHELP_IMPLIB mgwhelp) +--- /dev/null 2015-06-22 09:25:15.000000000 +0300 ++++ drmingw/src/mgwhelp/dbghelp64.def 2015-06-22 09:24:34.433800000 +0300 +@@ -0,0 +1,109 @@ ++LIBRARY dbghelp.dll ++ ++EXPORTS ++ EnumDirTree ++ EnumDirTreeW ++ EnumerateLoadedModules ++ EnumerateLoadedModules64 ++ EnumerateLoadedModulesW64 ++ ExtensionApiVersion ++ FindDebugInfoFile ++ FindDebugInfoFileEx ++ FindExecutableImage ++ FindExecutableImageEx ++ FindExecutableImageExW ++ GetTimestampForLoadedLibrary ++ ImageDirectoryEntryToData ++ ImageDirectoryEntryToDataEx ++ ImageNtHeader ++ ImageRvaToSection ++ ImageRvaToVa ++ ImagehlpApiVersion ++ ImagehlpApiVersionEx ++ MakeSureDirectoryPathExists ++ MapDebugInformation ++ MiniDumpReadDumpStream ++ MiniDumpWriteDump ++ SearchTreeForFile ++ SearchTreeForFileW ++ StackWalk ++ StackWalk64 ++ SymAddSymbol ++ SymAddSymbolW ++ SymCleanup ++ SymEnumLines ++ SymEnumSourceFiles ++ SymEnumSymbols ++ SymEnumSymbolsW ++ SymEnumTypes ++ SymEnumTypesW ++ SymEnumerateModules ++ SymEnumerateModules64 ++ SymEnumerateModulesW64 ++ SymEnumerateSymbols ++ SymEnumerateSymbols64 ++ SymFindFileInPath ++ SymFindFileInPathW ++ SymFromAddr ++ SymFromAddrW ++ SymFromName ++ SymFunctionTableAccess ++ SymFunctionTableAccess64 ++ SymGetLineFromAddr ++ SymGetLineFromAddr64 ++ SymGetLineFromAddrW64 ++ SymGetLineNext ++ SymGetLineNext64 ++ SymGetLinePrev ++ SymGetLinePrev64 ++ SymGetModuleBase ++ SymGetModuleBase64 ++ SymGetModuleInfo ++ SymGetModuleInfo64 ++ SymGetModuleInfoW ++ SymGetModuleInfoW64 ++ SymGetOptions ++ SymGetSearchPath ++ SymGetSearchPathW ++ SymGetSourceFileToken ++ SymGetSourceFileTokenW ++ SymGetSymFromAddr ++ SymGetSymFromAddr64 ++ SymGetSymFromName ++ SymGetSymFromName64 ++ SymGetSymNext ++ SymGetSymNext64 ++ SymGetSymPrev ++ SymGetSymPrev64 ++ SymGetTypeFromName ++ SymGetTypeInfo ++ SymInitialize ++ SymInitializeW ++ SymLoadModule ++ SymLoadModule64 ++ SymLoadModuleEx ++ SymLoadModuleExW ++ SymMatchFileName ++ SymMatchFileNameW ++ SymMatchString ++ SymRefreshModuleList ++ SymRegisterCallback ++ SymRegisterCallback64 ++ SymRegisterCallbackW64 ++ SymRegisterFunctionEntryCallback ++ SymRegisterFunctionEntryCallback64 ++ SymSearch ++ SymSearchW ++ SymSetContext ++ SymSetOptions ++ SymSetParentWindow ++ SymSetScopeFromAddr ++ SymSetSearchPath ++ SymSetSearchPathW ++ SymUnDName ++ SymUnDName64 ++ SymUnloadModule ++ SymUnloadModule64 ++ UnDecorateSymbolName ++ UnmapDebugInformation ++ WinDbgExtensionDllInit diff --git a/mingw-w64-drmingw/PKGBUILD b/mingw-w64-drmingw/PKGBUILD index 76e8970c9f..da9f65423a 100644 --- a/mingw-w64-drmingw/PKGBUILD +++ b/mingw-w64-drmingw/PKGBUILD @@ -4,7 +4,7 @@ _realname=drmingw pkgname=(${MINGW_PACKAGE_PREFIX}-${_realname}) pkgver=0.7.3 -pkgrel=2 +pkgrel=3 pkgdesc="Just-in-Time (JIT) debugger (mingw-w64)" arch=('any') license=(LGPL2) @@ -16,7 +16,7 @@ source=(${_realname}-${pkgver}.tar.gz::"https://github.com/jrfonseca/drmingw/arc install-files.patch) options=(!strip staticlibs) md5sums=('2a606a5dfb85e6092ae82acbd4612a7c' - '36a51f93ad1c1fa1d911af1886688dda' + '95cf2d64efb65e035b96f58e9272798e' '79edeee894e906bc3cce20f7f170de0c') prepare() { diff --git a/mingw-w64-drmingw/import-libs.patch b/mingw-w64-drmingw/import-libs.patch index e82af0d1cc..2078b085a1 100644 --- a/mingw-w64-drmingw/import-libs.patch +++ b/mingw-w64-drmingw/import-libs.patch @@ -41,9 +41,19 @@ +++ drmingw/src/exchndl/exchndl32.def 2015-06-21 14:18:57.437200000 +0300 @@ -0,0 +1,2 @@ +EXPORTS -+ ExcHndlSetLogFileNameA@4 ++ SetLogFileNameA@4 --- drmingw/src/mgwhelp/CMakeLists.txt.orig 2015-06-20 21:56:28.342000000 +0300 +++ drmingw/src/mgwhelp/CMakeLists.txt 2015-06-20 22:08:56.832200000 +0300 +@@ -1,7 +1,9 @@ + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + set (MGWHELP_DEF mgwhelp32.def) ++ set (DBGHELP_DEF dbghelp.def) + else () + set (MGWHELP_DEF mgwhelp64.def) ++ set (DBGHELP_DEF dbghelp64.def) + endif () + + add_library (mgwhelp SHARED @@ -23,7 +23,11 @@ LINKER_LANGUAGE CXX # for __cxa_demangle ) @@ -57,3 +67,126 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 4) # XXX: We need to use a custom import lib to avoid link failures +@@ -42,8 +44,8 @@ + set (MGWHELP_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/libmgwhelp.a) + add_custom_command ( + OUTPUT ${MGWHELP_IMPLIB} +- COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --kill-at --input-def=${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def +- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.def ++ COMMAND ${DLLTOOL} --output-lib ${MGWHELP_IMPLIB} --dllname mgwhelp.dll --input-def=${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBGHELP_DEF} + ) + else () + set (MGWHELP_IMPLIB mgwhelp) +--- /dev/null 2015-06-22 09:25:15.000000000 +0300 ++++ drmingw/src/mgwhelp/dbghelp64.def 2015-06-22 09:24:34.433800000 +0300 +@@ -0,0 +1,109 @@ ++LIBRARY dbghelp.dll ++ ++EXPORTS ++ EnumDirTree ++ EnumDirTreeW ++ EnumerateLoadedModules ++ EnumerateLoadedModules64 ++ EnumerateLoadedModulesW64 ++ ExtensionApiVersion ++ FindDebugInfoFile ++ FindDebugInfoFileEx ++ FindExecutableImage ++ FindExecutableImageEx ++ FindExecutableImageExW ++ GetTimestampForLoadedLibrary ++ ImageDirectoryEntryToData ++ ImageDirectoryEntryToDataEx ++ ImageNtHeader ++ ImageRvaToSection ++ ImageRvaToVa ++ ImagehlpApiVersion ++ ImagehlpApiVersionEx ++ MakeSureDirectoryPathExists ++ MapDebugInformation ++ MiniDumpReadDumpStream ++ MiniDumpWriteDump ++ SearchTreeForFile ++ SearchTreeForFileW ++ StackWalk ++ StackWalk64 ++ SymAddSymbol ++ SymAddSymbolW ++ SymCleanup ++ SymEnumLines ++ SymEnumSourceFiles ++ SymEnumSymbols ++ SymEnumSymbolsW ++ SymEnumTypes ++ SymEnumTypesW ++ SymEnumerateModules ++ SymEnumerateModules64 ++ SymEnumerateModulesW64 ++ SymEnumerateSymbols ++ SymEnumerateSymbols64 ++ SymFindFileInPath ++ SymFindFileInPathW ++ SymFromAddr ++ SymFromAddrW ++ SymFromName ++ SymFunctionTableAccess ++ SymFunctionTableAccess64 ++ SymGetLineFromAddr ++ SymGetLineFromAddr64 ++ SymGetLineFromAddrW64 ++ SymGetLineNext ++ SymGetLineNext64 ++ SymGetLinePrev ++ SymGetLinePrev64 ++ SymGetModuleBase ++ SymGetModuleBase64 ++ SymGetModuleInfo ++ SymGetModuleInfo64 ++ SymGetModuleInfoW ++ SymGetModuleInfoW64 ++ SymGetOptions ++ SymGetSearchPath ++ SymGetSearchPathW ++ SymGetSourceFileToken ++ SymGetSourceFileTokenW ++ SymGetSymFromAddr ++ SymGetSymFromAddr64 ++ SymGetSymFromName ++ SymGetSymFromName64 ++ SymGetSymNext ++ SymGetSymNext64 ++ SymGetSymPrev ++ SymGetSymPrev64 ++ SymGetTypeFromName ++ SymGetTypeInfo ++ SymInitialize ++ SymInitializeW ++ SymLoadModule ++ SymLoadModule64 ++ SymLoadModuleEx ++ SymLoadModuleExW ++ SymMatchFileName ++ SymMatchFileNameW ++ SymMatchString ++ SymRefreshModuleList ++ SymRegisterCallback ++ SymRegisterCallback64 ++ SymRegisterCallbackW64 ++ SymRegisterFunctionEntryCallback ++ SymRegisterFunctionEntryCallback64 ++ SymSearch ++ SymSearchW ++ SymSetContext ++ SymSetOptions ++ SymSetParentWindow ++ SymSetScopeFromAddr ++ SymSetSearchPath ++ SymSetSearchPathW ++ SymUnDName ++ SymUnDName64 ++ SymUnloadModule ++ SymUnloadModule64 ++ UnDecorateSymbolName ++ UnmapDebugInformation ++ WinDbgExtensionDllInit