This is the documentation of version 1.50. You may want the documentation of the stable version (2.0) or of the well tested 2.1 development snapshot or our homepage.

Makepp Compatibility

Compatibility list for makepp

Perl Version vs. System

The many Perl versions available and still installed on many machines come with various subtle bugs. We have tried to work around most of them, but a few remain. We have a test suite of around 75 tests, all of which usually pass. On some platforms lacking some features, notably Cygwin, a few tests are explicitly skipped. This table shows with what version this has been tested where, and whether it was successful. We would like to hear of your results on other platforms too!

 5.6  5.8  5.10  5.12  5.14 
 .0  .1  .2  .0  .1  .2  .3  .4  .5  .6  .7  .8  .9  .0  .1  .0  .1  .2  .3  .4  .0  .1 
GNU/Linux (x86)xxx*)xxxxx xxxxxxxxxxxxx
GNU/Linux (amd64)        x   x    xx x 
GNU/Linux (alpha) x                    
GNU/Linux (S/390)  x        xxxx       
FreeBSD (x86) xx        xxxxxxxx  x
NetBSD (x86)            xxxxxxx  x
NetBSD (alpha)            xxx       
OpenBSD (x86)   x        xxxxxx xxx
AIX (PPC)    xx    xx          
Darwin (x86)x               x     
Darwin (PPC)x        xxxxxxxxx    
HP/UX (IA64)   x*)  x*)               
Irix           x          
Reliant (Mips)x*)x*)                    
Solaris (Sparc)xx*) xxxxxxxxxxx xx     
Solaris (64bit)    x      x x        
Solaris (x86) x  x      xxxxxxx    
BS2000 (S/390) x  x        /        
z/OS USS (S/390)           x*) /        
Cygwin (x86)          x*)x xx       
MinGW MSYS x*)                    
Stawberry           xxxx xxx   
ActiveState Winx*)x*) xxxxx xxxxxxxx x x 
HPUX

Perl at least up to V5.8.8 has a 64bitall bug on HP/UX that hurts makepp badly. If it recognized that its running on a 64 bit Perl, it will rewrite several sources so as to have a workaround for this problem.

req

Some instances of 5.6 at least on Linux and Solaris will dump in a Perl require statement. Strangely this only happens in one test, so you are probably ok using these Perls.

Win

There are 4 different Perl environments on Windows, which normally extend one another when installed in parallel. Here they have been tested with a minimal PATH, so as to separate them completely. When using native programs, you may need to see the note under &ln.

zOS

On z/OS (alias VMS or OS/390) Unix System Services smart recursive make doesn't work. If your compiler is picky about option order, you may have to write your own rules. (To compile Perl 5.8.8 you may have to remove the silly "(void)env;" in miniperlmain.c. Perl 5.10.0 is not compilable on an Ebcdic system while 5.12.1 and 5.14.0 may have macro errors with the z/OS C compiler.)

Nest

Some old compilers do not like nested comments. Since additional_tests/2006_03_23_c_comments.test looks at all kinds of constellations, and verifies it's conclusions with the compiler, this test can fail if you do not use gcc.

File Systems

Various special file systems have unusual properties, giving makepp a hard time when working on them:

NFS

NFS may reorder file operations at its discretion, leading to unexpected relationships between time stamps. This is relevant for the build info meta-data files, which makepp stores alongside each file. Especially in build caches, with their concurrent access, some workaround handling was necessary, but it is shown by load test to work fine.

Windows CIFS on Gnu/Linux

A few special characters are not allowed in filenames. Links are emulated by copying while symbolic linking fails. Apparently write operations come back before they are visible on disk, which confuses makepp about the success of the commands it executes. Six out of 76 tests fail due to this. On the bright side, timestamps have a precision of 100 nanoseconds (though the observed obtainable differences are only about a centisecond). This is much better than most older Unix file systems -- alas perl's stat function has no access to this very welcome precision.

Windows Server Share on Cygwin

The same CIFS disk that was works so badly on Linux, passes all tests on Cygwin. Possibly there are CIFS mount options that might improve something.

Unix SMBFS from Gnu/Linux

Linking and symbolic linking fails. No other tests fail. I have no access to a more realistic Windows SMB server, where the situation might be different.

VFAT on Gnu/Linux

A few special characters are not allowed in filenames. Linking and symbolic linking fails. The file permission mask and owner are mount options, while the time stamps are not settable.


Daniel Pfeiffer
Last modified: 2011-06-23