[Patches] [ python-Patches-488073 ] AtheOS port of Python 2.2b2
noreply@sourceforge.net
noreply@sourceforge.net
Sun, 02 Dec 2001 05:57:44 -0800
Patches item #488073, was opened at 2001-12-02 05:57
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=488073&group_id=5470
Category: None
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Octavian Cerna (tavyc)
Assigned to: Nobody/Anonymous (nobody)
Summary: AtheOS port of Python 2.2b2
Initial Comment:
Hi,
While I was playing with AtheOS in the last few days, I saw
that it comes
with Python 1.5.2. Being a Python enthusiast, I
tried to see if a recent
version of Python would work. It did not
even compile, so I decided to port
it, knowing that AtheOS is
almost POSIX-compatible.
The result is a full-blown Python port
with only a (relative) small amount
of changes, that builds
OOTB.
And here it is, with all the details:
About the patch:
- The diff is against CVS 2001-11-26
- 20 files changed, 1962
insertions, 23 deletions
- It does not include changes to
autoconf-generated files
- The patch includes a few very small
fixes not directly related to
the AtheOS port, but which were
necessary to ensure the port works OK:
- setup.py - look for the
_curses_panel.c file in $srcdir/Modules, not
in $PWD/Modules
(otherwise VPATH builds will not build _curses_panel.so)
-
Makefile.pre.in - only ranlib *.a files (how will this affect
other ports?)
- Tools/freeze/bkfile.py - not all platforms have
the file.truncate method
- Tools/scripts/h2py.py - environment-
paths code was made more portable
Environment:
- AtheOS
0.3.6
- gcc 2.95.2
- binutils 2.10
- glibc 2.1.2
Features:
-
Dynamic loading of modules
- Native thread support
Issues:
Although AtheOS is not a BeOS clone, it is in many ways similar to
BeOS,
and some issues from BeOS also apply on AtheOS.
- dlopen is
not properly implemented, so I had to add support for native
dynamic loading.
- The POSIX threads emulation is almost
inexistent, so I added support for
native AtheOS threads.
-
AtheOS doesn't support importing symbols in a shared library
from the
main executable (the `-export-dynamic' linker flag), so
the Python core
must be built as a shared library, like on BeOS.
-
mmap is not implemented in AtheOS, the mmap module was disabled
-
statvfs is not implemented, os.statvfs and os.fstatvfs
disabled
- crypt on AtheOS crashes with SEGV if salt is not "$1$"
(glibc bug?),
disabled
- poll - it seems that poll never returns
POLLNVAL for an invalid fd
(hangs), disabled
- Don't mix
threading with fork() -- see test_popen2 below.
All tests pass,
except:
- test_nis hangs on my system, probably because NIS is
not set up
- test_popen2 hangs when imported from regrtest.py,
otherwise working
(like on BeOS). I suspect that the import
semaphore is locked when
popen2 forks and AtheOS doesn't like
that.
- test_mhlib fails, I don't know exactly why, but I suspect a
filesystem issue
(It corrupted some of my files several times,
and I don't want to run it
again ;)
- test_locale skipped, locale
en_US not supported (maybe something's wrong
with my
environment?)
- test_largefile skipped (unless you tell it to
eat 2GB disk space)
because apparently afs doesn't support
sparse files.
Notes:
- If you build Python, make sure you have
shared versions of your
libraries and you have links in
/system/libs for them, otherwise the
kernel won't load
modules.
AtheOS doesn't have a shared version for each library,
I had serious
problems with ncurses and the _curses_panel
module.
Binary packages:
- I have prepared binary packages of
Python-2.2b2 and Numeric-20.2.1
for testing, I will post them on
kamidake.org later.
Future:
- I'm going to try Zope these
days, I think it should work with a minimum
amount of changes,
almost OOTB ;)
(Maybe I should have included this text in the
README file?)
Please excuse my bad English, I am not a native
speaker :)
Python is an excellent language/environment, keep
going with the good work!
--------
Best Regards,
Octavian Cerna
(Tavy)
yLabs
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=488073&group_id=5470