Python, as distributed, sends its prompts and other interactive output to stderr, which uses the platforms STDERR device for output. If STDERR output is not visible, it may appear that Python has hung. Several people have reported problems on platforms that don't enable STDERR. These include platforms without a Setup utility and those without Setup options for STDERR. This patch adds a command-line switch, -#, to Python. If this switch is present, stderr will be aliased to stdout. AppPkg/Applications/Python/PyMod-2.7.2/Modules/main.c: New file, modified version of AppPkg/Applications/Python/Python-2.7.2/Modules/main.c. Add the -# option which causes stderr to be aliased to stdout. Add a description of this switch to the Help output. AppPkg/Applications/Python/PythonCore.inf: Reference main.c from PyMod-2.7.2 instead of from Python-2.7.2 so that the modified version is used. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daryl McDaniel <edk2-lists@mc2research.org> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18649 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			256 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			256 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| ## @file
 | |
| # PythonCore.inf
 | |
| #
 | |
| #  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
 | |
| #  which 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.
 | |
| #
 | |
| ##
 | |
| 
 | |
| [Defines]
 | |
|   INF_VERSION                 = 0x00010016
 | |
|   BASE_NAME                   = Python
 | |
|   FILE_GUID                   = ca5627c4-51ba-4dcb-ac62-c076ebd37ddb
 | |
|   MODULE_TYPE                 = UEFI_APPLICATION
 | |
|   VERSION_STRING              = 0.8
 | |
|   ENTRY_POINT                 = ShellCEntryLib
 | |
| 
 | |
|   DEFINE PYTHON_VERSION       = 2.7.2
 | |
| 
 | |
| #
 | |
| #  VALID_ARCHITECTURES        = IA32 X64 IPF
 | |
| #
 | |
| 
 | |
| [Packages]
 | |
|   StdLib/StdLib.dec
 | |
|   MdePkg/MdePkg.dec
 | |
| 
 | |
| [LibraryClasses]
 | |
|   UefiLib
 | |
|   DebugLib
 | |
|   LibC
 | |
|   LibString
 | |
|   LibStdio
 | |
|   LibGdtoa
 | |
|   LibMath
 | |
|   LibWchar
 | |
|   LibGen
 | |
|   LibNetUtil
 | |
|   DevMedia
 | |
|   #
 | |
|   # Comment out the following two library classes if socket support is
 | |
|   # NOT being built in to Python.
 | |
|   #BsdSocketLib
 | |
|   #EfiSocketLib
 | |
| 
 | |
| [FixedPcd]
 | |
|   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0F
 | |
|   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000040
 | |
| 
 | |
| [Sources]
 | |
| #EFI -- EFI specific code
 | |
|   Efi/config.c
 | |
|   Efi/edk2module.c
 | |
|   Efi/getpath.c
 | |
| 
 | |
| #Parser
 | |
|   Python-$(PYTHON_VERSION)/Parser/acceler.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/bitset.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/firstsets.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/grammar.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/grammar1.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/listnode.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/metagrammar.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/myreadline.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/node.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/parser.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/parsetok.c
 | |
|   Python-$(PYTHON_VERSION)/Parser/tokenizer.c
 | |
| 
 | |
| #Python
 | |
|   PyMod-$(PYTHON_VERSION)/Python/getcopyright.c
 | |
|   PyMod-$(PYTHON_VERSION)/Python/marshal.c
 | |
|   PyMod-$(PYTHON_VERSION)/Python/import.c
 | |
| 
 | |
|   Python-$(PYTHON_VERSION)/Python/_warnings.c
 | |
|   Python-$(PYTHON_VERSION)/Python/Python-ast.c
 | |
|   Python-$(PYTHON_VERSION)/Python/asdl.c
 | |
|   Python-$(PYTHON_VERSION)/Python/ast.c
 | |
|   Python-$(PYTHON_VERSION)/Python/bltinmodule.c
 | |
|   Python-$(PYTHON_VERSION)/Python/ceval.c
 | |
|   Python-$(PYTHON_VERSION)/Python/codecs.c
 | |
|   Python-$(PYTHON_VERSION)/Python/compile.c
 | |
|   Python-$(PYTHON_VERSION)/Python/dtoa.c
 | |
|   Python-$(PYTHON_VERSION)/Python/dynload_stub.c
 | |
|   Python-$(PYTHON_VERSION)/Python/errors.c
 | |
