| 1 | | |
| | 1 | Following the instructions in the supplied README.beos, it is easy enough to build Perl on BeOS. |
| | 2 | |
| | 3 | On BONE, a large number of tests fail with an error similar to this one: |
| | 4 | |
| | 5 | {{{ |
| | 6 | load_add_on(/boot/home/Documents/code/perl-5.8.8/t/../lib/auto/PerlIO/encoding/encoding.so) : -1 (General OS error) |
| | 7 | Can't load '../lib/auto/PerlIO/encoding/encoding.so' for module PerlIO::encoding: General OS error at ../lib/XSLoader.pm line 70. |
| | 8 | at ../lib/PerlIO/encoding.pm line 14 |
| | 9 | }}} |
| | 10 | |
| | 11 | When kernel debugging is enabled, the following is printed to the syslog: |
| | 12 | |
| | 13 | {{{ |
| | 14 | KERN 'perl'[849]: clone_area_gen error |
| | 15 | }}} |
| | 16 | |
| | 17 | It seems that Firefox suffered from a similar problem at one point: http://www.bebits.com/talkback/2715?page=14. This was because of the global 32MB add-on limit in BeOS. |
| | 18 | |
| | 19 | Dynamically loading {{{encoding.so}}} in a small test application is not a problem, so that library is not to blame. When linking this small test application with libflock however, the same error occurs - '''sometimes'''! The error doesn't seem to be reproducible but random. Perhaps this has something to do with the 32MB global add-on limit in BeOS? |
| | 20 | |
| | 21 | The author of flock_server, Ingo Weinhold, only develops on R5. Hence, there could be a problem with flock_server on BONE. |
| | 22 | |
| | 23 | When compiling Perl without flock() support (removing flock.h), there are no load_add_on() errors. This does indeed support the idea that there is a problem with flock_server on BONE. |
| | 24 | |
| | 25 | When statically linking all extensions, load_add_on() is not used, and thus there is no errors. This results in a perl executable of 6MB though. |
| | 26 | |
| | 27 | To build Perl with dynamically loaded extensions, we need to find out what the incompatibility between flock_server and BONE is (ticket #38). |
| | 28 | |
| | 29 | The built perl executable will sometimes output the following warning: |
| | 30 | |
| | 31 | {{{ |
| | 32 | Can't ignore signal CHLD, forcing to default. |
| | 33 | }}} |
| | 34 | |
| | 35 | This has something to do with the SIGCHLD POSIX signal. To me, it's not entirely clear whether the perl source code is incorrect, or BeOS (ticket #40). |