You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ji...@apache.org on 2017/08/04 19:01:59 UTC
svn commit: r1804151 -
/openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
Author: jim
Date: Fri Aug 4 19:01:59 2017
New Revision: 1804151
URL: http://svn.apache.org/viewvc?rev=1804151&view=rev
Log:
Temp hack for Windows build failure in 4.1.4 w/ expat 2.2.3: We are not
building/linking in the loadlibrary.obj files as we should for Windows, which
is killing the apr and sax builds. Force this function into the xmlparse.c
file for the time being.
Modified:
openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
Modified: openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO414/main/expat/expat-2.2.3.patch?rev=1804151&r1=1804150&r2=1804151&view=diff
==============================================================================
--- openoffice/branches/AOO414/main/expat/expat-2.2.3.patch (original)
+++ openoffice/branches/AOO414/main/expat/expat-2.2.3.patch Fri Aug 4 19:01:59 2017
@@ -85,3 +85,160 @@
+.INCLUDE : set_wntx64.mk
+.INCLUDE : target.mk
+.INCLUDE : tg_wntx64.mk
+diff -ur misc/expat-2.2.3/lib/xmlparse.c misc/build/expat-2.2.3/lib/xmlparse.c
+--- misc/expat-2.2.3/lib/xmlparse.c 2017-08-02 09:40:48.000000000 -0400
++++ misc/build/expat-2.2.3/lib/xmlparse.c 2017-08-04 14:56:58.000000000 -0400
+@@ -1,3 +1,145 @@
++/***************************************************************************
++ * _ _ ____ _
++ * Project ___| | | | _ \| |
++ * / __| | | | |_) | |
++ * | (__| |_| | _ <| |___
++ * \___|\___/|_| \_\_____|
++ *
++ * Copyright (C) 2016 - 2017, Steve Holme, <st...@hotmail.com>.
++ *
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
++ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
++ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
++ * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * Except as contained in this notice, the name of a copyright holder shall
++ * not be used in advertising or otherwise to promote the sale, use or other
++ * dealings in this Software without prior written authorization of the
++ * copyright holder.
++ *
++ ***************************************************************************/
++
++#if defined(_WIN32)
++
++#include <windows.h>
++#include <tchar.h>
++
++
++HMODULE _Expat_LoadLibrary(LPCTSTR filename);
++
++
++#if !defined(LOAD_WITH_ALTERED_SEARCH_PATH)
++#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
++#endif
++
++#if !defined(LOAD_LIBRARY_SEARCH_SYSTEM32)
++#define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
++#endif
++
++/* We use our own typedef here since some headers might lack these */
++typedef HMODULE (APIENTRY *LOADLIBRARYEX_FN)(LPCTSTR, HANDLE, DWORD);
++
++/* See function definitions in winbase.h */
++#ifdef UNICODE
++# ifdef _WIN32_WCE
++# define LOADLIBARYEX L"LoadLibraryExW"
++# else
++# define LOADLIBARYEX "LoadLibraryExW"
++# endif
++#else
++# define LOADLIBARYEX "LoadLibraryExA"
++#endif
++
++
++/*
++ * _Expat_LoadLibrary()
++ *
++ * This is used to dynamically load DLLs using the most secure method available
++ * for the version of Windows that we are running on.
++ *
++ * Parameters:
++ *
++ * filename [in] - The filename or full path of the DLL to load. If only the
++ * filename is passed then the DLL will be loaded from the
++ * Windows system directory.
++ *
++ * Returns the handle of the module on success; otherwise NULL.
++ */
++HMODULE _Expat_LoadLibrary(LPCTSTR filename)
++{
++ HMODULE hModule = NULL;
++ LOADLIBRARYEX_FN pLoadLibraryEx = NULL;
++
++ /* Get a handle to kernel32 so we can access it's functions at runtime */
++ HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32"));
++ if(!hKernel32)
++ return NULL;
++
++ /* Attempt to find LoadLibraryEx() which is only available on Windows 2000
++ and above */
++ pLoadLibraryEx = (LOADLIBRARYEX_FN) GetProcAddress(hKernel32, LOADLIBARYEX);
++
++ /* Detect if there's already a path in the filename and load the library if
++ there is. Note: Both back slashes and forward slashes have been supported
++ since the earlier days of DOS at an API level although they are not
++ supported by command prompt */
++ if(_tcspbrk(filename, TEXT("\\/"))) {
++ /** !checksrc! disable BANNEDFUNC 1 **/
++ hModule = pLoadLibraryEx ?
++ pLoadLibraryEx(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
++ LoadLibrary(filename);
++ }
++ /* Detect if KB2533623 is installed, as LOAD_LIBARY_SEARCH_SYSTEM32 is only
++ supported on Windows Vista, Windows Server 2008, Windows 7 and Windows
++ Server 2008 R2 with this patch or natively on Windows 8 and above */
++ else if(pLoadLibraryEx && GetProcAddress(hKernel32, "AddDllDirectory")) {
++ /* Load the DLL from the Windows system directory */
++ hModule = pLoadLibraryEx(filename, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
++ }
++ else {
++ /* Attempt to get the Windows system path */
++ UINT systemdirlen = GetSystemDirectory(NULL, 0);
++ if(systemdirlen) {
++ /* Allocate space for the full DLL path (Room for the null terminator
++ is included in systemdirlen) */
++ size_t filenamelen = _tcslen(filename);
++ TCHAR *path = malloc(sizeof(TCHAR) * (systemdirlen + 1 + filenamelen));
++ if(path && GetSystemDirectory(path, systemdirlen)) {
++ /* Calculate the full DLL path */
++ _tcscpy(path + _tcslen(path), TEXT("\\"));
++ _tcscpy(path + _tcslen(path), filename);
++
++ /* Load the DLL from the Windows system directory */
++ /** !checksrc! disable BANNEDFUNC 1 **/
++ hModule = pLoadLibraryEx ?
++ pLoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
++ LoadLibrary(path);
++
++ }
++ free(path);
++ }
++ }
++
++ return hModule;
++}
++
++#else /* defined(_WIN32) */
++
++/* ISO C requires a translation unit to contain at least one declaration
++ [-Wempty-translation-unit] */
++typedef int _TRANSLATION_UNIT_LOAD_LIBRARY_C_NOT_EMTPY;
++
++#endif /* defined(_WIN32) */
++
+ /* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+ See the file COPYING for copying permission.
+
+@@ -843,7 +985,6 @@
+ #ifdef _WIN32
+
+ typedef BOOLEAN (APIENTRY *RTLGENRANDOM_FUNC)(PVOID, ULONG);
+-HMODULE _Expat_LoadLibrary(LPCTSTR filename); /* see loadlibrary.c */
+
+ /* Obtain entropy on Windows XP / Windows Server 2003 and later.
+ * Hint on RtlGenRandom and the following article from libsodium.