|   Python-$(PYTHON_VERSION)/Python/formatter_string.c
 | |
|   Python-$(PYTHON_VERSION)/Python/formatter_unicode.c
 | |
|   Python-$(PYTHON_VERSION)/Python/frozen.c
 | |
|   Python-$(PYTHON_VERSION)/Python/future.c
 | |
|   Python-$(PYTHON_VERSION)/Python/getargs.c
 | |
|   Python-$(PYTHON_VERSION)/Python/getcompiler.c
 | |
|   Python-$(PYTHON_VERSION)/Python/getopt.c
 | |
|   Python-$(PYTHON_VERSION)/Python/getplatform.c
 | |
|   Python-$(PYTHON_VERSION)/Python/getversion.c
 | |
|   Python-$(PYTHON_VERSION)/Python/graminit.c
 | |
|   Python-$(PYTHON_VERSION)/Python/importdl.c
 | |
|   Python-$(PYTHON_VERSION)/Python/modsupport.c
 | |
|   Python-$(PYTHON_VERSION)/Python/mysnprintf.c
 | |
|   Python-$(PYTHON_VERSION)/Python/mystrtoul.c
 | |
|   Python-$(PYTHON_VERSION)/Python/peephole.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pyarena.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pyctype.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pyfpe.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pymath.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pystate.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pystrcmp.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pystrtod.c
 | |
|   Python-$(PYTHON_VERSION)/Python/pythonrun.c
 | |
|   Python-$(PYTHON_VERSION)/Python/structmember.c
 | |
|   Python-$(PYTHON_VERSION)/Python/symtable.c
 | |
|   Python-$(PYTHON_VERSION)/Python/sysmodule.c
 | |
|   Python-$(PYTHON_VERSION)/Python/traceback.c
 | |
| 
 | |
| #Objects
 | |
|   PyMod-$(PYTHON_VERSION)/Objects/longobject.c
 | |
| 
 | |
|   Python-$(PYTHON_VERSION)/Objects/abstract.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/boolobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/bufferobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/bytearrayobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/bytes_methods.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/capsule.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/cellobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/classobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/cobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/codeobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/complexobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/descrobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/dictobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/enumobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/exceptions.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/fileobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/floatobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/frameobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/funcobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/genobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/intobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/iterobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/listobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/memoryobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/methodobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/moduleobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/object.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/obmalloc.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/rangeobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/setobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/sliceobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/stringobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/structseq.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/tupleobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/typeobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/unicodectype.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/unicodeobject.c
 | |
|   Python-$(PYTHON_VERSION)/Objects/weakrefobject.c
 | |
| 
 | |
| #Modules -- See Efi/config.c
 | |
|   # Mandatory Modules -- These must always be built in.
 | |
|   PyMod-$(PYTHON_VERSION)/Modules/errnomodule.c
 | |
|   Python-$(PYTHON_VERSION)/Modules/_functoolsmodule.c
 | |
|   Python-$(PYTHON_VERSION)/Modules/gcmodule.c
 | |
|   Python-$(PYTHON_VERSION)/Modules/getbuildinfo.c
 | |
|   PyMod-$(PYTHON_VERSION)/Modules/main.c
 | |
|   Python-$(PYTHON_VERSION)/Modules/python.c
 | |
| 
 | |
|   # Optional Modules -- See Python/Efi/config.c
 | |
|   PyMod-$(PYTHON_VERSION)/Modules/_sre.c                        #
 | |
|   PyMod-$(PYTHON_VERSION)/Modules/selectmodule.c                #
 | |
|   #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_bisectmodule.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_codecsmodule.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_collectionsmodule.c         #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_csv.c                       #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_heapqmodule.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_json.c                      #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_localemodule.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_math.c                      #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_randommodule.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_struct.c                    #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_weakref.c                   #
 | |
|   Python-$(PYTHON_VERSION)/Modules/arraymodule.c                #
 | |
|   Python-$(PYTHON_VERSION)/Modules/binascii.c                   #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cmathmodule.c                #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cPickle.c                    #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cStringIO.c                  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/datetimemodule.c             #
 | |
|   Python-$(PYTHON_VERSION)/Modules/future_builtins.c            #
 | |
|   Python-$(PYTHON_VERSION)/Modules/itertoolsmodule.c            #
 | |
|   Python-$(PYTHON_VERSION)/Modules/mathmodule.c                 #
 | |
|   Python-$(PYTHON_VERSION)/Modules/md5.c                        #
 | |
