On 9 November 2015 at 17:09, Carsey, Jaben <[email protected]> wrote: > Reviewed-by: Jaben Carsey <[email protected]> > >> -----Original Message----- >> From: edk2-devel [mailto:[email protected]] On Behalf Of >> Daryl McDaniel >> Sent: Saturday, November 07, 2015 11:46 AM >> To: [email protected]; Carsey, Jaben <[email protected]>; >> Bjorge, Erik C <[email protected]> >> Subject: [edk2] [PATCH 4/4] AppPkg/Python-2.7.10: AppPkg.dsc, pyconfig.h, >> PyMod-2.7.10 (resend) >> Importance: High >> >> Resent using git send-email. Maybe this will be easier to use. >>
As a stakeholder in Tianocore whose understanding of AppPkg and its dependence on Python may be limited, is it too much to ask to actually *describe* what these patches change? I am not contesting that these patches are useful, it is just that they are structured very poorly, and contain no description whatsoever what the nature of the changes is. Thanks, Ard. >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Daryl McDaniel <[email protected]> >> --- >> AppPkg/AppPkg.dsc | 5 +- >> .../Python/Python-2.7.10/Ia32/pyconfig.h | 93 ++++++++---- >> .../Python-2.7.10/PyMod-2.7.10/Lib/ntpath.py | 30 +++- >> .../Python/Python-2.7.10/PyMod-2.7.10/Lib/os.py | 35 ++++- >> .../Python/Python-2.7.10/PyMod-2.7.10/Lib/pydoc.py | 17 +++ >> .../Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py | 165 >> ++++++--------------- >> .../Python-2.7.10/PyMod-2.7.10/Modules/_sre.c | 150 ++++++++++--------- >> .../Python-2.7.10/PyMod-2.7.10/Modules/addrinfo.h | 101 +++++++------ >> .../PyMod-2.7.10/Modules/errnomodule.c | 57 ++++++- >> .../PyMod-2.7.10/Modules/expat/expat_external.h | 4 +- >> .../Python-2.7.10/PyMod-2.7.10/Modules/getpath.c | 143 +++++------------- >> .../Python-2.7.10/PyMod-2.7.10/Modules/main.c | 61 ++++---- >> .../PyMod-2.7.10/Modules/selectmodule.c | 43 ++++-- >> .../PyMod-2.7.10/Modules/zlib/gzguts.h | 10 +- >> .../PyMod-2.7.10/Modules/zlib/zutil.h | 11 +- >> .../PyMod-2.7.10/Objects/longobject.c | 14 +- >> .../PyMod-2.7.10/Objects/stringlib/localeutil.h | 17 ++- >> .../PyMod-2.7.10/Python/getcopyright.c | 24 ++- >> .../Python-2.7.10/PyMod-2.7.10/Python/marshal.c | 21 ++- >> .../Python-2.7.10/PyMod-2.7.10/Python/random.c | 32 +++- >> .../Python/Python-2.7.10/X64/pyconfig.h | 63 ++++++-- >> 21 files changed, 640 insertions(+), 456 deletions(-) >> >> diff --git a/AppPkg/AppPkg.dsc b/AppPkg/AppPkg.dsc >> index 6db32a1..58bc84e 100644 >> --- a/AppPkg/AppPkg.dsc >> +++ b/AppPkg/AppPkg.dsc >> @@ -126,9 +126,12 @@ >> gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80400040 >> } >> >> -#### Un-comment the following line to build Python. >> +#### Un-comment the following line to build Python 2.7.2. >> # AppPkg/Applications/Python/PythonCore.inf >> >> +#### Un-comment the following line to build Python 2.7.10. >> +# AppPkg/Applications/Python/Python-2.7.10/Python2710.inf >> + >> #### Un-comment the following line to build Lua. >> # AppPkg/Applications/Lua/Lua.inf >> >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/Ia32/pyconfig.h >> b/AppPkg/Applications/Python/Python-2.7.10/Ia32/pyconfig.h >> index 99b3422..00cfd54 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/Ia32/pyconfig.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/Ia32/pyconfig.h >> @@ -1,6 +1,7 @@ >> /** @file >> Manually generated Python Configuration file for EDK II. >> >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> This program and the accompanying materials are licensed and made >> available under >> the terms and conditions of the BSD License that accompanies this >> distribution. >> @@ -67,6 +68,9 @@ >> /* Define to 1 if you have the 'alarm' function. */ >> #undef HAVE_ALARM >> >> +/* Define to 1 if you have the <alloca.h> header file. */ >> +#undef HAVE_ALLOCA_H >> + >> /* Define this if your time.h defines altzone. */ >> #undef HAVE_ALTZONE >> >> @@ -109,6 +113,9 @@ >> /* define to 1 if your sem_getvalue is broken. */ >> #define HAVE_BROKEN_SEM_GETVALUE 1 >> >> +/* Define if 'unsetenv' does not return an int. */ >> +#undef HAVE_BROKEN_UNSETENV >> + >> /* Define this if you have the type _Bool. */ >> #define HAVE_C99_BOOL 1 >> >> @@ -170,10 +177,10 @@ >> /* Define to 1 if you have the device macros. */ >> #undef HAVE_DEVICE_MACROS >> >> -/* Define if we have /dev/ptc. */ >> +/* Define to 1 if you have the /dev/ptc device file. */ >> #undef HAVE_DEV_PTC >> >> -/* Define if we have /dev/ptmx. */ >> +/* Define to 1 if you have the /dev/ptmx device file. */ >> #undef HAVE_DEV_PTMX >> >> /* Define to 1 if you have the <direct.h> header file. */ >> @@ -274,11 +281,11 @@ >> #undef HAVE_GAMMA >> >> /* Define if we can use gcc inline assembler to get and set x87 control word >> -*/ >> + */ >> #if defined(__GNUC__) >> #define HAVE_GCC_ASM_FOR_X87 1 >> #else >> - #undef HAVE_GCC_ASM_FOR_X87 >> +#undef HAVE_GCC_ASM_FOR_X87 >> #endif >> >> /* Define if you have the getaddrinfo function. */ >> @@ -290,6 +297,9 @@ >> /* Define this if you have flockfile(), getc_unlocked(), and funlockfile() >> */ >> #undef HAVE_GETC_UNLOCKED >> >> +/* Define to 1 if you have the 'getentropy' function. */ >> +#undef HAVE_GETENTROPY >> + >> /* Define to 1 if you have the 'getgroups' function. */ >> #undef HAVE_GETGROUPS >> >> @@ -383,6 +393,12 @@ >> /* Define to 1 if you have the 'initgroups' function. */ >> #undef HAVE_INITGROUPS >> >> +/* Define if your compiler provides int32_t. */ >> +#undef HAVE_INT32_T >> + >> +/* Define if your compiler provides int64_t. */ >> +#undef HAVE_INT64_T >> + >> /* Define to 1 if you have the <inttypes.h> header file. */ >> #define HAVE_INTTYPES_H 1 >> >> @@ -479,6 +495,9 @@ >> /* Define to 1 if you have the 'mktime' function. */ >> #define HAVE_MKTIME 1 >> >> +/* Define to 1 if you have the 'mmap' function. */ >> +#undef HAVE_MMAP >> + >> /* Define to 1 if you have the 'mremap' function. */ >> #undef HAVE_MREMAP >> >> @@ -524,6 +543,9 @@ >> /* Define if you have GNU PTH threads. */ >> #undef HAVE_PTH >> >> +/* Define to 1 if you have the 'pthread_atfork' function. */ >> +#undef HAVE_PTHREAD_ATFORK >> + >> /* Defined for Solaris 2.6 bug in pthread header. */ >> #undef HAVE_PTHREAD_DESTRUCTOR >> >> @@ -542,6 +564,9 @@ >> /* Define to 1 if you have the 'putenv' function. */ >> #undef HAVE_PUTENV >> >> +/* Define if the libcrypto has RAND_egd */ >> +#undef HAVE_RAND_EGD >> + >> /* Define to 1 if you have the 'readlink' function. */ >> #undef HAVE_READLINK >> >> @@ -679,22 +704,22 @@ >> #define HAVE_STDARG_PROTOTYPES 1 >> >> /* Define to 1 if you have the <stdint.h> header file. */ >> -#define HAVE_STDINT_H 1 >> +#define HAVE_STDINT_H 1 >> >> /* Define to 1 if you have the <stdlib.h> header file. */ >> -#define HAVE_STDLIB_H 1 >> +#define HAVE_STDLIB_H 1 >> >> /* Define to 1 if you have the 'strdup' function. */ >> -#define HAVE_STRDUP 1 >> +#define HAVE_STRDUP 1 >> >> /* Define to 1 if you have the 'strftime' function. */ >> -#define HAVE_STRFTIME 1 >> +#define HAVE_STRFTIME 1 >> >> /* Define to 1 if you have the <strings.h> header file. */ >> #undef HAVE_STRINGS_H >> >> /* Define to 1 if you have the <string.h> header file. */ >> -#define HAVE_STRING_H 1 >> +#define HAVE_STRING_H 1 >> >> /* Define to 1 if you have the <stropts.h> header file. */ >> #undef HAVE_STROPTS_H >> @@ -717,6 +742,12 @@ >> /* Define to 1 if 'st_rdev' is a member of 'struct stat'. */ >> #undef HAVE_STRUCT_STAT_ST_RDEV >> >> +/* Define to 1 if 'st_dev' is a member of 'struct stat'. */ >> +#undef HAVE_STRUCT_STAT_ST_DEV >> + >> +/* Define to 1 if 'st_ino' is a member of 'struct stat'. */ >> +#undef HAVE_STRUCT_STAT_ST_INO >> + >> /* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ >> #undef HAVE_STRUCT_TM_TM_ZONE >> >> @@ -769,13 +800,13 @@ >> #undef HAVE_SYS_NDIR_H >> >> /* Define to 1 if you have the <sys/param.h> header file. */ >> -#define HAVE_SYS_PARAM_H 1 >> +#define HAVE_SYS_PARAM_H 1 >> >> /* Define to 1 if you have the <sys/poll.h> header file. */ >> #define HAVE_SYS_POLL_H 1 >> >> /* Define to 1 if you have the <sys/resource.h> header file. */ >> -#define HAVE_SYS_RESOURCE_H 1 >> +#define HAVE_SYS_RESOURCE_H 1 >> >> /* Define to 1 if you have the <sys/select.h> header file. */ >> #define HAVE_SYS_SELECT_H 1 >> @@ -787,7 +818,7 @@ >> #undef HAVE_SYS_STATVFS_H >> >> /* Define to 1 if you have the <sys/stat.h> header file. */ >> -#define HAVE_SYS_STAT_H 1 >> +#define HAVE_SYS_STAT_H 1 >> >> /* Define to 1 if you have the <sys/termio.h> header file. */ >> #undef HAVE_SYS_TERMIO_H >> @@ -796,10 +827,10 @@ >> #undef HAVE_SYS_TIMES_H >> >> /* Define to 1 if you have the <sys/time.h> header file. */ >> -#define HAVE_SYS_TIME_H 1 >> +#define HAVE_SYS_TIME_H 1 >> >> /* Define to 1 if you have the <sys/types.h> header file. */ >> -#define HAVE_SYS_TYPES_H 1 >> +#define HAVE_SYS_TYPES_H 1 >> >> /* Define to 1 if you have the <sys/un.h> header file. */ >> #undef HAVE_SYS_UN_H >> @@ -820,7 +851,7 @@ >> #undef HAVE_TCSETPGRP >> >> /* Define to 1 if you have the 'tempnam' function. */ >> -#define HAVE_TEMPNAM 1 >> +#define HAVE_TEMPNAM 1 >> >> /* Define to 1 if you have the <termios.h> header file. */ >> #undef HAVE_TERMIOS_H >> @@ -841,10 +872,10 @@ >> #undef HAVE_TIMES >> >> /* Define to 1 if you have the 'tmpfile' function. */ >> -#define HAVE_TMPFILE 1 >> +#define HAVE_TMPFILE 1 >> >> /* Define to 1 if you have the 'tmpnam' function. */ >> -#define HAVE_TMPNAM 1 >> +#define HAVE_TMPNAM 1 >> >> /* Define to 1 if you have the 'tmpnam_r' function. */ >> #undef HAVE_TMPNAM_R >> @@ -863,8 +894,14 @@ >> /* Define this if you have tcl and TCL_UTF_MAX==6 */ >> #undef HAVE_UCS4_TCL >> >> +/* Define if your compiler provides uint32_t. */ >> +#undef HAVE_UINT32_T >> + >> +/* Define if your compiler provides uint64_t. */ >> +#undef HAVE_UINT64_T >> + >> /* Define to 1 if the system has the type 'uintptr_t'. */ >> -#define HAVE_UINTPTR_T 1 >> +#define HAVE_UINTPTR_T 1 >> >> /* Define to 1 if you have the 'uname' function. */ >> #undef HAVE_UNAME >> @@ -932,22 +969,22 @@ >> #undef MVWDELCH_IS_EXPRESSION >> >> /* Define to the address where bug reports for this package should be sent. >> */ >> -#define PACKAGE_BUGREPORT "[email protected]" >> +#define PACKAGE_BUGREPORT "[email protected]" >> >> /* Define to the full name of this package. */ >> -#define PACKAGE_NAME "EDK II Python Package" >> +#define PACKAGE_NAME "EDK II Python 2.7.10 Package" >> >> /* Define to the full name and version of this package. */ >> -#define PACKAGE_STRING "EDK II Python Package V0.8" >> +#define PACKAGE_STRING "EDK II Python 2.7.10 Package V0.1" >> >> /* Define to the one symbol short name of this package. */ >> #define PACKAGE_TARNAME "EADK_Python" >> >> /* Define to the home page for this package. */ >> -#define PACKAGE_URL "http://edk2.tianocore.org/toolkit/python" >> +#define PACKAGE_URL "http://edk2.tianocore.org/" >> >> /* Define to the version of this package. */ >> -#define PACKAGE_VERSION "V0.8" >> +#define PACKAGE_VERSION "V0.1" >> >> /* Define if POSIX semaphores aren't enabled on your system */ >> #define POSIX_SEMAPHORES_NOT_ENABLED 1 >> @@ -1043,7 +1080,7 @@ >> #define SIZEOF__BOOL 1 >> >> /* Define to 1 if you have the ANSI C header files. */ >> -#define STDC_HEADERS 1 >> +#define STDC_HEADERS 1 >> >> /* Define if you can safely include both <sys/select.h> and <sys/time.h> >> (which you can't on SCO ODT 3.0). */ >> @@ -1156,13 +1193,14 @@ >> /* This must be defined on some systems to enable large file support. */ >> #undef _LARGEFILE_SOURCE >> >> +/* This must be defined on AIX systems to enable large file support. */ >> +#undef _LARGE_FILES >> + >> /* Define to 1 if on MINIX. */ >> #undef _MINIX >> >> /* Define on NetBSD to activate all library features */ >> -#ifndef _NETBSD_SOURCE >> - #define _NETBSD_SOURCE 1 >> -#endif >> +#define _NETBSD_SOURCE 1 >> >> /* Define _OSF_SOURCE to get the makedev macro. */ >> #undef _OSF_SOURCE >> @@ -1260,3 +1298,4 @@ >> //#undef volatile >> >> #endif /*Py_PYCONFIG_H*/ >> + >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/ntpath.py b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/ntpath.py >> index 58951b9..d1ffb77 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/ntpath.py >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/ntpath.py >> @@ -1,5 +1,18 @@ >> -# Module 'ntpath' -- common operations on WinNT/Win95 pathnames >> -"""Common pathname manipulations, WindowsNT/95 version. >> + >> +# Module 'ntpath' -- common operations on WinNT/Win95 and UEFI >> pathnames. >> +# >> +# Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> +# Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> +# This program and the accompanying materials are licensed and made >> available under >> +# the terms and conditions of the BSD License that accompanies this >> distribution. >> +# The full text of the license may be found at >> +# http://opensource.org/licenses/bsd-license. >> +# >> +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> + >> + >> +"""Common pathname manipulations, WindowsNT/95 and UEFI version. >> >> Instead of importing this module directly, import os and refer to this >> module as os.path. >> @@ -93,6 +106,9 @@ def join(path, *paths): >> # Split a path in a drive specification (a drive letter followed by a >> # colon) and the path specification. >> # It is always true that drivespec + pathspec == p >> +# NOTE: for UEFI (and even Windows) you can have multiple characters to >> the left >> +# of the ':' for the device or drive spec. This is reflected in the >> modifications >> +# to splitdrive() and splitunc(). >> def splitdrive(p): >> """Split a pathname into drive/UNC sharepoint and relative path >> specifiers. >> Returns a 2-tuple (drive_or_unc, path); either part may be empty. >> @@ -130,8 +146,10 @@ def splitdrive(p): >> if index2 == -1: >> index2 = len(p) >> return p[:index2], p[index2:] >> - if normp[1] == ':': >> - return p[:2], p[2:] >> + index = p.find(':') >> + if index != -1: >> + index = index + 1 >> + return p[:index], p[index:] >> return '', p >> >> # Parse UNC paths >> @@ -143,8 +161,8 @@ def splitunc(p): >> using backslashes). unc+rest is always the input path. >> Paths containing drive letters never have an UNC part. >> """ >> - if p[1:2] == ':': >> - return '', p # Drive letter present >> + if ':' in p: >> + return '', p # Drive letter or device name present >> firstTwo = p[0:2] >> if firstTwo == '//' or firstTwo == '\\\\': >> # is a UNC path: >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/os.py b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/os.py >> index cfea71b..55180ff 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/os.py >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/os.py >> @@ -1,9 +1,22 @@ >> -r"""OS routines for NT or Posix depending on what system we're on. >> + >> +# Module 'os' -- OS routines for NT, Posix, or UEFI depending on what system >> we're on. >> +# >> +# Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> +# Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> +# This program and the accompanying materials are licensed and made >> available under >> +# the terms and conditions of the BSD License that accompanies this >> distribution. >> +# The full text of the license may be found at >> +# http://opensource.org/licenses/bsd-license. >> +# >> +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> + >> +r"""OS routines for NT, Posix, or UEFI depending on what system we're on. >> >> This exports: >> - - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc. >> - - os.path is one of the modules posixpath, or ntpath >> - - os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos' >> + - all functions from edk2, posix, nt, os2, or ce, e.g. unlink, stat, etc. >> + - os.path is one of the modules uefipath, posixpath, or ntpath >> + - os.name is 'edk2', 'posix', 'nt', 'os2', 'ce' or 'riscos' >> - os.curdir is a string representing the current directory ('.' or ':') >> - os.pardir is a string representing the parent directory ('..' or '::') >> - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\') >> @@ -113,6 +126,20 @@ elif 'riscos' in _names: >> __all__.extend(_get_exports_list(riscos)) >> del riscos >> >> +elif 'edk2' in _names: >> + name = 'edk2' >> + linesep = '\n' >> + from edk2 import * >> + try: >> + from edk2 import _exit >> + except ImportError: >> + pass >> + import ntpath as path >> + >> + import edk2 >> + __all__.extend(_get_exports_list(edk2)) >> + del edk2 >> + >> else: >> raise ImportError, 'no os specific module found' >> >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/pydoc.py b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/pydoc.py >> index d7396f0..96d6f8d 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/pydoc.py >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/pydoc.py >> @@ -1,5 +1,18 @@ >> #!/usr/bin/env python >> # -*- coding: latin-1 -*- >> + >> +# Module 'pydoc' -- Generate Python documentation in HTML or text for >> interactive use. >> +# >> +# Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> +# Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> +# This program and the accompanying materials are licensed and made >> available under >> +# the terms and conditions of the BSD License that accompanies this >> distribution. >> +# The full text of the license may be found at >> +# http://opensource.org/licenses/bsd-license. >> +# >> +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> + >> """Generate Python documentation in HTML or text for interactive use. >> >> In the Python interpreter, do "from pydoc import help" to provide online >> @@ -1385,12 +1398,16 @@ def getpager(): >> if 'PAGER' in os.environ: >> if sys.platform == 'win32': # pipes completely broken in Windows >> return lambda text: tempfilepager(plain(text), >> os.environ['PAGER']) >> + elif sys.platform == 'uefi': >> + return lambda text: tempfilepager(plain(text), >> os.environ['PAGER']) >> elif os.environ.get('TERM') in ('dumb', 'emacs'): >> return lambda text: pipepager(plain(text), os.environ['PAGER']) >> else: >> return lambda text: pipepager(text, os.environ['PAGER']) >> if os.environ.get('TERM') in ('dumb', 'emacs'): >> return plainpager >> + if sys.platform == 'uefi': >> + return plainpager >> if sys.platform == 'win32' or sys.platform.startswith('os2'): >> return lambda text: tempfilepager(plain(text), 'more <') >> if hasattr(os, 'system') and os.system('(less) 2>/dev/null') == 0: >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/site.py b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Lib/site.py >> index 4a09f3c..04dffea 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py >> @@ -4,18 +4,18 @@ >> * This module is automatically imported during initialization. * >> >> ************************************************************ >> **** >> >> +This is a UEFI-specific version of site.py. >> + >> In earlier versions of Python (up to 1.5a3), scripts or modules that >> needed to use site-specific modules would place ``import site'' >> somewhere near the top of their code. Because of the automatic >> import, this is no longer necessary (but code that does it still >> works). >> >> -This will append site-specific paths to the module search path. On >> -Unix (including Mac OSX), it starts with sys.prefix and >> +This will append site-specific paths to the module search path. It starts >> with >> sys.prefix and >> sys.exec_prefix (if different) and appends >> lib/python<version>/site-packages as well as lib/site-python. >> -On other platforms (such as Windows), it tries each of the >> -prefixes directly, as well as with lib/site-packages appended. The >> +The >> resulting directories, if they exist, are appended to sys.path, and >> also inspected for path configuration files. >> >> @@ -27,7 +27,7 @@ sys.path more than once. Blank lines and lines >> beginning with >> '#' are skipped. Lines starting with 'import' are executed. >> >> For example, suppose sys.prefix and sys.exec_prefix are set to >> -/usr/local and there is a directory /usr/local/lib/python2.5/site-packages >> +/Efi/StdLib and there is a directory >> /Efi/StdLib/lib/python27.10/site-packages >> with three subdirectories, foo, bar and spam, and two path >> configuration files, foo.pth and bar.pth. Assume foo.pth contains the >> following: >> @@ -44,8 +44,8 @@ and bar.pth contains: >> >> Then the following directories are added to sys.path, in this order: >> >> - /usr/local/lib/python2.5/site-packages/bar >> - /usr/local/lib/python2.5/site-packages/foo >> + /Efi/StdLib/lib/python27.10/site-packages/bar >> + /Efi/StdLib/lib/python27.10/site-packages/foo >> >> Note that bletch is omitted because it doesn't exist; bar precedes foo >> because bar.pth comes alphabetically before foo.pth; and spam is >> @@ -56,6 +56,15 @@ named sitecustomize, which can perform arbitrary >> additional >> site-specific customizations. If this import fails with an >> ImportError exception, it is silently ignored. >> >> +Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> +Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> +This program and the accompanying materials are licensed and made >> available under >> +the terms and conditions of the BSD License that accompanies this >> distribution. >> +The full text of the license may be found at >> +http://opensource.org/licenses/bsd-license. >> + >> +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS >> OR IMPLIED. >> """ >> >> import sys >> @@ -67,7 +76,7 @@ import traceback >> PREFIXES = [sys.prefix, sys.exec_prefix] >> # Enable per user site-packages directory >> # set it to False to disable the feature or True to force the feature >> -ENABLE_USER_SITE = None >> +ENABLE_USER_SITE = False >> >> # for distutils.commands.install >> # These values are initialized by the getuserbase() and >> getusersitepackages() >> @@ -246,12 +255,6 @@ def getusersitepackages(): >> from sysconfig import get_path >> import os >> >> - if sys.platform == 'darwin': >> - from sysconfig import get_config_var >> - if get_config_var('PYTHONFRAMEWORK'): >> - USER_SITE = get_path('purelib', 'osx_framework_user') >> - return USER_SITE >> - >> USER_SITE = get_path('purelib', '%s_user' % os.name) >> return USER_SITE >> >> @@ -261,11 +264,11 @@ def addusersitepackages(known_paths): >> Each user has its own python directory with site-packages in the >> home directory. >> """ >> - # get the per user site-package path >> - # this call will also make sure USER_BASE and USER_SITE are set >> - user_site = getusersitepackages() >> - >> if ENABLE_USER_SITE and os.path.isdir(user_site): >> + # get the per user site-package path >> + # this call will also make sure USER_BASE and USER_SITE are set >> + user_site = getusersitepackages() >> + >> addsitedir(user_site, known_paths) >> return known_paths >> >> @@ -285,25 +288,16 @@ def getsitepackages(): >> continue >> seen.add(prefix) >> >> - if sys.platform in ('os2emx', 'riscos'): >> - sitepackages.append(os.path.join(prefix, "Lib", >> "site-packages")) >> - elif os.sep == '/': >> - sitepackages.append(os.path.join(prefix, "lib", >> - "python" + sys.version[:3], >> - "site-packages")) >> - sitepackages.append(os.path.join(prefix, "lib", "site-python")) >> + ix = sys.version.find(' ') >> + if ix != -1: >> + micro = sys.version[4:ix] >> else: >> - sitepackages.append(prefix) >> - sitepackages.append(os.path.join(prefix, "lib", >> "site-packages")) >> - if sys.platform == "darwin": >> - # for framework builds *only* we add the standard Apple >> - # locations. >> - from sysconfig import get_config_var >> - framework = get_config_var("PYTHONFRAMEWORK") >> - if framework: >> - sitepackages.append( >> - os.path.join("/Library", framework, >> - sys.version[:3], "site-packages")) >> + micro = '0' >> + >> + sitepackages.append(os.path.join(prefix, "lib", >> + "python" + sys.version[0] + >> sys.version[2] + '.' + micro, >> + "site-packages")) >> + sitepackages.append(os.path.join(prefix, "lib", "site-python")) >> return sitepackages >> >> def addsitepackages(known_paths): >> @@ -315,20 +309,20 @@ def addsitepackages(known_paths): >> return known_paths >> >> def setBEGINLIBPATH(): >> - """The OS/2 EMX port has optional extension modules that do double duty >> - as DLLs (and must use the .DLL file extension) for other extensions. >> + """The UEFI port has optional extension modules that do double duty >> + as DLLs (even though they have .efi file extensions) for other >> extensions. >> The library search path needs to be amended so these will be found >> during module import. Use BEGINLIBPATH so that these are at the start >> of the library search path. >> >> """ >> dllpath = os.path.join(sys.prefix, "Lib", "lib-dynload") >> - libpath = os.environ['BEGINLIBPATH'].split(';') >> + libpath = os.environ['BEGINLIBPATH'].split(os.path.pathsep) >> if libpath[-1]: >> libpath.append(dllpath) >> else: >> libpath[-1] = dllpath >> - os.environ['BEGINLIBPATH'] = ';'.join(libpath) >> + os.environ['BEGINLIBPATH'] = os.path.pathsep.join(libpath) >> >> >> def setquit(): >> @@ -338,12 +332,7 @@ def setquit(): >> The repr of each object contains a hint at how it works. >> >> """ >> - if os.sep == ':': >> - eof = 'Cmd-Q' >> - elif os.sep == '\\': >> - eof = 'Ctrl-Z plus Return' >> - else: >> - eof = 'Ctrl-D (i.e. EOF)' >> + eof = 'Ctrl-D (i.e. EOF)' >> >> class Quitter(object): >> def __init__(self, name): >> @@ -426,12 +415,7 @@ class _Printer(object): >> def setcopyright(): >> """Set 'copyright' and 'credits' in __builtin__""" >> __builtin__.copyright = _Printer("copyright", sys.copyright) >> - if sys.platform[:4] == 'java': >> - __builtin__.credits = _Printer( >> - "credits", >> - "Jython is maintained by the Jython developers >> (www.jython.org).") >> - else: >> - __builtin__.credits = _Printer("credits", """\ >> + __builtin__.credits = _Printer("credits", """\ >> Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of >> thousands >> for supporting Python development. See www.python.org for more >> information.""") >> here = os.path.dirname(os.__file__) >> @@ -457,21 +441,6 @@ class _Helper(object): >> def sethelper(): >> __builtin__.help = _Helper() >> >> -def aliasmbcs(): >> - """On Windows, some default encodings are not provided by Python, >> - while they are always available as "mbcs" in each locale. Make >> - them usable by aliasing to "mbcs" in such a case.""" >> - if sys.platform == 'win32': >> - import locale, codecs >> - enc = locale.getdefaultlocale()[1] >> - if enc.startswith('cp'): # "cp***" ? >> - try: >> - codecs.lookup(enc) >> - except LookupError: >> - import encodings >> - encodings._cache[enc] = encodings._unknown >> - encodings.aliases.aliases[enc] = 'mbcs' >> - >> def setencoding(): >> """Set the string encoding used by the Unicode implementation. The >> default is 'ascii', but if you're willing to experiment, you can >> @@ -529,16 +498,11 @@ def main(): >> ENABLE_USER_SITE = check_enableusersite() >> known_paths = addusersitepackages(known_paths) >> known_paths = addsitepackages(known_paths) >> - if sys.platform == 'os2emx': >> - setBEGINLIBPATH() >> setquit() >> setcopyright() >> sethelper() >> - aliasmbcs() >> setencoding() >> execsitecustomize() >> - if ENABLE_USER_SITE: >> - execusercustomize() >> # Remove sys.setdefaultencoding() so that users cannot change the >> # encoding after initialization. The test for presence is needed when >> # this module is run as a script, because this code is executed twice. >> @@ -549,52 +513,19 @@ main() >> >> def _script(): >> help = """\ >> - %s [--user-base] [--user-site] >> - >> - Without arguments print some useful information >> - With arguments print the value of USER_BASE and/or USER_SITE separated >> - by '%s'. >> - >> - Exit codes with --user-base or --user-site: >> - 0 - user site directory is enabled >> - 1 - user site directory is disabled by user >> - 2 - uses site directory is disabled by super user >> - or for security reasons >> - >2 - unknown error >> + %s >> + >> + Path elements are normally separated by '%s'. >> """ >> - args = sys.argv[1:] >> - if not args: >> - print "sys.path = [" >> - for dir in sys.path: >> - print " %r," % (dir,) >> - print "]" >> - print "USER_BASE: %r (%s)" % (USER_BASE, >> - "exists" if os.path.isdir(USER_BASE) else "doesn't exist") >> - print "USER_SITE: %r (%s)" % (USER_SITE, >> - "exists" if os.path.isdir(USER_SITE) else "doesn't exist") >> - print "ENABLE_USER_SITE: %r" % ENABLE_USER_SITE >> - sys.exit(0) >> - >> - buffer = [] >> - if '--user-base' in args: >> - buffer.append(USER_BASE) >> - if '--user-site' in args: >> - buffer.append(USER_SITE) >> - >> - if buffer: >> - print os.pathsep.join(buffer) >> - if ENABLE_USER_SITE: >> - sys.exit(0) >> - elif ENABLE_USER_SITE is False: >> - sys.exit(1) >> - elif ENABLE_USER_SITE is None: >> - sys.exit(2) >> - else: >> - sys.exit(3) >> - else: >> - import textwrap >> - print textwrap.dedent(help % (sys.argv[0], os.pathsep)) >> - sys.exit(10) >> + >> + print "sys.path = [" >> + for dir in sys.path: >> + print " %r," % (dir,) >> + print "]" >> + >> + import textwrap >> + print textwrap.dedent(help % (sys.argv[0], os.pathsep)) >> + sys.exit(0) >> >> if __name__ == '__main__': >> _script() >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/_sre.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/_sre.c >> index ec98182..81d6a88 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/_sre.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/_sre.c >> @@ -2,6 +2,16 @@ >> * Secret Labs' Regular Expression Engine >> * >> * regular expression matching engine >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> + Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> * >> * partial history: >> * 1999-10-24 fl created (based on existing template matcher code) >> @@ -34,6 +44,10 @@ >> * other compatibility work. >> */ >> >> +/* Get rid of these macros to prevent collisions between EFI and Python in >> this file. */ >> +#undef RETURN_ERROR >> +#undef RETURN_SUCCESS >> + >> #ifndef SRE_RECURSIVE >> >> static char copyright[] = >> @@ -84,7 +98,7 @@ static char copyright[] = >> /* -------------------------------------------------------------------- */ >> >> #if defined(_MSC_VER) >> -#pragma optimize("agtw", on) /* doesn't seem to make much difference... */ >> +#pragma optimize("gt", on) /* doesn't seem to make much difference... */ >> #pragma warning(disable: 4710) /* who cares if functions are not inlined ;-) >> */ >> /* fastest possible local call under MSVC */ >> #define LOCAL(type) static __inline type __fastcall >> @@ -2147,8 +2161,8 @@ pattern_findall(PatternObject* self, PyObject* >> args, PyObject* kw) >> #endif >> } >> >> - if (PyErr_Occurred()) >> - goto error; >> + if (PyErr_Occurred()) >> + goto error; >> >> if (status <= 0) { >> if (status == 0) >> @@ -2284,8 +2298,8 @@ pattern_split(PatternObject* self, PyObject* args, >> PyObject* kw) >> #endif >> } >> >> - if (PyErr_Occurred()) >> - goto error; >> + if (PyErr_Occurred()) >> + goto error; >> >> if (status <= 0) { >> if (status == 0) >> @@ -2381,10 +2395,10 @@ pattern_subx(PatternObject* self, PyObject* >> ptemplate, PyObject* string, >> b = bint; >> if (ptr) { >> if (b == 1) { >> - literal = sre_literal_template((unsigned char *)ptr, n); >> + literal = sre_literal_template((unsigned char *)ptr, n); >> } else { >> #if defined(HAVE_UNICODE) >> - literal = sre_uliteral_template((Py_UNICODE *)ptr, n); >> + literal = sre_uliteral_template((Py_UNICODE *)ptr, n); >> #endif >> } >> } else { >> @@ -2436,8 +2450,8 @@ pattern_subx(PatternObject* self, PyObject* >> ptemplate, PyObject* string, >> #endif >> } >> >> - if (PyErr_Occurred()) >> - goto error; >> + if (PyErr_Occurred()) >> + goto error; >> >> if (status <= 0) { >> if (status == 0) >> @@ -2655,20 +2669,20 @@ PyDoc_STRVAR(pattern_doc, "Compiled regular >> expression objects"); >> >> static PyMethodDef pattern_methods[] = { >> {"match", (PyCFunction) pattern_match, >> METH_VARARGS|METH_KEYWORDS, >> - pattern_match_doc}, >> + pattern_match_doc}, >> {"search", (PyCFunction) pattern_search, >> METH_VARARGS|METH_KEYWORDS, >> - pattern_search_doc}, >> + pattern_search_doc}, >> {"sub", (PyCFunction) pattern_sub, METH_VARARGS|METH_KEYWORDS, >> - pattern_sub_doc}, >> + pattern_sub_doc}, >> {"subn", (PyCFunction) pattern_subn, METH_VARARGS|METH_KEYWORDS, >> - pattern_subn_doc}, >> + pattern_subn_doc}, >> {"split", (PyCFunction) pattern_split, METH_VARARGS|METH_KEYWORDS, >> - pattern_split_doc}, >> + pattern_split_doc}, >> {"findall", (PyCFunction) pattern_findall, >> METH_VARARGS|METH_KEYWORDS, >> - pattern_findall_doc}, >> + pattern_findall_doc}, >> #if PY_VERSION_HEX >= 0x02020000 >> {"finditer", (PyCFunction) pattern_finditer, METH_VARARGS, >> - pattern_finditer_doc}, >> + pattern_finditer_doc}, >> #endif >> {"scanner", (PyCFunction) pattern_scanner, METH_VARARGS}, >> {"__copy__", (PyCFunction) pattern_copy, METH_NOARGS}, >> @@ -2692,28 +2706,28 @@ statichere PyTypeObject Pattern_Type = { >> (destructor)pattern_dealloc, /*tp_dealloc*/ >> 0, /* tp_print */ >> 0, /* tp_getattrn */ >> - 0, /* tp_setattr */ >> - 0, /* tp_compare */ >> - 0, /* tp_repr */ >> - 0, /* tp_as_number */ >> - 0, /* tp_as_sequence */ >> - 0, /* tp_as_mapping */ >> - 0, /* tp_hash */ >> - 0, /* tp_call */ >> - 0, /* tp_str */ >> - 0, /* tp_getattro */ >> - 0, /* tp_setattro */ >> - 0, /* tp_as_buffer */ >> - Py_TPFLAGS_DEFAULT, /* tp_flags */ >> - pattern_doc, /* tp_doc */ >> - 0, /* tp_traverse */ >> - 0, /* tp_clear */ >> - 0, /* tp_richcompare */ >> - offsetof(PatternObject, weakreflist), /* tp_weaklistoffset */ >> - 0, /* tp_iter */ >> - 0, /* tp_iternext */ >> - pattern_methods, /* tp_methods */ >> - pattern_members, /* tp_members */ >> + 0, /* tp_setattr */ >> + 0, /* tp_compare */ >> + 0, /* tp_repr */ >> + 0, /* tp_as_number */ >> + 0, /* tp_as_sequence */ >> + 0, /* tp_as_mapping */ >> + 0, /* tp_hash */ >> + 0, /* tp_call */ >> + 0, /* tp_str */ >> + 0, /* tp_getattro */ >> + 0, /* tp_setattro */ >> + 0, /* tp_as_buffer */ >> + Py_TPFLAGS_DEFAULT, /* tp_flags */ >> + pattern_doc, /* tp_doc */ >> + 0, /* tp_traverse */ >> + 0, /* tp_clear */ >> + 0, /* tp_richcompare */ >> + offsetof(PatternObject, weakreflist), /* tp_weaklistoffset */ >> + 0, /* tp_iter */ >> + 0, /* tp_iternext */ >> + pattern_methods, /* tp_methods */ >> + pattern_members, /* tp_members */ >> }; >> >> static int _validate(PatternObject *self); /* Forward */ >> @@ -3756,9 +3770,9 @@ static PyTypeObject Match_Type = { >> 0, /* tp_weaklistoffset */ >> 0, /* tp_iter */ >> 0, /* tp_iternext */ >> - match_methods, /* tp_methods */ >> - match_members, /* tp_members */ >> - match_getset, /* tp_getset */ >> + match_methods, /* tp_methods */ >> + match_members, /* tp_members */ >> + match_getset, /* tp_getset */ >> }; >> >> static PyObject* >> @@ -3909,7 +3923,7 @@ static PyMethodDef scanner_methods[] = { >> >> #define SCAN_OFF(x) offsetof(ScannerObject, x) >> static PyMemberDef scanner_members[] = { >> - {"pattern", T_OBJECT, SCAN_OFF(pattern), READONLY}, >> + {"pattern", T_OBJECT, SCAN_OFF(pattern), READONLY}, >> {NULL} /* Sentinel */ >> }; >> >> @@ -3918,31 +3932,31 @@ statichere PyTypeObject Scanner_Type = { >> 0, "_" SRE_MODULE ".SRE_Scanner", >> sizeof(ScannerObject), 0, >> (destructor)scanner_dealloc, /*tp_dealloc*/ >> - 0, /* tp_print */ >> - 0, /* tp_getattr */ >> - 0, /* tp_setattr */ >> - 0, /* tp_reserved */ >> - 0, /* tp_repr */ >> - 0, /* tp_as_number */ >> - 0, /* tp_as_sequence */ >> - 0, /* tp_as_mapping */ >> - 0, /* tp_hash */ >> - 0, /* tp_call */ >> - 0, /* tp_str */ >> - 0, /* tp_getattro */ >> - 0, /* tp_setattro */ >> - 0, /* tp_as_buffer */ >> - Py_TPFLAGS_DEFAULT, /* tp_flags */ >> - 0, /* tp_doc */ >> - 0, /* tp_traverse */ >> - 0, /* tp_clear */ >> - 0, /* tp_richcompare */ >> - 0, /* tp_weaklistoffset */ >> - 0, /* tp_iter */ >> - 0, /* tp_iternext */ >> - scanner_methods, /* tp_methods */ >> - scanner_members, /* tp_members */ >> - 0, /* tp_getset */ >> + 0, /* tp_print */ >> + 0, /* tp_getattr */ >> + 0, /* tp_setattr */ >> + 0, /* tp_reserved */ >> + 0, /* tp_repr */ >> + 0, /* tp_as_number */ >> + 0, /* tp_as_sequence */ >> + 0, /* tp_as_mapping */ >> + 0, /* tp_hash */ >> + 0, /* tp_call */ >> + 0, /* tp_str */ >> + 0, /* tp_getattro */ >> + 0, /* tp_setattro */ >> + 0, /* tp_as_buffer */ >> + Py_TPFLAGS_DEFAULT, /* tp_flags */ >> + 0, /* tp_doc */ >> + 0, /* tp_traverse */ >> + 0, /* tp_clear */ >> + 0, /* tp_richcompare */ >> + 0, /* tp_weaklistoffset */ >> + 0, /* tp_iter */ >> + 0, /* tp_iternext */ >> + scanner_methods, /* tp_methods */ >> + scanner_members, /* tp_members */ >> + 0, /* tp_getset */ >> }; >> >> static PyObject* >> @@ -4000,7 +4014,7 @@ PyMODINIT_FUNC init_sre(void) >> >> m = Py_InitModule("_" SRE_MODULE, _functions); >> if (m == NULL) >> - return; >> + return; >> d = PyModule_GetDict(m); >> >> x = PyInt_FromLong(SRE_MAGIC); >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/addrinfo.h b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/addrinfo.h >> index 670b173..9f5a614 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/addrinfo.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/addrinfo.h >> @@ -1,4 +1,13 @@ >> -/* >> +/** @file >> + Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> + >> * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. >> * All rights reserved. >> * >> @@ -25,7 +34,7 @@ >> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN >> ANY WAY >> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY >> OF >> * SUCH DAMAGE. >> - */ >> +**/ >> >> #ifndef HAVE_GETADDRINFO >> >> @@ -123,49 +132,51 @@ >> >> #endif /* !HAVE_GETNAMEINFO */ >> >> -#ifndef HAVE_ADDRINFO >> -struct addrinfo { >> - int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ >> - int ai_family; /* PF_xxx */ >> - int ai_socktype; /* SOCK_xxx */ >> - int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ >> - size_t ai_addrlen; /* length of ai_addr */ >> - char *ai_canonname; /* canonical name for hostname */ >> - struct sockaddr *ai_addr; /* binary address */ >> - struct addrinfo *ai_next; /* next structure in linked list */ >> -}; >> -#endif /* !HAVE_ADDRINFO */ >> - >> -#ifndef HAVE_SOCKADDR_STORAGE >> -/* >> - * RFC 2553: protocol-independent placeholder for socket addresses >> - */ >> -#define _SS_MAXSIZE 128 >> -#ifdef HAVE_LONG_LONG >> -#define _SS_ALIGNSIZE (sizeof(PY_LONG_LONG)) >> -#else >> -#define _SS_ALIGNSIZE (sizeof(double)) >> -#endif /* HAVE_LONG_LONG */ >> -#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(u_char) * 2) >> -#define _SS_PAD2SIZE (_SS_MAXSIZE - sizeof(u_char) * 2 - \ >> - _SS_PAD1SIZE - _SS_ALIGNSIZE) >> - >> -struct sockaddr_storage { >> -#ifdef HAVE_SOCKADDR_SA_LEN >> - unsigned char ss_len; /* address length */ >> - unsigned char ss_family; /* address family */ >> -#else >> - unsigned short ss_family; /* address family */ >> -#endif /* HAVE_SOCKADDR_SA_LEN */ >> - char __ss_pad1[_SS_PAD1SIZE]; >> -#ifdef HAVE_LONG_LONG >> - PY_LONG_LONG __ss_align; /* force desired structure storage >> alignment */ >> -#else >> - double __ss_align; /* force desired structure storage >> alignment */ >> -#endif /* HAVE_LONG_LONG */ >> - char __ss_pad2[_SS_PAD2SIZE]; >> -}; >> -#endif /* !HAVE_SOCKADDR_STORAGE */ >> +#ifndef _SYS_SOCKET_H_ >> + #ifndef HAVE_ADDRINFO >> + struct addrinfo { >> + int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ >> + int ai_family; /* PF_xxx */ >> + int ai_socktype; /* SOCK_xxx */ >> + int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ >> + size_t ai_addrlen; /* length of ai_addr */ >> + char *ai_canonname; /* canonical name for hostname */ >> + struct sockaddr *ai_addr; /* binary address */ >> + struct addrinfo *ai_next; /* next structure in linked >> list */ >> + }; >> + #endif /* !HAVE_ADDRINFO */ >> + >> + #ifndef HAVE_SOCKADDR_STORAGE >> + /* >> + * RFC 2553: protocol-independent placeholder for socket addresses >> + */ >> + #define _SS_MAXSIZE 128 >> + #ifdef HAVE_LONG_LONG >> + #define _SS_ALIGNSIZE (sizeof(PY_LONG_LONG)) >> + #else >> + #define _SS_ALIGNSIZE (sizeof(double)) >> + #endif /* HAVE_LONG_LONG */ >> + #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(u_char) * 2) >> + #define _SS_PAD2SIZE (_SS_MAXSIZE - sizeof(u_char) * 2 - \ >> + _SS_PAD1SIZE - _SS_ALIGNSIZE) >> + >> + struct sockaddr_storage { >> + #ifdef HAVE_SOCKADDR_SA_LEN >> + unsigned char ss_len; /* address length */ >> + unsigned char ss_family; /* address family */ >> + #else >> + unsigned short ss_family; /* address family */ >> + #endif /* HAVE_SOCKADDR_SA_LEN */ >> + char __ss_pad1[_SS_PAD1SIZE]; >> + #ifdef HAVE_LONG_LONG >> + PY_LONG_LONG __ss_align; /* force desired structure >> storage >> alignment */ >> + #else >> + double __ss_align; /* force desired structure storage >> alignment */ >> + #endif /* HAVE_LONG_LONG */ >> + char __ss_pad2[_SS_PAD2SIZE]; >> + }; >> + #endif /* !HAVE_SOCKADDR_STORAGE */ >> +#endif /* _SYS_SOCKET_H_ */ >> >> #ifdef __cplusplus >> extern "C" { >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/errnomodule.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/errnomodule.c >> index 87ebab0..9e1c236 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/errnomodule.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/errnomodule.c >> @@ -1,5 +1,14 @@ >> +/* Errno module >> >> -/* Errno module */ >> + Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> +*/ >> >> #include "Python.h" >> >> @@ -783,8 +792,52 @@ initerrno(void) >> #ifdef WSAN >> inscode(d, ds, de, "WSAN", WSAN, "Error WSAN"); >> #endif >> + >> +/* These symbols are added for EDK II support. */ >> +#ifdef EMINERRORVAL >> + inscode(d, ds, de, "EMINERRORVAL", EMINERRORVAL, "Lowest valid error >> value"); >> +#endif >> #ifdef ENOTSUP >> - inscode(d, ds, de, "ENOTSUP", ENOTSUP, "Operation not supported"); >> + inscode(d, ds, de, "ENOTSUP", ENOTSUP, "Operation not supported"); >> +#endif >> +#ifdef EBADRPC >> + inscode(d, ds, de, "EBADRPC", EBADRPC, "RPC struct is bad"); >> +#endif >> +#ifdef ERPCMISMATCH >> + inscode(d, ds, de, "ERPCMISMATCH", ERPCMISMATCH, "RPC version >> wrong"); >> +#endif >> +#ifdef EPROGUNAVAIL >> + inscode(d, ds, de, "EPROGUNAVAIL", EPROGUNAVAIL, "RPC prog. not avail"); >> +#endif >> +#ifdef EPROGMISMATCH >> + inscode(d, ds, de, "EPROGMISMATCH", EPROGMISMATCH, "Program version >> wrong"); >> +#endif >> +#ifdef EPROCUNAVAIL >> + inscode(d, ds, de, "EPROCUNAVAIL", EPROCUNAVAIL, "Bad procedure for >> program"); >> +#endif >> +#ifdef EFTYPE >> + inscode(d, ds, de, "EFTYPE", EFTYPE, "Inappropriate file type or format"); >> +#endif >> +#ifdef EAUTH >> + inscode(d, ds, de, "EAUTH", EAUTH, "Authentication error"); >> +#endif >> +#ifdef ENEEDAUTH >> + inscode(d, ds, de, "ENEEDAUTH", ENEEDAUTH, "Need authenticator"); >> +#endif >> +#ifdef ECANCELED >> + inscode(d, ds, de, "ECANCELED", ECANCELED, "Operation canceled"); >> +#endif >> +#ifdef ENOATTR >> + inscode(d, ds, de, "ENOATTR", ENOATTR, "Attribute not found"); >> +#endif >> +#ifdef EDOOFUS >> + inscode(d, ds, de, "EDOOFUS", EDOOFUS, "Programming Error"); >> +#endif >> +#ifdef EBUFSIZE >> + inscode(d, ds, de, "EBUFSIZE", EBUFSIZE, "Buffer too small to hold >> result"); >> +#endif >> +#ifdef EMAXERRORVAL >> + inscode(d, ds, de, "EMAXERRORVAL", EMAXERRORVAL, "One more than the >> highest defined error value"); >> #endif >> >> Py_DECREF(de); >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/expat/expat_external.h >> b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/expat/expat_external.h >> index f337e1c..8645cc8 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/expat/expat_external.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/expat/expat_external.h >> @@ -9,7 +9,9 @@ >> >> /* Namespace external symbols to allow multiple libexpat version to >> co-exist. */ >> -#include "pyexpatns.h" >> +#if !defined(UEFI_C_SOURCE) >> + #include "pyexpatns.h" >> +#endif >> >> #if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && >> !defined(__CYGWIN__) >> #define XML_USE_MSC_EXTENSIONS 1 >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/getpath.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/getpath.c >> index adf0b87..f1f4e47 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/getpath.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/getpath.c >> @@ -1,8 +1,19 @@ >> /** @file >> Return the initial module search path. >> >> + This file is based upon the Modules/getpath.c file from the Python >> distribution >> + but has had everything not exactly necessary for operation on EDK II >> stripped >> + out. >> + >> Search in specified locations for the associated Python libraries. >> >> + For the EDK II, UEFI, implementation of Python, PREFIX and EXEC_PREFIX >> + are set as follows: >> + PREFIX = /Efi/StdLib >> + EXEC_PREFIX = PREFIX >> + >> + The volume is assumed to be the current volume when Python was >> started. >> + >> Py_GetPath returns module_search_path. >> Py_GetPrefix returns PREFIX >> Py_GetExec_Prefix returns PREFIX >> @@ -11,16 +22,13 @@ >> These are built dynamically so that the proper volume name can be >> prefixed >> to the paths. >> >> - For the EDK II, UEFI, implementation of Python, PREFIX and EXEC_PREFIX >> - are set as follows: >> - PREFIX = /Efi/StdLib >> - EXEC_PREFIX = PREFIX >> - >> - The following final paths are assumed: >> + The following final paths (for Python 2.7.10) are assumed: >> /Efi/Tools/Python.efi The Python executable. >> - /Efi/StdLib/lib/python.VERSION The platform independent >> Python >> modules. >> - /Efi/StdLib/lib/python.VERSION/dynalib Dynamically loadable Python >> extension modules. >> + /Efi/StdLib/lib/python27.10 The version dependent Python >> modules. >> + /Efi/StdLib/lib/python.27 The version independent >> Python >> modules. >> + /Efi/StdLib/lib/python27.10/lib-dynload Dynamically loadable Python >> extension modules. >> >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> This program and the accompanying materials are licensed and made >> available under >> the terms and conditions of the BSD License that accompanies this >> distribution. >> @@ -34,13 +42,12 @@ >> #include <osdefs.h> >> #include <ctype.h> >> >> -#ifdef __cplusplus >> - extern "C" { >> -#endif >> +#define SIFY_I( x ) #x >> +#define SIFY( y ) SIFY_I( y ) >> >> /* VERSION must be at least two characters long. */ >> #ifndef VERSION >> - #define VERSION "27" >> + #define VERSION SIFY(PY_MAJOR_VERSION) SIFY(PY_MINOR_VERSION) >> #endif >> >> #ifndef VPATH >> @@ -61,20 +68,19 @@ >> #endif >> >> #ifndef LIBPYTHON >> - #define LIBPYTHON "lib/python." VERSION >> + #define LIBPYTHON "lib/python" VERSION "." SIFY(PY_MICRO_VERSION) >> #endif >> >> #ifndef PYTHONPATH >> - #ifdef HAVE_ENVIRONMENT_OPS >> - #define PYTHONPATH PREFIX LIBPYTHON sDELIM \ >> - EXEC_PREFIX LIBPYTHON "/lib-dynload" >> - #else >> - #define PYTHONPATH LIBPYTHON >> - #endif >> + #define PYTHONPATH LIBPYTHON >> #endif >> >> #ifndef LANDMARK >> -#define LANDMARK "os.py" >> + #define LANDMARK "os.py" >> +#endif >> + >> +#ifdef __cplusplus >> + extern "C" { >> #endif >> >> static char prefix[MAXPATHLEN+1]; >> @@ -94,11 +100,7 @@ static char volume_name[32] = { 0 }; >> static int >> is_sep(char ch) >> { >> -#ifdef ALTSEP >> return ch == SEP || ch == ALTSEP; >> -#else >> - return ch == SEP; >> -#endif >> } >> >> /** Reduce a path by its last element. >> @@ -117,77 +119,6 @@ reduce(char *dir) >> dir[i] = '\0'; >> } >> >> -#ifndef UEFI_C_SOURCE >> -/** Does filename point to a file and not directory? >> - >> - @param[in] filename The fully qualified path to the object to >> test. >> - >> - @retval 0 Filename was not found, or is a directory. >> - @retval 1 Filename refers to a regular file. >> -**/ >> -static int >> -isfile(char *filename) >> -{ >> - struct stat buf; >> - if (stat(filename, &buf) != 0) { >> - return 0; >> - } >> - //if (!S_ISREG(buf.st_mode)) >> - if (S_ISDIR(buf.st_mode)) { >> - return 0; >> - } >> - return 1; >> -} >> - >> -/** Determine if filename refers to a Python module. >> - >> - A Python module is indicated if the file exists, or if the file with >> - 'o' or 'c' appended exists. >> - >> - @param[in] filename The fully qualified path to the object to >> test. >> - >> - @retval 0 >> -**/ >> -static int >> -ismodule(char *filename) >> -{ >> - if (isfile(filename)) { >> - //if (Py_VerboseFlag) PySys_WriteStderr("%s[%d]: file = \"%s\"\n", >> __func__, __LINE__, filename); >> - return 1; >> - } >> - >> - /* Check for the compiled version of prefix. */ >> - if (strlen(filename) < MAXPATHLEN) { >> - strcat(filename, Py_OptimizeFlag ? "o" : "c"); >> - if (isfile(filename)) { >> - return 1; >> - } >> - } >> - return 0; >> -} >> - >> -/** Does filename point to a directory? >> - >> - @param[in] filename The fully qualified path to the object to >> test. >> - >> - @retval 0 Filename was not found, or is not a regular file. >> - @retval 1 Filename refers to a directory. >> -**/ >> -static int >> -isdir(char *filename) >> -{ >> - struct stat buf; >> - >> - if (stat(filename, &buf) != 0) >> - return 0; >> - >> - if (!S_ISDIR(buf.st_mode)) >> - return 0; >> - >> - return 1; >> -} >> -#endif /* UEFI_C_SOURCE */ >> - >> /** Determine if a path is absolute, or not. >> An absolute path consists of a volume name, "VOL:", followed by a rooted >> path, >> "/path/elements". If both of these components are present, the path is >> absolute. >> @@ -466,7 +397,7 @@ calculate_path(void) >> char *pythonpath = PYTHONPATH; >> char *rtpypath = Py_GETENV("PYTHONPATH"); >> //char *home = Py_GetPythonHome(); >> - char *path = getenv("PATH"); >> + char *path = getenv("path"); >> char *prog = Py_GetProgramName(); >> char argv0_path[MAXPATHLEN+1]; >> char zip_path[MAXPATHLEN+1]; >> @@ -531,9 +462,9 @@ calculate_path(void) >> This is the full path to the platform independent libraries. >> >> ############################################################ >> ############### */ >> >> - strncpy(prefix, volume_name, MAXPATHLEN); >> - joinpath(prefix, PREFIX); >> - joinpath(prefix, lib_python); >> + strncpy(prefix, volume_name, MAXPATHLEN); >> + joinpath(prefix, PREFIX); >> + joinpath(prefix, lib_python); >> >> /* >> ############################################################ >> ############### >> Build the FULL path to the zipped-up Python library. >> @@ -551,10 +482,10 @@ calculate_path(void) >> Build the FULL path to dynamically loadable libraries. >> >> ############################################################ >> ############### */ >> >> - strncpy(exec_prefix, volume_name, MAXPATHLEN); >> - joinpath(exec_prefix, EXEC_PREFIX); >> - joinpath(exec_prefix, lib_python); >> - joinpath(exec_prefix, "lib-dynload"); >> + strncpy(exec_prefix, volume_name, MAXPATHLEN); // "fs0:" >> + joinpath(exec_prefix, EXEC_PREFIX); // "fs0:/Efi/StdLib" >> + joinpath(exec_prefix, lib_python); // >> "fs0:/Efi/StdLib/lib/python.27" >> + joinpath(exec_prefix, "lib-dynload"); // >> "fs0:/Efi/StdLib/lib/python.27/lib-dynload" >> >> /* >> ############################################################ >> ############### >> Build the module search path. >> @@ -573,9 +504,9 @@ calculate_path(void) >> strcpy(prefix, volume_name); >> } >> bufsz = strlen(prefix); >> - if(prefix[bufsz-1] == ':') { >> - prefix[bufsz] = SEP; >> - prefix[bufsz+1] = 0; >> + if(prefix[bufsz-1] == ':') { // if prefix consists solely of a >> volume_name >> + prefix[bufsz] = SEP; // then append SEP indicating the >> root >> directory >> + prefix[bufsz+1] = 0; // and ensure the new string is >> terminated >> } >> >> /* Calculate size of return buffer. >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/main.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/main.c >> index ef9b245..f9b7cbf 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/main.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/main.c >> @@ -1,4 +1,8 @@ >> -/* Python interpreter main program */ >> +/** @file >> + Python interpreter main program. >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> +**/ >> >> #include "Python.h" >> #include "osdefs.h" >> @@ -40,7 +44,7 @@ static char **orig_argv; >> static int orig_argc; >> >> /* command line options */ >> -#define BASE_OPTS "3bBc:dEhiJm:OQ:RsStuUvVW:xX?" >> +#define BASE_OPTS "#3bBc:dEhiJm:OQ:sStuUvVW:xX?" >> >> #ifndef RISCOS >> #define PROGRAM_OPTS BASE_OPTS >> @@ -59,6 +63,7 @@ static char *usage_line = >> /* Long usage message, split into parts < 512 bytes */ >> static char *usage_1 = "\ >> Options and arguments (and corresponding environment variables):\n\ >> +-# : alias stderr to stdout for platforms without STDERR output.\n\ >> -B : don't write .py[co] files on import; also >> PYTHONDONTWRITEBYTECODE=x\n\ >> -c cmd : program passed in as string (terminates option list)\n\ >> -d : debug output from parser; also PYTHONDEBUG=x\n\ >> @@ -71,9 +76,6 @@ static char *usage_2 = "\ >> -m mod : run library module as a script (terminates option list)\n\ >> -O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ >> -OO : remove doc-strings in addition to the -O optimizations\n\ >> --R : use a pseudo-random salt to make hash() values of various types >> be\n\ >> - unpredictable between separate invocations of the interpreter, >> as\n\ >> - a defense against denial-of-service attacks\n\ >> -Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew\n\ >> -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ >> -S : don't imply 'import site' on initialization\n\ >> @@ -102,15 +104,9 @@ PYTHONPATH : '%c'-separated list of directories >> prefixed to the\n\ >> static char *usage_5 = "\ >> PYTHONHOME : alternate <prefix> directory (or >> <prefix>%c<exec_prefix>).\n\ >> The default module search path uses %s.\n\ >> -PYTHONCASEOK : ignore case in 'import' statements (Windows).\n\ >> +PYTHONCASEOK : ignore case in 'import' statements (UEFI default).\n\ >> PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n\ >> "; >> -static char *usage_6 = "\ >> -PYTHONHASHSEED: if this variable is set to 'random', the effect is the >> same\n\ >> - as specifying the -R option: a random value is used to seed the hashes >> of\n\ >> - str, bytes and datetime objects. It can also be set to an integer\n\ >> - in the range [0,4294967295] to get hash values with a predictable >> seed.\n\ >> -"; >> >> >> static int >> @@ -127,7 +123,6 @@ usage(int exitcode, char* program) >> fputs(usage_3, f); >> fprintf(f, usage_4, DELIM); >> fprintf(f, usage_5, DELIM, PYTHONHOMEHELP); >> - fputs(usage_6, f); >> } >> #if defined(__VMS) >> if (exitcode == 0) { >> @@ -251,6 +246,7 @@ Py_Main(int argc, char **argv) >> int help = 0; >> int version = 0; >> int saw_unbuffered_flag = 0; >> + int saw_pound_flag = 0; >> PyCompilerFlags cf; >> >> cf.cf_flags = 0; >> @@ -266,26 +262,27 @@ Py_Main(int argc, char **argv) >> (including -W and -X options). */ >> _PyOS_opterr = 0; /* prevent printing the error in 1st pass */ >> while ((c = _PyOS_GetOpt(argc, argv, PROGRAM_OPTS)) != EOF) { >> - if (c == 'm' || c == 'c') { >> - /* -c / -m is the last option: following arguments are >> - not interpreter options. */ >> - break; >> - } >> - switch (c) { >> + if (c == 'm' || c == 'c') { >> + /* -c / -m is the last option: following arguments are >> + not interpreter options. */ >> + break; >> + } >> + switch (c) { >> + case '#': >> + if (saw_pound_flag == 0) { >> + if(freopen("stdout:", "w", stderr) == NULL) { >> + puts("ERROR: Unable to reopen stderr as an alias to stdout!"); >> + } >> + saw_pound_flag = 0xFF; >> + } >> + break; >> case 'E': >> - Py_IgnoreEnvironmentFlag++; >> - break; >> - case 'R': >> - Py_HashRandomizationFlag++; >> - break; >> - } >> + Py_IgnoreEnvironmentFlag++; >> + break; >> + default: >> + break; >> + } >> } >> - /* The variable is only tested for existence here; _PyRandom_Init will >> - check its value further. */ >> - if (!Py_HashRandomizationFlag && >> - (p = Py_GETENV("PYTHONHASHSEED")) && *p != '\0') >> - Py_HashRandomizationFlag = 1; >> - >> _PyRandom_Init(); >> >> PySys_ResetWarnOptions(); >> @@ -426,7 +423,7 @@ Py_Main(int argc, char **argv) >> PySys_AddWarnOption(_PyOS_optarg); >> break; >> >> - case 'R': >> + case '#': >> /* Already handled above */ >> break; >> >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/selectmodule.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/selectmodule.c >> index 2707b05..eb0cb0d 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/selectmodule.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/selectmodule.c >> @@ -1,9 +1,20 @@ >> -/* select - Module containing unix select(2) call. >> - Under Unix, the file descriptors are small integers. >> - Under Win32, select only exists for sockets, and sockets may >> - have any value except INVALID_SOCKET. >> - Under BeOS, we suffer the same dichotomy as Win32; sockets can be >> anything >> - >= 0. >> +/* @file >> + select - Module containing unix select(2) call. >> + Under Unix, the file descriptors are small integers. >> + Under Win32, select only exists for sockets, and sockets may >> + have any value except INVALID_SOCKET. >> + Under BeOS, we suffer the same dichotomy as Win32; sockets can be >> anything >> + >= 0. >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> + Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> */ >> >> #include "Python.h" >> @@ -107,7 +118,7 @@ seq2set(PyObject *seq, fd_set *set, pylist >> fd2obj[FD_SETSIZE + 1]) >> v = PyObject_AsFileDescriptor( o ); >> if (v == -1) goto finally; >> >> -#if defined(_MSC_VER) >> +#if defined(_MSC_VER) && !defined(UEFI_C_SOURCE) >> max = 0; /* not used for Win32 */ >> #else /* !_MSC_VER */ >> if (!_PyIsSelectable_fd(v)) { >> @@ -1236,17 +1247,17 @@ static PyTypeObject kqueue_queue_Type; >> * kevent is not standard and its members vary across BSDs. >> */ >> #if !defined(__OpenBSD__) >> -# define IDENT_TYPE T_UINTPTRT >> -# define IDENT_CAST Py_intptr_t >> -# define DATA_TYPE T_INTPTRT >> +# define IDENT_TYPE T_UINTPTRT >> +# define IDENT_CAST Py_intptr_t >> +# define DATA_TYPE T_INTPTRT >> # define DATA_FMT_UNIT INTPTRT_FMT_UNIT >> -# define IDENT_AsType PyLong_AsUintptr_t >> +# define IDENT_AsType PyLong_AsUintptr_t >> #else >> -# define IDENT_TYPE T_UINT >> -# define IDENT_CAST int >> -# define DATA_TYPE T_INT >> +# define IDENT_TYPE T_UINT >> +# define IDENT_CAST int >> +# define DATA_TYPE T_INT >> # define DATA_FMT_UNIT "i" >> -# define IDENT_AsType PyLong_AsUnsignedLong >> +# define IDENT_AsType PyLong_AsUnsignedLong >> #endif >> >> /* Unfortunately, we can't store python objects in udata, because >> @@ -1298,7 +1309,7 @@ kqueue_event_init(kqueue_event_Object *self, >> PyObject *args, PyObject *kwds) >> >> if (PyLong_Check(pfd) >> #if IDENT_TYPE == T_UINT >> - && PyLong_AsUnsignedLong(pfd) <= UINT_MAX >> + && PyLong_AsUnsignedLong(pfd) <= UINT_MAX >> #endif >> ) { >> self->e.ident = IDENT_AsType(pfd); >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/zlib/gzguts.h b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/zlib/gzguts.h >> index d87659d..b0d7862 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/zlib/gzguts.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/zlib/gzguts.h >> @@ -1,4 +1,5 @@ >> /* gzguts.h -- zlib internal header definitions for gz* operations >> + * Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler >> * For conditions of distribution and use, see copyright notice in zlib.h >> */ >> @@ -31,7 +32,7 @@ >> # include <stddef.h> >> #endif >> >> -#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32) >> +#if (defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)) && >> !defined(UEFI_C_SOURCE) >> # include <io.h> >> #endif >> >> @@ -42,6 +43,11 @@ >> # define close _close >> #endif >> >> +// Needed to get the declarations for open, read, write, close >> +#ifdef UEFI_C_SOURCE >> +# include <unistd.h> >> +#endif >> + >> #ifdef NO_DEFLATE /* for compatibility with old definition */ >> # define NO_GZCOMPRESS >> #endif >> @@ -99,7 +105,7 @@ >> Microsoft more than a decade later!), _snprintf does not guarantee null >> termination of the result -- however this is only used in gzlib.c where >> the result is assured to fit in the space provided */ >> -#ifdef _MSC_VER >> +#if defined(_MSC_VER) && !defined(UEFI_C_SOURCE) >> # define snprintf _snprintf >> #endif >> >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/zlib/zutil.h b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Modules/zlib/zutil.h >> index 24ab06b..735e2b6 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/zlib/zutil.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Modules/zlib/zutil.h >> @@ -1,7 +1,10 @@ >> -/* zutil.h -- internal interface and configuration of the compression >> library >> +/** @file >> + zutil.h -- internal interface and configuration of the compression library >> + >> + Copyright (C) 2015, Daryl McDaniel.<BR> >> * Copyright (C) 1995-2013 Jean-loup Gailly. >> * For conditions of distribution and use, see copyright notice in zlib.h >> - */ >> +**/ >> >> /* WARNING: this file should *not* be used by applications. It is >> part of the implementation of the compression library and is >> @@ -21,7 +24,7 @@ >> >> #include "zlib.h" >> >> -#if defined(STDC) && !defined(Z_SOLO) >> +#if defined(UEFI_C_SOURCE) || (defined(STDC) && !defined(Z_SOLO)) >> # if !(defined(_WIN32_WCE) && defined(_MSC_VER)) >> # include <stddef.h> >> # endif >> @@ -149,7 +152,7 @@ extern z_const char * const z_errmsg[10]; /* >> indexed by 2-zlib_error */ >> # define fdopen(fd,mode) NULL /* No fdopen() */ >> #endif >> >> -#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX >> +#if !defined(UEFI_C_SOURCE) && (defined(_MSC_VER) && (_MSC_VER > >> 600)) && !defined(__INTERIX) >> # if defined(_WIN32_WCE) >> # define fdopen(fd,mode) NULL /* No fdopen() */ >> # ifndef _PTRDIFF_T_DEFINED >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Objects/longobject.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Objects/longobject.c >> index 405be2e..28a80b6 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Objects/longobject.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Objects/longobject.c >> @@ -1,4 +1,15 @@ >> -/* Long (arbitrary precision) integer object implementation */ >> +/** @file >> + Long (arbitrary precision) integer object implementation. >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> +**/ >> >> /* XXX The functional organization of this file is terrible */ >> >> @@ -24,6 +35,7 @@ >> */ >> #define FIVEARY_CUTOFF 8 >> >> +#undef ABS >> #define ABS(x) ((x) < 0 ? -(x) : (x)) >> >> #undef MIN >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Objects/stringlib/localeutil.h b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Objects/stringlib/localeutil.h >> index f548133..df8d8cc 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Objects/stringlib/localeutil.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Objects/stringlib/localeutil.h >> @@ -1,10 +1,25 @@ >> -/* stringlib: locale related helpers implementation */ >> +/** @file >> + stringlib: locale related helpers implementation. >> + >> + Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> +**/ >> >> #ifndef STRINGLIB_LOCALEUTIL_H >> #define STRINGLIB_LOCALEUTIL_H >> >> #include <locale.h> >> >> +// Prevent conflicts with EFI >> +#undef MAX >> +#undef MIN >> + >> #define MAX(x, y) ((x) < (y) ? (y) : (x)) >> #define MIN(x, y) ((x) < (y) ? (x) : (y)) >> >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/getcopyright.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Python/getcopyright.c >> index 913e1d2..90101bc 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/getcopyright.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/getcopyright.c >> @@ -1,9 +1,27 @@ >> -/* Return the copyright string. This is updated manually. */ >> +/** @file >> + Return the copyright string. This is updated manually. >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> + Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> +**/ >> >> #include "Python.h" >> >> -static char cprt[] = >> +static char cprt[] = >> "\ >> +Copyright (c) 2015 Daryl McDaniel.\n\ >> +All Rights Reserved.\n\ >> +\n\ >> +Copyright (c) 2010-2014 Intel Corporation.\n\ >> +All Rights Reserved.\n\ >> +\n\ >> Copyright (c) 2001-2015 Python Software Foundation.\n\ >> All Rights Reserved.\n\ >> \n\ >> @@ -19,5 +37,5 @@ All Rights Reserved."; >> const char * >> Py_GetCopyright(void) >> { >> - return cprt; >> + return cprt; >> } >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/marshal.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Python/marshal.c >> index 6b285aa..700516e 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/marshal.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/marshal.c >> @@ -1,8 +1,18 @@ >> - >> -/* Write Python objects to files and read them back. >> - This is intended for writing and reading compiled Python code only; >> - a true persistent storage facility would be much harder, since >> - it would have to take circular links and sharing into account. */ >> +/** @file >> + Write Python objects to files and read them back. >> + This is intended for writing and reading compiled Python code only; >> + a true persistent storage facility would be much harder, since >> + it would have to take circular links and sharing into account. >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> +**/ >> >> #define PY_SSIZE_T_CLEAN >> >> @@ -11,6 +21,7 @@ >> #include "code.h" >> #include "marshal.h" >> >> +#undef ABS >> #define ABS(x) ((x) < 0 ? -(x) : (x)) >> >> /* High water mark to determine when the marshalled object is dangerously >> deep >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/random.c b/AppPkg/Applications/Python/Python- >> 2.7.10/PyMod-2.7.10/Python/random.c >> index d94f89a..9a3cfd6 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/random.c >> +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod- >> 2.7.10/Python/random.c >> @@ -1,3 +1,15 @@ >> +/** @file >> + >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> + This program and the accompanying materials are licensed and made >> available under >> + the terms and conditions of the BSD License that accompanies this >> distribution. >> + The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license. >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >> BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >> EXPRESS OR IMPLIED. >> +**/ >> + >> #include "Python.h" >> #ifdef MS_WINDOWS >> #include <windows.h> >> @@ -153,8 +165,12 @@ vms_urandom(unsigned char *buffer, Py_ssize_t >> size, int raise) >> >> static struct { >> int fd; >> +#ifdef HAVE_STRUCT_STAT_ST_DEV >> dev_t st_dev; >> +#endif >> +#ifdef HAVE_STRUCT_STAT_ST_INO >> ino_t st_ino; >> +#endif >> } urandom_cache = { -1 }; >> >> /* Read size bytes from /dev/urandom into buffer. >> @@ -167,7 +183,7 @@ dev_urandom_noraise(unsigned char *buffer, >> Py_ssize_t size) >> >> assert (0 < size); >> >> - fd = open("/dev/urandom", O_RDONLY); >> + fd = open("/dev/urandom", O_RDONLY, 0); >> if (fd < 0) >> Py_FatalError("Failed to open /dev/urandom"); >> >> @@ -204,8 +220,14 @@ dev_urandom_python(char *buffer, Py_ssize_t >> size) >> if (urandom_cache.fd >= 0) { >> /* Does the fd point to the same thing as before? (issue #21207) */ >> if (fstat(urandom_cache.fd, &st) >> +#ifdef HAVE_STRUCT_STAT_ST_DEV >> || st.st_dev != urandom_cache.st_dev >> - || st.st_ino != urandom_cache.st_ino) { >> +#endif >> +#ifdef HAVE_STRUCT_STAT_ST_INO >> + || st.st_ino != urandom_cache.st_ino >> +#endif >> + ) >> + { >> /* Something changed: forget the cached fd (but don't close it, >> since it probably points to something important for some >> third-party code). */ >> @@ -216,7 +238,7 @@ dev_urandom_python(char *buffer, Py_ssize_t size) >> fd = urandom_cache.fd; >> else { >> Py_BEGIN_ALLOW_THREADS >> - fd = open("/dev/urandom", O_RDONLY); >> + fd = open("/dev/urandom", O_RDONLY, 0); >> Py_END_ALLOW_THREADS >> if (fd < 0) >> { >> @@ -250,8 +272,12 @@ dev_urandom_python(char *buffer, Py_ssize_t >> size) >> } >> else { >> urandom_cache.fd = fd; >> +#ifdef HAVE_STRUCT_STAT_ST_DEV >> urandom_cache.st_dev = st.st_dev; >> +#endif >> +#ifdef HAVE_STRUCT_STAT_ST_INO >> urandom_cache.st_ino = st.st_ino; >> +#endif >> } >> } >> } >> diff --git a/AppPkg/Applications/Python/Python-2.7.10/X64/pyconfig.h >> b/AppPkg/Applications/Python/Python-2.7.10/X64/pyconfig.h >> index 17df0cc..22103fc 100644 >> --- a/AppPkg/Applications/Python/Python-2.7.10/X64/pyconfig.h >> +++ b/AppPkg/Applications/Python/Python-2.7.10/X64/pyconfig.h >> @@ -1,6 +1,7 @@ >> /** @file >> Manually generated Python Configuration file for EDK II. >> >> + Copyright (c) 2015, Daryl McDaniel. All rights reserved.<BR> >> Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> >> This program and the accompanying materials are licensed and made >> available under >> the terms and conditions of the BSD License that accompanies this >> distribution. >> @@ -67,6 +68,9 @@ >> /* Define to 1 if you have the 'alarm' function. */ >> #undef HAVE_ALARM >> >> +/* Define to 1 if you have the <alloca.h> header file. */ >> +#undef HAVE_ALLOCA_H >> + >> /* Define this if your time.h defines altzone. */ >> #undef HAVE_ALTZONE >> >> @@ -109,6 +113,9 @@ >> /* define to 1 if your sem_getvalue is broken. */ >> #define HAVE_BROKEN_SEM_GETVALUE 1 >> >> +/* Define if 'unsetenv' does not return an int. */ >> +#undef HAVE_BROKEN_UNSETENV >> + >> /* Define this if you have the type _Bool. */ >> #define HAVE_C99_BOOL 1 >> >> @@ -170,10 +177,10 @@ >> /* Define to 1 if you have the device macros. */ >> #undef HAVE_DEVICE_MACROS >> >> -/* Define if we have /dev/ptc. */ >> +/* Define to 1 if you have the /dev/ptc device file. */ >> #undef HAVE_DEV_PTC >> >> -/* Define if we have /dev/ptmx. */ >> +/* Define to 1 if you have the /dev/ptmx device file. */ >> #undef HAVE_DEV_PTMX >> >> /* Define to 1 if you have the <direct.h> header file. */ >> @@ -274,11 +281,11 @@ >> #undef HAVE_GAMMA >> >> /* Define if we can use gcc inline assembler to get and set x87 control word >> -*/ >> + */ >> #if defined(__GNUC__) >> #define HAVE_GCC_ASM_FOR_X87 1 >> #else >> - #undef HAVE_GCC_ASM_FOR_X87 >> +#undef HAVE_GCC_ASM_FOR_X87 >> #endif >> >> /* Define if you have the getaddrinfo function. */ >> @@ -290,6 +297,9 @@ >> /* Define this if you have flockfile(), getc_unlocked(), and funlockfile() >> */ >> #undef HAVE_GETC_UNLOCKED >> >> +/* Define to 1 if you have the 'getentropy' function. */ >> +#undef HAVE_GETENTROPY >> + >> /* Define to 1 if you have the 'getgroups' function. */ >> #undef HAVE_GETGROUPS >> >> @@ -383,6 +393,12 @@ >> /* Define to 1 if you have the 'initgroups' function. */ >> #undef HAVE_INITGROUPS >> >> +/* Define if your compiler provides int32_t. */ >> +#undef HAVE_INT32_T >> + >> +/* Define if your compiler provides int64_t. */ >> +#undef HAVE_INT64_T >> + >> /* Define to 1 if you have the <inttypes.h> header file. */ >> #define HAVE_INTTYPES_H 1 >> >> @@ -479,6 +495,9 @@ >> /* Define to 1 if you have the 'mktime' function. */ >> #define HAVE_MKTIME 1 >> >> +/* Define to 1 if you have the 'mmap' function. */ >> +#undef HAVE_MMAP >> + >> /* Define to 1 if you have the 'mremap' function. */ >> #undef HAVE_MREMAP >> >> @@ -524,6 +543,9 @@ >> /* Define if you have GNU PTH threads. */ >> #undef HAVE_PTH >> >> +/* Define to 1 if you have the 'pthread_atfork' function. */ >> +#undef HAVE_PTHREAD_ATFORK >> + >> /* Defined for Solaris 2.6 bug in pthread header. */ >> #undef HAVE_PTHREAD_DESTRUCTOR >> >> @@ -542,6 +564,9 @@ >> /* Define to 1 if you have the 'putenv' function. */ >> #undef HAVE_PUTENV >> >> +/* Define if the libcrypto has RAND_egd */ >> +#undef HAVE_RAND_EGD >> + >> /* Define to 1 if you have the 'readlink' function. */ >> #undef HAVE_READLINK >> >> @@ -717,6 +742,12 @@ >> /* Define to 1 if 'st_rdev' is a member of 'struct stat'. */ >> #undef HAVE_STRUCT_STAT_ST_RDEV >> >> +/* Define to 1 if 'st_dev' is a member of 'struct stat'. */ >> +#undef HAVE_STRUCT_STAT_ST_DEV >> + >> +/* Define to 1 if 'st_ino' is a member of 'struct stat'. */ >> +#undef HAVE_STRUCT_STAT_ST_INO >> + >> /* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ >> #undef HAVE_STRUCT_TM_TM_ZONE >> >> @@ -863,6 +894,12 @@ >> /* Define this if you have tcl and TCL_UTF_MAX==6 */ >> #undef HAVE_UCS4_TCL >> >> +/* Define if your compiler provides uint32_t. */ >> +#undef HAVE_UINT32_T >> + >> +/* Define if your compiler provides uint64_t. */ >> +#undef HAVE_UINT64_T >> + >> /* Define to 1 if the system has the type 'uintptr_t'. */ >> #define HAVE_UINTPTR_T 1 >> >> @@ -932,22 +969,22 @@ >> #undef MVWDELCH_IS_EXPRESSION >> >> /* Define to the address where bug reports for this package should be sent. >> */ >> -#define PACKAGE_BUGREPORT "[email protected]" >> +#define PACKAGE_BUGREPORT "[email protected]" >> >> /* Define to the full name of this package. */ >> -#define PACKAGE_NAME "EDK II Python Package" >> +#define PACKAGE_NAME "EDK II Python 2.7.10 Package" >> >> /* Define to the full name and version of this package. */ >> -#define PACKAGE_STRING "EDK II Python Package V0.8" >> +#define PACKAGE_STRING "EDK II Python 2.7.10 Package V0.1" >> >> /* Define to the one symbol short name of this package. */ >> #define PACKAGE_TARNAME "EADK_Python" >> >> /* Define to the home page for this package. */ >> -#define PACKAGE_URL "http://edk2.tianocore.org/toolkit/python" >> +#define PACKAGE_URL "http://edk2.tianocore.org/" >> >> /* Define to the version of this package. */ >> -#define PACKAGE_VERSION "V0.8" >> +#define PACKAGE_VERSION "V0.1" >> >> /* Define if POSIX semaphores aren't enabled on your system */ >> #define POSIX_SEMAPHORES_NOT_ENABLED 1 >> @@ -1160,13 +1197,14 @@ >> /* This must be defined on some systems to enable large file support. */ >> #undef _LARGEFILE_SOURCE >> >> +/* This must be defined on AIX systems to enable large file support. */ >> +#undef _LARGE_FILES >> + >> /* Define to 1 if on MINIX. */ >> #undef _MINIX >> >> /* Define on NetBSD to activate all library features */ >> -#ifndef _NETBSD_SOURCE >> - #define _NETBSD_SOURCE 1 >> -#endif >> +#define _NETBSD_SOURCE 1 >> >> /* Define _OSF_SOURCE to get the makedev macro. */ >> #undef _OSF_SOURCE >> @@ -1264,3 +1302,4 @@ >> //#undef volatile >> >> #endif /*Py_PYCONFIG_H*/ >> + >> -- >> 1.9.5.msysgit.1 >> >> _______________________________________________ >> edk2-devel mailing list >> [email protected] >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

