summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2001-04-10 21:51:29 (GMT)
committerGuido van Rossum <guido@python.org>2001-04-10 21:51:29 (GMT)
commit13aa70679ef504a7517261d5c4a3a27ee9aa30c7 (patch)
treeaa2ed319f18413d04816e100695ff7c21b88a4d8
parent4611df0ece68c300b3518108683e3b2223690d5d (diff)
downloadcpython-13aa70679ef504a7517261d5c4a3a27ee9aa30c7.zip
cpython-13aa70679ef504a7517261d5c4a3a27ee9aa30c7.tar.gz
cpython-13aa70679ef504a7517261d5c4a3a27ee9aa30c7.tar.bz2
Completely revamped BeOS notes, by Donn Cave (SF patch 411834).
-rw-r--r--Misc/BeOS-NOTES132
1 files changed, 23 insertions, 109 deletions
diff --git a/Misc/BeOS-NOTES b/Misc/BeOS-NOTES
index 0424c4f..41f25a7 100644
--- a/Misc/BeOS-NOTES
+++ b/Misc/BeOS-NOTES
@@ -1,129 +1,43 @@
Python for BeOS R5
-To build,
+In Python-2.1, the standard version of the new setup.py program
+will not build the full complement of modules on BeOS. Instead,
+please replace it with the special BeOS version in Misc/BeOS-setup.py.
- 1) ./configure --prefix=/boot/home/config
+To build,
- 2) edit Modules/Setup
- comment out grp and mmap, and pwd on 4.5 or earlier
- uncomment any modules you want to include in python
- (you can also add them later as shared libraries.)
+ 1) cp Misc/BeOS-setup.py setup.py
+ 2) ./configure --prefix=/boot/home/config
3) make
+The modules will all build, except termios which assumes some flags
+we don't have. Put a libreadline.a in /boot/home/config/lib to get
+a readline.so for your interactive editing convenience; NB, not
+libreadline.so, you want to link a static readline library into the
+dynamically loaded Python module.
+
Test:
make test
- [Chris Herborth writes:]
- test_popen2 will probably hang; it's deadlocked on a semaphore. I should
- probably disable popen2 support... it uses fork(), and fork() doesn't mix
- with threads on BeOS. In *THEORY* you could use it in a single-threaded
- program, but I haven't tried.
-
- If test_popen2 does hang, you can find the semaphore it's hung on via the
- "ps" command. Look for python and you'll find something like this:
-
-./python -tt ../src/Lib/test/regrtest.py (team 26922) (uid 0) (gid 0)
- 39472 python sem 10 3785 1500 piperd(360526)
-./python -tt ../src/Lib/test/regrtest.py (team 26923) (uid 0) (gid 0)
- 39477 python sem 10 25 4 python lock (1)(360022)
- ^^^^^^
- That last number is the semaphore the fork()'d python is stuck on
- (see how it's helpfully called "python lock (1)"? :-). You can unblock
- that semaphore to let the tests continue using the "release" command
- with that semaphore number. Be _very_ careful with "release" though,
- releasing the wrong semaphore can be hazardous.
-
- Expect the following errors:
-
- test * skipped -- an optional feature could not be imported (you'll see
- quite a few of these, based on what optional modules
- you've included)
-
- test test_fork1 skipped -- can't mix os.fork with threads on BeOS
+ The BeOS is Not UNIX category:
+ - test_select crashed -- select.error : (-2147459072, 'Bad file descriptor')
+ - test_socket crashed -- exceptions.AttributeError : SOCK_RAW
+ - test_fcntl crashed -- exceptions.IOError: [Errno -2147483643] Invalid argument
- test test_select crashed -- select.error : (-2147459072, 'Bad file
- descriptor')
+ This one is funny! BeOS does support large files, and that's why
+ we get this error: the file is too big for my filesystem!
+ - test_largefile crashed -- exceptions.IOError: [Errno -2147459065]
+ No space left on device
- test test_socket crashed -- exceptions.AttributeError : SOCK_RAW
-
- These are all due to either partial support for certain things (like
- sockets), or valid differences between systems.
-
- test test_pickle crashed. This is apparently a serious problem,
- "complex" number objects reconstructed from a
- pickle don't compare equal to their ancestors.
- But it happens on BeOS PPC only, not Intel.
+ - test_pickle crashed. This is apparently a serious problem, "complex"
+ number objects reconstructed from a pickle don't compare equal to
+ their ancestors. But it happens on BeOS PPC only, not Intel.
Install:
make install
-Using GNU readline:
-
- The Python interpreter is much nicer to work with interactively if
- you've got readline installed. Highly recommended.
-
- You can get the original GNU readline 2.2 source code from your
- favourite GNU software repository, such as
- ftp://prep.ai.mit.edu/pub/gnu/.
-
- You can get the only-slightly-modified-for-BeOS version of GNU
- readline 2.2 from the GeekGadgets repository;
- ftp://ftp.ninemoons.com/pub/geekgadgets/.
-
-
-Building libreadline for BeOS hosts:
-
- Note that we don't build a shared library version of libreadline and
- libhistory. That's left as an exercise for the reader.
-
- You won't be able to link against libreadline.a using the limited
- linker.
-
- 1) If you're on a PowerPC system, install the POSIX ar from
- http://www.qnx.com/~chrish/Be/software/index.html#programming
- (note that it's currently packaged with Python, in the BeOS/ar-1.1
- directory).
-
- If you're on an x86 system, you can leave out the "AR=ar-posix"
- part of the following instructions. In fact, you'll have to...
-
- 2) For PowerPC, configure with:
-
- CC=mwcc CFLAGS="-O7 -i- -I." AR=ar-posix RANLIB=: ./configure --verbose \
- --without-gcc --prefix=/boot/home/config powerpc-*-beos
-
- For x86, configure with:
-
- CC=mwcc CFLAGS="-O2 -i- -I." RANLIB=: ./configure --verbose \
- --without-gcc --prefix=/boot/home/config x86-*-beos
-
- Don't worry about the warnings/errors configure spews for
- powerpc-*-beos or x86-*-beos; readline doesn't actually use this host
- information for anything, although configure will die if you don't
- specify it.
-
- 3) Edit config.h to comment out "#define HAVE_SELECT 1"; select() on
- BeOS doesn't work on file descriptors (such as stdin).
-
- 4) For PowerPC, make with:
-
- make AR=ar-posix
-
- For x86, make with:
-
- make
-
- 5) Install with:
-
- make install
-
-Enjoy!
-
-- Chris Herborth (chrish@pobox.com)
- July 21, 2000
-
- Donn Cave (donn@oz.net)
October 4, 2000