HaikuPorts
  • Login
  • Preferences
  • Help/Guide
  • Wiki
  • Timeline
  • Roadmap
  • View Tickets
  • Search
  • Port Log
  • Blog

Context Navigation

  • ← Previous Change
  • Wiki History
  • Next Change →

Changes between Version 19 and Version 20 of dev-lang/perl


Ignore:
Timestamp:
01/25/09 11:56:06 (6 years ago)
Author:
brecht
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • dev-lang/perl

    v19 v20  
    1 [[TOC]] 
    2  
    3 = PortLog: [wiki:dev-lang]/perl = 
    4  
    5 http://www.perl.org/ 
    6  
    7 == version 5.8.8 == 
    8  
    9 ||R5||untested|| 
    10 ||BONE||unstable|| 
    11 ||Haiku||untested|| 
    12  
    13 === revision 1 (brecht)  - [BONE] === 
    14  
    15 Following the instructions in the supplied README.beos, it is easy enough to build Perl on BeOS. 
    16  
    17 On BONE, a large number of tests fail with an error similar to this one: 
    18  
    19 {{{ 
    20 load_add_on(/boot/home/Documents/code/perl-5.8.8/t/../lib/auto/PerlIO/encoding/encoding.so) : -1 (General OS error) 
    21 Can't load '../lib/auto/PerlIO/encoding/encoding.so' for module PerlIO::encoding: General OS error at ../lib/XSLoader.pm line 70. 
    22  at ../lib/PerlIO/encoding.pm line 14 
    23 }}} 
    24  
    25 When kernel debugging is enabled, the following is printed to the syslog: 
    26  
    27 {{{ 
    28 KERN 'perl'[849]: clone_area_gen error 
    29 }}} 
    30  
    31 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. 
    32  
    33 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? 
    34  
    35 The author of flock_server, Ingo Weinhold, only develops on R5. Hence, there could be a problem with flock_server on BONE. 
    36  
    37 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. 
    38  
    39 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. 
    40  
    41 To build Perl with dynamically loaded extensions, we need to find out what the incompatibility between flock_server and BONE is (ticket #38). 
    42  
    43 The built perl executable will sometimes output the following warning: 
    44  
    45 {{{ 
    46 Can't ignore signal CHLD, forcing to default. 
    47 }}} 
    48  
    49 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). 
    50  
    51  
    52 == 5.10.0 == 
    53  
    54 ||R5||untested|| 
    55 ||BONE||untested|| 
    56 ||Haiku||stable|| 
    57  
    58 === external - [Haiku] === 
    59  
    60 [http://dev.haiku-os.org/browser/buildtools/trunk/patches/perl Ported] for Haiku by Ingo Weinhold. Available as Optional Package from Haiku. 
    61  
    62 TODO: According to this [http://dev.haiku-os.org/ticket/2072 ticket], it does not yet include socket support. 
    63  
    64 === revision 2 (bonefish) - [Haiku] === 
    65  
    66 ==== Changes ([http://ports.haiku-files.org/browser/haikuports/trunk/dev-lang/perl/perl-5.10.0.diff patch]) ==== 
    67  
    68 {{{Configure}}}: 
    69  - Link libraries with {{{-shared}}} on Haiku. 
    70  - Build a shared libperl.so. 
    71  - No other flags for building libperl.so. 
    72 {{{MANIFEST}}}: 
    73  - Added new files. 
    74 {{{README.haiku}}}: 
    75  - README for the Haiku port. 
    76 {{{ext/Errno/Errno_pm.PL}}}: 
    77  - Error code definitions are in the same header as in BeOS. 
    78 {{{ext/Haiku/}}}: 
    79  - A Haiku module providing the functions debug_printf(), ktrace_printf(), and debugger(). 
    80 {{{ext/POSIX/POSIX.xs}}}: 
    81  - Work-around for the incorrect use of W*() macros on the Perl-internal representation of exit statuses. 
    82 {{{ext/Time/HiRes/t/HiRes.t}}}: 
    83  - Haiku doesn't support VALARM yet (revisiton 28311). 
    84 {{{haiku/haikuish.h}}}: 
    85  - Haiku is unixish, but we need to include <sys/wait.h> so that the W*() macros are defined in perl.h. 
    86 {{{hints/haiku.sh}}}: 
    87  - Configuration hints for Haiku. 
    88 {{{lib/CPANPLUS/Internals/Constants/Report.pm}}}, {{{lib/ExtUtils/CBuilder.pm}}}, {{{lib/ExtUtils/MM.pm}}}, {{{lib/Module/Build.pm}}}: 
    89  - List Haiku, so those modules work on it correctly. 
    90 {{{lib/ExtUtils/MM_Haiku.pm}}}: 
    91  - MakeMaker support for Haiku. 
    92 {{{perl.h}}}: 
    93  - Same problem as with BeOS. S_IREAD/S_IWRITE are defined, but in <sys/file.h> which is included later. 
    94  - Include haiku/haikuish.h. 
    95  - Same problem as in BeOS, O_TEXT is defined, but has no effect and should lead Perl to believe we have DOS line endings. 
    96 {{{pod/perlport.pod}}}: 
    97  - Added Haiku. 
    98 {{{t/io/fs.t}}}: 
    99  - No stat::st_atime support in BFS. 
    100  
    101 ==== Configuring/Building ==== 
    102 {{{ 
    103 ./Configure -Dcf_email=ingo_weinhold@gmx.de -de 
    104 make 
    105 make test 
    106 }}} 
    107  
    108 Replace email address with that of the porter. 
    109  
    110 ==== Tests ==== 
    111  
    112 Four tests fail: 
    113  - {{{ext/Socket/t/socketpair.t}}}: Haiku doesn't support Unix datagram sockets yet. 
    114  - {{{ext/Sys/Syslog/t/syslog.t}}}: Haiku doesn't support /dev/log yet. 
    115  - {{{lib/Net/Ping/t/450_service.t}}}: Bug in TCP/network stack. 
    116  - {{{lib/Net/Ping/t/510_ping_udp.t}}}: Probably a bug in UDP/network stack. 
    117  
    118 ==== Install ==== 
    119 {{{ 
    120 make install 
    121 chmod a+x /boot/common/bin/perl 
    122 cd /boot/common/lib; ln -s perl5/5.10.0/BePC-haiku/CORE/libperl.so . 
    123 }}} 
    124  
    125 For some reason the perl executable isn't installed with executable permissions. The symlink /boot/common/lib/libperl.so is missing. 
    126  
    127  
    128 == 5.11.0 (perl-current aka. blead) == 
    129  
    130 ||R5||untested|| 
    131 ||BONE||untested|| 
    132 ||Haiku||stable|| 
    133  
    134 === revision 1 (bonefish) - [Haiku] === 
    135  
    136 Cf. 5.10.0 revision 2. 
    137  
    138 ==== Changes ([http://ports.haiku-files.org/browser/haikuports/trunk/dev-lang/perl/perl-current.diff patch]) ==== 
    139  
    140 Changes are the same as for 5.10.0 revision 2 with the exception of {{{ext/POSIX/POSIX.xs}}}, which uses the WMUNGE() macro again -- it had been dropped sometime after 5.10.0. 
    141  
    142 ==== Upstreaming ==== 
    143  
    144 The patch has been sent upstream and most of it was applied in perl-current 34630-34634 with some changes: 
    145  - The Haiku module was moved to {{{haiku/}}}. 
    146  - The {{{ext/POSIX/POSIX.xs}}} change still awaits approval. 

Trac Powered

Powered by Trac 0.13dev-r10686
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/