source: trunk/essentials/dev-lang/perl/README.mint@ 3609

Last change on this file since 3609 was 3181, checked in by bird, 19 years ago

perl 5.8.8

File size: 9.3 KB
Line 
1If you read this file _as_is_, just ignore the funny characters you see.
2It is written in the POD format (see pod/perlpod.pod) which is specially
3designed to be readable as is.
4
5=head1 NAME
6
7README.mint - Perl version 5 on Atari MiNT
8
9=head1 DESCRIPTION
10
11There is a binary version of perl available from the FreeMiNT project
12http://freemint.de/ You may wish to use this instead of trying to
13compile yourself.
14
15B<The following advice is from perl 5.004_02 and is probably rather
16out of date.>
17
18If you want to build perl yourself on MiNT (or maybe on an Atari without
19MiNT) you may want to accept some advice from somebody who already did it...
20
21There was a perl port for Atari ST done by ++jrb [email protected].
22This port tried very hard to build on non-MiNT-systems. For the
23sake of efficiency I've left this way. Yet, I haven't removed bammi's
24patches but left them intact. Unfortunately some of the files that
25bammi contributed to the perl distribution seem to have vanished?
26
27So, how can you distinguish my patches from bammi's patches? All of
28bammi's stuff is embedded in "#ifdef atarist" preprocessor macros.
29My MiNT port uses "#ifdef __MINT__" instead (and unconditionally
30undefines "atarist". If you want to continue on bammi's port, all
31you have to do is to swap the "-D" and "-U" switches for "__MINT__"
32and "atarist" in the variable ccflags.
33
34However, I think that my version will still run on non-MiNT-systems
35provided that the user has a Eunuchs-like environment (i.e. the
36standard envariables like $PATH, $HOME, ... are set, there is a
37POSIX compliant shell in /bin/sh, and...)
38
39=head1 Known problems with Perl on MiNT
40
41The problems you may encounter when building perl on your machine
42are most probably due to deficiencies in MiNT resp. the Atari
43platform in general.
44
45First of all, if you have less than 8 MB of RAM you shouldn't
46even try to build Perl yourself. Better grab a binary pre-compiled
47version somewhere. Even if you have more memory you should take
48some care. Try to run in a fresh environment (without memory
49fragmented too much) with as few daemons, accessories, xcontrol
50modules etc. as possible. If you run some AES you should
51consider to start a console based environment instead.
52
53A problem has been reported with sed. Sed is used to create
54some configuration files based on the answers you have given
55to the Configure script. Unfortunately the Perl Configure script
56shows sed on MiNT its limits. I have sed 2.05 with a stacksize
57of 64k and I have encountered no problems. If sed crashes
58during your configuration process you should first try to
59augment sed's stacksize:
60
61 fixstk 64k /usr/bin/sed
62
63(or similar). If it still doesn't help you may have a look
64which other versions of sed are installed on your system.
65If you have a KGMD 1.0 installation you will find three
66in /usr/bin. Have a look there.
67
68Perl has some "mammut" C files. If gcc reports "internal
69compiler error: program cc1 got fatal signal 10" this is very
70likely due to a stack overflow in program cc1. Find cc1
71and fix its stack. I have made good experiences with
72
73 fixstk 2 cc1
74
75This doesn't establish a stack of 2 Bytes only as you might
76think. It really reserves one half of the available memory
77for cc1's stack. A setting of 1 would reserve the entire
78memory for cc1, 3 would reserve three fourths. You will have
79to find out the value that suits to your system yourself.
80
81To find out the location of the program "cc1" simply type
82`gcc --print-prog-name cc1' at your shell prompt.
83
84Now run make (maybe "make -k"). If you get a fatal signal 10
85increase cc1's stacksize, if you run out of memory you should
86either decrease the stacksize or follow some more hints:
87
88Perl's building process is very handy on machines with a lot
89of virtual memory but may result in a disaster if you are short
90of memory. If gcc fails to compile many source files you should
91reduce the optimization. Grep for "optimize" in the file
92config.sh and change the flags.
93
94If only several huge files cause problems (actually it is not a
95matter of the file size resp. the amount of code but depends on
96the size of the individual functions) it is useful to bypass
97the make program and compile these files directly from the
98command line. For example if you got something like the
99following from make:
100
101 CCCMD = gcc -DPERL_CORE ....
102 ...
103 ...: virtual memory exhausted
104
105you should hack into the shell:
106
107 gcc -DPERL_CORE ... toke.c
108
109Please note that you have to add the name of the source file
110(here toke.c) at the end.
111
112If none of this helps, you're helpless. Wait for a binary
113release. If you have succeeded you may encounter another problem
114at the linking process. If gcc complains that it can't find
115some libraries within the perl distribution you probably have