|   Python-$(PYTHON_VERSION)/Modules/md5module.c                  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/operator.c                   #
 | |
|   Python-$(PYTHON_VERSION)/Modules/parsermodule.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/sha256module.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/sha512module.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/shamodule.c                  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/signalmodule.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/socketmodule.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/stropmodule.c                #
 | |
|   Python-$(PYTHON_VERSION)/Modules/symtablemodule.c             #
 | |
|   Python-$(PYTHON_VERSION)/Modules/timemodule.c                 #
 | |
|   Python-$(PYTHON_VERSION)/Modules/unicodedata.c                #
 | |
|   Python-$(PYTHON_VERSION)/Modules/xxsubtype.c                  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zipimport.c                  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlibmodule.c                 #
 | |
| 
 | |
| #Modules/_io
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/_iomodule.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/bufferedio.c             #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/bytesio.c                #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/fileio.c                 #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/iobase.c                 #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/stringio.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/_io/textio.c                 #
 | |
| 
 | |
| #Modules/cjkcodecs
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/multibytecodec.c   #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/_codecs_cn.c       #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/_codecs_hk.c       #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/_codecs_iso2022.c  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/_codecs_jp.c       #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/_codecs_kr.c       #
 | |
|   Python-$(PYTHON_VERSION)/Modules/cjkcodecs/_codecs_tw.c       #
 | |
| 
 | |
| #Modules/expat
 | |
|   Python-$(PYTHON_VERSION)/Modules/pyexpat.c                    #
 | |
|   PyMod-$(PYTHON_VERSION)/Modules/expat/xmlparse.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/expat/xmlrole.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/expat/xmltok.c               #
 | |
| 
 | |
| #Modules/zlib
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/adler32.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/compress.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/crc32.c                 #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/deflate.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/gzio.c                  #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/infback.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/inffast.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/inflate.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/inftrees.c              #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/trees.c                 #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/uncompr.c               #
 | |
|   Python-$(PYTHON_VERSION)/Modules/zlib/zutil.c                 #
 | |
| 
 | |
| [BuildOptions]
 | |
|    MSFT:*_*_IA32_CC_FLAGS         = /Oi- /wd4018 /wd4054 /wd4055 /wd4101 /wd4131 /wd4152 /wd4204 /wd4210 /wd4244 /wd4267 /wd4305 /wd4310 /wd4389 /wd4701 /wd4702 /wd4706 /I$(WORKSPACE)\AppPkg\Applications\Python\Ia32 /I$(WORKSPACE)\AppPkg\Applications\Python\Efi /I$(WORKSPACE)\AppPkg\Applications\Python\Python-$(PYTHON_VERSION)\Include /DHAVE_MEMMOVE /DUSE_PYEXPAT_CAPI /DXML_STATIC
 | |
|    MSFT:*_*_X64_CC_FLAGS          = /Oi- /wd4018 /wd4054 /wd4055 /wd4101 /wd4131 /wd4152 /wd4204 /wd4210 /wd4244 /wd4267 /wd4305 /wd4310 /wd4389 /wd4701 /wd4702 /wd4706 /I$(WORKSPACE)\AppPkg\Applications\Python\X64 /I$(WORKSPACE)\AppPkg\Applications\Python\Efi /I$(WORKSPACE)\AppPkg\Applications\Python\Python-$(PYTHON_VERSION)\Include /DHAVE_MEMMOVE /DUSE_PYEXPAT_CAPI /DXML_STATIC
 | |
|     GCC:*_*_IA32_CC_FLAGS         = -fno-builtin -Wno-format -I$(WORKSPACE)/AppPkg/Applications/Python/Ia32 -I$(WORKSPACE)/AppPkg/Applications/Python/Python-$(PYTHON_VERSION)/Include -DHAVE_MEMMOVE -DUSE_PYEXPAT_CAPI -DXML_STATIC
 | |
|     GCC:*_*_X64_CC_FLAGS          = -Wno-format -I$(WORKSPACE)/AppPkg/Applications/Python/X64 -I$(WORKSPACE)/AppPkg/Applications/Python/Python-$(PYTHON_VERSION)/Include -DHAVE_MEMMOVE -DUSE_PYEXPAT_CAPI -DXML_STATIC
 | |
|     GCC:*_*_IPF_SYMRENAME_FLAGS   = --redefine-syms=$(WORKSPACE)/StdLib/GccSymRename.txt
 |