Build updates for OS/2 EMX port
This commit is contained in:
parent
8133f9da17
commit
bb4503716f
|
@ -2,15 +2,15 @@
|
|||
#
|
||||
# Top-Level Makefile for Building Python 2.4 for OS/2 using GCC/EMX
|
||||
# Originally written by Andrew Zabolotny, <bit@eltech.ru> for Python 1.5.2
|
||||
# Modified by Andrew MacIntyre, <andymac@pcug.org.au> for Python 2.4
|
||||
# Modified by Andrew MacIntyre, <andymac@pcug.org.au> for Python 2.5
|
||||
#
|
||||
# This makefile was developed for use with [P]GCC/EMX compiler any
|
||||
# version and GNU Make.
|
||||
#
|
||||
# The output of the build is a largish Python24.DLL containing the
|
||||
# The output of the build is a largish Python25.DLL containing the
|
||||
# essential modules of Python and a small Python.exe program to start
|
||||
# the interpreter. When embedding Python within another program, only
|
||||
# Python24.DLL is needed. We also build python_s.a static library (which
|
||||
# Python25.DLL is needed. We also build python_s.a static library (which
|
||||
# can be converted into OMF (.lib) format using emxomf tool) and both
|
||||
# python.a and python.lib import libraries. Then the optional
|
||||
# extension modules, which are OS/2 DLLs renamed with a PYD file extension.
|
||||
|
@ -64,7 +64,7 @@ HAVE_OPENSSL= no
|
|||
|
||||
# === install locations ===
|
||||
# default value of PYTHONHOME
|
||||
LIB_DIR=C:/Python24
|
||||
LIB_DIR=C:/Python25
|
||||
# default is to have everything in or under PYTHONHOME
|
||||
EXE_DIR=$(LIB_DIR)
|
||||
DLL_DIR=$(EXE_DIR)
|
||||
|
@ -236,8 +236,8 @@ $(OUT)%$O: %.c
|
|||
@echo STACKSIZE 2097152 >>$@
|
||||
|
||||
# Output file names
|
||||
PYTHON_VER= 2.4
|
||||
PYTHON_LIB= python24
|
||||
PYTHON_VER= 2.5
|
||||
PYTHON_LIB= python25
|
||||
PYTHON.LIB= $(PYTHON_LIB)_s$A
|
||||
PYTHON.IMPLIB= $(PYTHON_LIB)$A
|
||||
ifeq ($(EXEOMF),yes)
|
||||
|
@ -295,20 +295,23 @@ SRC.MODULES= $(addprefix $(TOP), \
|
|||
Modules/dlmodule.c \
|
||||
Modules/errnomodule.c \
|
||||
Modules/fcntlmodule.c \
|
||||
Modules/_functoolsmodule.c \
|
||||
Modules/_heapqmodule.c \
|
||||
Modules/imageop.c \
|
||||
Modules/itertoolsmodule.c \
|
||||
Modules/_localemodule.c \
|
||||
Modules/mathmodule.c \
|
||||
Modules/md5c.c \
|
||||
Modules/md5.c \
|
||||
Modules/md5module.c \
|
||||
Modules/operator.c \
|
||||
Modules/_randommodule.c \
|
||||
Modules/rgbimgmodule.c \
|
||||
Modules/shamodule.c \
|
||||
Modules/sha256module.c \
|
||||
Modules/sha512module.c \
|
||||
Modules/_sre.c \
|
||||
Modules/stropmodule.c \
|
||||
Modules/structmodule.c \
|
||||
Modules/_struct.c \
|
||||
Modules/symtablemodule.c \
|
||||
Modules/termios.c \
|
||||
Modules/timemodule.c \
|
||||
|
@ -331,6 +334,9 @@ SRC.PARSE2= $(addprefix $(TOP), \
|
|||
SRC.PARSER= $(SRC.PARSE1) \
|
||||
$(SRC.PARSE2)
|
||||
SRC.PYTHON= $(addprefix $(TOP), \
|
||||
Python/Python-ast.c \
|
||||
Python/asdl.c \
|
||||
Python/ast.c \
|
||||
Python/bltinmodule.c \
|
||||
Python/exceptions.c \
|
||||
Python/ceval.c \
|
||||
|
@ -353,6 +359,7 @@ SRC.PYTHON= $(addprefix $(TOP), \
|
|||
Python/modsupport.c \
|
||||
Python/mysnprintf.c \
|
||||
Python/mystrtoul.c \
|
||||
Python/pyarena.c \
|
||||
Python/pyfpe.c \
|
||||
Python/pystate.c \
|
||||
Python/pystrtod.c \
|
||||
|
@ -371,6 +378,7 @@ SRC.OBJECT= $(addprefix $(TOP), \
|
|||
Objects/cellobject.c \
|
||||
Objects/classobject.c \
|
||||
Objects/cobject.c \
|
||||
Objects/codeobject.c \
|
||||
Objects/complexobject.c \
|
||||
Objects/descrobject.c \
|
||||
Objects/dictobject.c \
|
||||
|
|
|
@ -612,22 +612,11 @@ functionality. Most of the sub-tests pass, but the "ismount" and
|
|||
|
||||
test_posixpath should skip these tests on EMX.
|
||||
|
||||
24. I have had a report that attempting to use the Bittorrent package
|
||||
(http://bitconjurer.org/BitTorrent/) with this port causes traps not
|
||||
long after starting the download; this using the "headless" download
|
||||
script on eCS v1.1. I have not been able to duplicate this myself,
|
||||
but the indications I have suggest a failure in the 32 bit TCP/IP
|
||||
stack (v4.3.2? on eCS v1.1) - on my v4.0 FP12 system with MPTS fixpack
|
||||
WR8425 applied (16 bit TCP/IP stack v4.02), BitTorrent appears to work
|
||||
normally in testing on a 100Mbit LAN. With the curses.panel fix (see
|
||||
item 13 above), the BitTorrent curses downloader works too. I'd
|
||||
appreciate any success or failure reports with BitTorrent, though
|
||||
I've regretfully recommended that the person who reported the failure
|
||||
take this up with eCS support. Since this report, I have received a
|
||||
followup which suggests that the problem may be addressed by TCP/IP
|
||||
fixes (IC35005+PJ29457, contained in NEWSTACK.ZIP in the Hobbes
|
||||
archive). I think it suffices to say that BitTorrent is a fair stress
|
||||
test of a system's networking capability.
|
||||
24. I have reports of BitTorrent not working. It appears that the
|
||||
EMX select() emulation, possibly in concert with bugs in the TCP/IP
|
||||
stack, runs into problems under the stress imposed by this application.
|
||||
I think it suffices to say that BitTorrent is a fair stress test of a
|
||||
system's networking capability.
|
||||
|
||||
25. In the absence of an EMX implementation of the link() function, I've
|
||||
implemented a crude Python emulation, in the file
|
||||
|
@ -659,14 +648,16 @@ test_subprocess has a number of failures as a result.
|
|||
|
||||
29. The default stack size for threads has been 64k. This is proving
|
||||
insufficient for some codebases, such as Zope. The thread stack size
|
||||
still defaults to 64k, but this can now be increased by defining
|
||||
still defaults to 64k, but this can now be increased via the stack_size()
|
||||
function exposed by the threading & thread modules as well as by defining
|
||||
THREAD_STACK_SIZE to an appropriate value in the Makefile (which contains
|
||||
a commented out definition for 128kB thread stacks). I have seen
|
||||
references to heavy Zope/Plone usage requiring 1MB thread stacks on
|
||||
FreeBSD and Linux, but doubt that for most likely usage on OS/2 that
|
||||
more than 256kB is necessary. The size of the required stacks (main
|
||||
and thread) can vary significantly depending on which version of gcc
|
||||
is used along with the compiler optimisations selected.
|
||||
is used along with the compiler optimisations selected. Note that the
|
||||
main thread stack size is set during linking and is currently 2MB.
|
||||
|
||||
... probably other issues that I've not encountered, or don't remember :-(
|
||||
|
||||
|
@ -707,4 +698,4 @@ Andrew MacIntyre
|
|||
E-mail: andymac@bullseye.apana.org.au, or andymac@pcug.org.au
|
||||
Web: http://www.andymac.org/
|
||||
|
||||
17 February, 2005.
|
||||
23 July, 2006.
|
||||
|
|
|
@ -58,16 +58,19 @@ extern void initdatetime();
|
|||
extern void initdl();
|
||||
extern void initerrno();
|
||||
extern void initfcntl();
|
||||
extern void init_functools();
|
||||
extern void init_heapq();
|
||||
extern void initimageop();
|
||||
extern void inititertools();
|
||||
extern void initmath();
|
||||
extern void initmd5();
|
||||
extern void init_md5();
|
||||
extern void initoperator();
|
||||
extern void initrgbimg();
|
||||
extern void initsha();
|
||||
extern void init_sha();
|
||||
extern void init_sha256();
|
||||
extern void init_sha512();
|
||||
extern void initstrop();
|
||||
extern void initstruct();
|
||||
extern void init_struct();
|
||||
extern void inittermios();
|
||||
extern void inittime();
|
||||
extern void inittiming();
|
||||
|
@ -121,16 +124,19 @@ struct _inittab _PyImport_Inittab[] = {
|
|||
{"dl", initdl},
|
||||
{"errno", initerrno},
|
||||
{"fcntl", initfcntl},
|
||||
{"_functools", init_functools},
|
||||
{"_heapq", init_heapq},
|
||||
{"imageop", initimageop},
|
||||
{"itertools", inititertools},
|
||||
{"math", initmath},
|
||||
{"md5", initmd5},
|
||||
{"_md5", init_md5},
|
||||
{"operator", initoperator},
|
||||
{"rgbimg", initrgbimg},
|
||||
{"sha", initsha},
|
||||
{"_sha", init_sha},
|
||||
{"_sha256", init_sha256},
|
||||
{"_sha512", init_sha512},
|
||||
{"strop", initstrop},
|
||||
{"struct", initstruct},
|
||||
{"_struct", init_struct},
|
||||
{"termios", inittermios},
|
||||
{"time", inittime},
|
||||
{"timing", inittiming},
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#define TCPIPV4 1
|
||||
#define USE_SOCKET 1
|
||||
#define socklen_t int
|
||||
#define FD_SETSIZE 1024
|
||||
|
||||
/* enable the Python object allocator */
|
||||
#define WITH_PYMALLOC 1
|
||||
|
@ -61,6 +62,9 @@
|
|||
#define PY_UNICODE_TYPE wchar_t
|
||||
#define Py_UNICODE_SIZE SIZEOF_SHORT
|
||||
|
||||
/* EMX defines ssize_t */
|
||||
#define HAVE_SSIZE_T 1
|
||||
|
||||
/* system capabilities */
|
||||
#define HAVE_TTYNAME 1
|
||||
#define HAVE_WAIT 1
|
||||
|
@ -137,6 +141,9 @@ typedef long intptr_t;
|
|||
/* The number of bytes in a void *. */
|
||||
#define SIZEOF_VOID_P 4
|
||||
|
||||
/* The number of bytes in a size_t. */
|
||||
#define SIZEOF_SIZE_T 4
|
||||
|
||||
/* Define if you have the alarm function. */
|
||||
#define HAVE_ALARM 1
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue