Daryl McDaniel 47022e82e1 AppPkg: Add switch to cause stderr to be aliased to stdout.
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
2015-10-19 21:39:46 +00:00

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