[Python-Dev] updated patches for OS/2 EMX port

Andrew MacIntyre andymac@bullseye.apana.org.au
Sun, 27 Jan 2002 21:48:59 +1100 (EDT)


Its taken longer than I'd hoped, however they're finally up for review.

The updated bits have been attached to the previous patch entries in the
patch manager:

435381:  distutils changes
  http://sf.net/tracker/?func=detail&atid=305470&aid=435381&group_id=5470

450265:  build files - self contained subdirectory in PC/
  http://sf.net/tracker/?func=detail&atid=305470&aid=450265&group_id=5470

450266:  library changes - 3 patch files covering:-
         - Lib/ (included os2emxpath.py as previously discussed here)
         - Lib/plat-os2emx/ (new subdirectory)
         - Lib/test/ (cope with 2 EMX limitations)
  http://sf.net/tracker/?func=detail&atid=305470&aid=450266&group_id=5470

450267:  core changes - 4 patch files covering:-
         - Include/
         - Modules/ (lots of changes; see below for more info)
         - Objects/ (see below for more info)
         - Python/
  http://sf.net/tracker/?func=detail&atid=305470&aid=450267&group_id=5470

I hope that I got the patch links right...

Particular notes wrt #450267:
- the patch to Modules/import.c supports VACPP in addition to EMX.
Michael Muller has trialled this patch with a VACPP build successfully.
It is messy, but OS/2 isn't going to lose the 8.3 naming limit on DLLs
anytime soon :-(  Although truncating the DLL (PYD) name to 8 characters
increases the chances of a name clash, the case-sensitive import support
in the same patch alleviates it somewhat, and the fact that the
"init<module>" entrypoint is maintained will result in an import failure
when there is an actual name clash.
- Modules/unicodedata.c is affected by a name clash between the internally
defined _getname() and an EMX routine of the same name defined in
<stdlib.h>.  The patch renames the internal routine to _getucname() to
avoid this, but this change may not be acceptable - advice please.
- Objects/stringobject.c and Objects/unicodeobject.c contain changes to
handle the EMX runtime library returning "0x" as the prefix for output
formatted with a "%X" format.

I have tried to minimise the changes in these patches to the minimum
needed for the port to function, ie I've tried to eradicate the cosmetic
changes in the earlier patches, and avoid picking up unwanted files (such
as Modules/Setup).  Please let me know if you find any such changes I
missed.

The patches uploaded apply cleanly to a copy of an anonoymously checked
out CVS tree as of 0527 AEST this morning (Jan 27), and have been built
and regression tested on both OS/2 EMX and FreeBSD 4.4R with no unexpected
test failures.

If there are no unresolvable objections, and approval to apply these
patches is granted, I propose that the patches be applied as follows:-

Stage 1:  the build patch (creates+populates PC/os2emx/)
Stage 2:  the Lib/plat-os2emx/ patch
Stage 3:  the Lib/ and Lib/test/ patches
Stage 4:  the distutils patch
Stage 5:  the Include/, Objects/ and Python/ patches
Stage 6:  the Modules/ patch

I would expect to allow at least 48 hours between stages.

Comments/advice on this proposal also appreciated.

--
Andrew I MacIntyre                     "These thoughts are mine alone..."
E-mail: andymac@bullseye.apana.org.au  | Snail: PO Box 370
        andymac@pcug.org.au            |        Belconnen  ACT  2616
Web:    http://www.andymac.org/        |        Australia