Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
Mercy Corps

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 134 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       There is a binary version of perl available from the
       FreeMiNT project http://freemint.de/  You may wish to use
       this instead of trying to compile yourself.

       The following advice is from perl 5.004_02 and is probably
       rather out of date.

       If you want to build perl yourself on MiNT (or maybe on an
       Atari without MiNT) you may want to accept some advice
       from somebody who already did it...

       There was a perl port for Atari ST done by ++jrb
       bammi@cadence.com.  This port tried very hard to build on
       non-MiNT-systems.  For the sake of efficiency I've left
       this way.  Yet, I haven't removed bammi's patches but left
       them intact.  Unfortunately some of the files that bammi
       contributed to the perl distribution seem to have van­

       So, how can you distinguish my patches from bammi's
       patches?  All of bammi's stuff is embedded in "#ifdef
       atarist" preprocessor macros.  My MiNT port uses "#ifdef
       __MINT__" instead (and unconditionally undefines
       "atarist".  If you want to continue on bammi's port, all
       you have to do is to swap the "-D" and "-U" switches for
       "__MINT__" and "atarist" in the variable ccflags.

       However, I think that my version will still run on non-
       MiNT-systems provided that the user has a Eunuchs-like
       environment (i.e. the standard envariables like $PATH,
       $HOME, ... are set, there is a POSIX compliant shell in
       /bin/sh, and...)

Known problems with Perl on MiNT

       The problems you may encounter when building perl on your
       machine are most probably due to deficiencies in MiNT
       resp. the Atari platform in general.

       First of all, if you have less than 8 MB of RAM you
       shouldn't even try to build Perl yourself.  Better grab a
       binary pre-compiled version somewhere.  Even if you have
       more memory you should take some care.  Try to run in a
       fresh environment (without memory fragmented too much)
       with as few daemons, accessories, xcontrol modules etc. as
       possible.  If you run some AES you should consider to
       start a console based environment instead.

       A problem has been reported with sed.  Sed is used to cre­
       ate some configuration files based on the answers you have
       given to the Configure script.  Unfortunately the Perl
       Configure script shows sed on MiNT its limits.  I have sed
       cc1 and fix its stack.  I have made good experiences with

               fixstk 2 cc1

       This doesn't establish a stack of 2 Bytes only as you
       might think.  It really reserves one half of the available
       memory for cc1's stack.  A setting of 1 would reserve the
       entire memory for cc1, 3 would reserve three fourths.  You
       will have to find out the value that suits to your system

       To find out the location of the program `cc1' simply type
       `gcc --print-prog-name cc1' at your shell prompt.

       Now run make (maybe "make -k").  If you get a fatal signal
       10 increase cc1's stacksize, if you run out of memory you
       should either decrease the stacksize or follow some more

       Perl's building process is very handy on machines with a
       lot of virtual memory but may result in a disaster if you
       are short of memory.  If gcc fails to compile many source
       files you should reduce the optimization.  Grep for "opti­
       mize" in the file config.sh and change the flags.

       If only several huge files cause problems (actually it is
       not a matter of the file size resp. the amount of code but
       depends on the size of the individual functions) it is
       useful to bypass the make program and compile these files
       directly from the command line.  For example if you got
       something like the following from make:

               CCCMD = gcc -DPERL_CORE ....
               ...: virtual memory exhausted

       you should hack into the shell:

               gcc -DPERL_CORE ... toke.c

       Please note that you have to add the name of the source
       file (here toke.c) at the end.

       If none of this helps, you're helpless.  Wait for a binary
       release.  If you have succeeded you may encounter another
       problem at the linking process.  If gcc complains that it
       can't find some libraries within the perl distribution you
       probably have an old linker.  If it complains for example
       about "file not found for xxx.olb" you should cd into the
       directory in question and

               ln -s libxxx.a xxx.olb

        lib/io_tell.t                13    1   7.69%  12
        op/magic.t                   30    2   6.67%  29-30
        Failed 6/152 test scripts, 96.05% okay. 20/4359 subtests failed, 99.54% okay.

       Pipes always cause problems with MiNT, it's actually a
       surprise that most of the tests did work.  I've got no
       idea why the "tell" test failed, this shouldn't mean too
       big a problem however.

       Most of the failures of lib/complex seem to be harmless,
       actually errors far right to the decimal point...  Two
       failures seem to be serious: The sign of the results is
       reversed.  I would say that this is due to minor bugs in
       the portable math lib that I compiled perl with.

       I haven't bothered very much to find the reason for the
       failures with op/magic.t and op/stat.t.  Maybe you'll find
       it out.


       Another possible problem may arise from the implementation
       of the "pwd" command.  It happened to add a carriage
       return and newline to its output no matter what the set­
       ting of $UNIXMODE is.  This is quite annoying since many
       library modules for perl take the output of pwd, chop off
       the trailing newline character and then expect to see a
       valid path in that.  But the carriage return (last but
       second character!) isn't chopped off.  You can either try
       to patch all library modules (at the price of performance
       for the extra transformation) or you can use my version of
       pwd that doesn't suffer from this deficiency.

       The fixed implementation is in the mint subdirectory.
       Running "Configure" will attempt to build and install it
       if necessary (hints/mint.sh will do this work) but you can
       build and install it explicitly by:

               cd mint
               make install

       This is the fastest solution.

       Just in case you want to go the hard way: perl won't even
       build with a broken pwd!  You will have to fix the library
       modules (ext/POSIX/POSIX.pm, lib/Cwd.pm, lib/pwd.pl) at
       last after building miniperl.

       A major nuisance of current MiNTLib versions is the imple­
       mentation of system() which is far from being POSIX com­
       pliant.  A real system() should fork and then exec /bin/sh
       with its argument as a command line to the shell.  The
       directory.  You can easily insert this version into your
       system libc:

               cd mint
               make system.o
               ar r /usr/lib/libc.a
               ranlib /usr/lib/libc.a

       If you are suspicious you should either back up your libc
       before or extract the original system.o from your libc
       with "ar x /usr/lib/libc.a system.o".  You can then backup
       the system.o module somewhere before you succeed.

       Anything missing?  Yep, I've almost forgotten...  No file
       in this distribution without a fine saying.  Take this

               "From a thief you should learn: (1) to work at night;
               (2) if one cannot gain what one wants in one night to
               try again the next night; (3) to love one's coworkers
               just as thieves love each other; (4) to be willing to
               risk one's life even for a little thing; (5) not to
               attach too much value to things even though one has
               risked one's life for them - just as a thief will resell
               a stolen article for a fraction of its real value;
               (6) to withstand all kinds of beatings and tortures
               but to remain what you are; and (7) to believe your
               work is worthwhile and not be willing to change it."

                               -- Rabbi Dov Baer, Maggid of Mezeritch

       OK, this was my motto while working on Perl for MiNT,
       especially rule (1)...

       Have fun with Perl!


       Guido Flohr


perl v5.8.1                 2003-09-02                PERLMINT(1)

An undefined database error occurred. SELECT distinct pages.pagepath,pages.pageid FROM pages, page2command WHERE pages.pageid = page2command.pageid AND commandid =




Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
You can choose larger fonts by selecting a different themes.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.07 Seconds