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.