README.beos - Perl version 5 on BeOS
Notes for building Perl under BeOS.
To compile perl under BeOS R4 x86:
and hit ^C when it asks you if you want to make changes to config.sh; edit config.sh and do
the following: change d_socket='define' to ='undef'; remove SDBM, Errno, and Socket from
dynamic_ext= and nonxs_ext=; add '#define bool short' to x2p/a2p.h;
../Configure -S; make; make install
cd ~/config/lib; ln -s 5.00502/BeOS-BePC/CORE/libperl.so .
(substitute 5.00502 with the appropriate filename)
- R4 x86
- Dynamic loading finally works! Yay! This means you can compile your own modules into
perl. However, Sockets and Errno still don't work. (Hopefully, sockets will at least work
by R5, if not sooner.)
- R4 PPC
- I have not tested this. I rather severely doubt that dynamic loading will work. (My
BeBox is in pieces right now, following a nasty disk crash.) You may have to disable
dynamic loading to get the thing to compile at all. (use `./Configure` without -d, and say
'no' to 'Build a shared libperl.so'.)
If you have comments, problem reports, or even patches or bugfixes (gasp!) please email me.
28 Jan 1999 Tom Spindler email@example.com
The following tests fail on 5.8.0 Perl in BeOS Personal 5.03:
t/op/lfs............................FAILED at test 17
t/op/magic..........................FAILED at test 24
ext/Fcntl/t/syslfs..................FAILED at test 17
ext/File/Glob/t/basic...............FAILED at test 3
ext/POSIX/t/sigaction...............FAILED at test 13
ext/POSIX/t/waitpid.................FAILED at test 1
The reasons for the failures are as follows:
- The t/op/lfs and ext/Fcntl/t/syslfs failures indicate that the LFS (large file support,
files larger than 2 gigabytes) doesn't work from Perl (BeFS itself is well capable of
supporting large files). What fails is that trying to position the file pointer past 2
gigabytes doesn't work right, the position gets truncated to its lower 32 bits.
- The op/magic failures look like something funny going on with $0 and $^X that I can't
now figure out: none of the generated pathnames are wrong as such, they just seem to
accumulate "./" prefixes and infixes in ways that define logic.
- The Glob/t/basic indicates a bug in the getpw*() functions: they do not always return
the correct user db entries.
- The sigaction #13 means that signal mask doesn't get properly restored if sigaction
- The waitpid failure means that after there are no more child processes, waitpid is
supposed to start returning -1 (and set errno to ECHILD). In BeOS, it doesn't seem to.
Disclaimer: I just installed BeOS Personal Edition 5.0 and the Developer Tools, that is the
whole extent of my BeOS expertise, so please don't ask me for further help in BeOS Perl