Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MAKEPP_COMPATIBILITY(1)		    Makepp	       MAKEPP_COMPATIBILITY(1)

NAME
       makepp_compatibility -- Compatibility list for makepp

DESCRIPTION
   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    | .2    #

	GNU/Linux (x86)# x     | x     | req   # x     | x     | x     | x     | x     |       | x     | x     | x     | x     # x     | x     # x     | x     | x     | x     | x     # x     | x     | x     #

	GNU/Linux (amd64)#     |       |       #       |       |       |       |       | x     |       |       |       | x     #       |       #       |       | x     | x     |       # x     |       | x     #

	GNU/Linux (Alpha)#     | x     |       #       |       |       |       |       |       |       |       |       |       #       |       #       |       |       |       |       #       |       |       #

	GNU/Linux (S/390)#     |       | x     #       |       |       |       |       |       |       |       | x     | x     # x     | x     #       |       |       |       |       #       |       |       #

	FreeBSD	(x86)  #       | x     | x     #       |       |       |       |       |       |       |       | x     | x     # x     | x     # x     | x     | x     | x     |       #       | x     |       #

	NetBSD (x86)   #       |       |       #       |       |       |       |       |       |       |       |       | x     # x     | x     # x     | x     | x     | x     |       #       | x     | x     #

	NetBSD (Alpha) #       |       |       #       |       |       |       |       |       |       |       |       | x     # x     | x     #       |       |       |       |       #       |       |       #

	OpenBSD	(x86)  #       |       |       # x     |       |       |       |       |       |       |       |       | x     # x     | x     # x     | x     | x     |       | x     # x     | x     | x     #

	AIX (PPC)      #       |       |       #       | x     | x     |       |       |       |       | x     | x     |       #       |       #       |       |       |       |       #       |       |       #

	Darwin (x86)   # x     |       |       #       |       |       |       |       |       |       |       |       |       #       |       #       | x     |       |       |       #       |       | x     #

	Darwin (PPC)   # x     |       |       #       |       |       |       |       |       | x     | x     | x     | x     # x     | x     # x     | x     | x     |       |       #       |       |       #

	HP/UX (IA64)   #       |       |       # HPUX  |       |       | HPUX  |       |       |       |       |       |       #       |       #       |       |       |       |       #       |       |       #

	Irix	       #       |       |       #       |       |       |       |       |       |       |       | x     |       #       |       #       |       |       |       |       #       |       |       #

	Reliant	(Mips) # Nest  | Nest  |       #       |       |       |       |       |       |       |       |       |       #       |       #       |       |       |       |       #       |       |       #

	Solaris	(Sparc)# x     | req   |       # x     | x     | x     | x     | x     | x     | x     | x     | x     | x     # x     |       # x     | x     |       |       |       #       |       |       #

	Solaris	(64bit)#       |       |       #       | x     |       |       |       |       |       |       | x     |       # x     |       #       |       |       |       |       #       |       |       #

	Solaris	(x86)  #       | x     |       #       | x     |       |       |       |       |       |       | x     | x     # x     | x     # x     | x     | x     |       |       #       |       |       #

	BS2000 (S/390) #       | x     |       #       | x     |       |       |       |       |       |       |       |       # /     |       #       |       |       |       |       #       |       |       #

	z/OS USS (S/390)#      |       |       #       |       |       |       |       |       |       |       | zOS   |       # /     |       #       |       |       |       |       #       |       |       #

	Cygwin (x86)   #       |       |       #       |       |       |       |       |       |       | Win   | x     |       # x     | x     #       |       |       |       |       #       |       |       #

	MinGW MSYS     #       | Win   |       #       |       |       |       |       |       |       |       | x     |       #       |       #       |       |       |       |       #       |       |       #

	Stawberry      #       |       |       #       |       |       |       |       |       |       |       | x     | x     # x     | x     #       | x     | x     | x     |       #       |       |       #

	ActiveState Win# Win   | Win   |       # x     | x     | x     | x     | x     |       | x     | x     | x     | x     # x     | x     # x     | x     |       | 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	it's 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.

	      Cygwin  fairly  closely	emulates  GNU/Linux and	gives the best
	       results.	 Perl 5.8.7 has	a small	problem	with environment vars,
	       making one test fail.  In the long gone past,  parallel	builds
	       didn't  work, but it hasn't be verified which version of	Cygwin
	       or Perl made them usable.  Perl 5.10.1 has a problem with chmod
	       0 files,	so they	can't be used to prevent  repository  imports.
	       In  rare	 cases	recent	Cygwin	also  leads stat() to report a
	       symlink for an inexistent file.	This does not seem a Perl bug,
	       since the same perls that were error free before, now show this
	       behaviour.  Makepp has been reorganized to much reduce this, so
	       you may never see it.

	      MinGW stays close to Windows, giving it only a Unixy  look  and
	       feel.   It  has a clever	workaround for lack of symbolic	links,
	       namely copying instead (&ln has stolen this idea).   Alas  this
	       is  not good enough for the repository mechanism, so that isn't
	       available, in addition to the Cygwin deficiencies.

	      On Strawberry Perl with only native Windows most	customary Unix
	       commands	(except	Gnu compilers) are missing, and	the "shell" is
	       extremely  primitive.   A  maximal  use	of  makepp's   builtin
	       commands	and embedded Perl can increase makefile	portability.

	       While  Windows  programs	can handle normal slashes as directory
	       separators, this	does not work for command names.  Those	should
	       always be portably  written  as	dir$/command,  where  $/  gets
	       replaced	 by  a	forward	 or  backward  slash, depending	on the
	       environment.  If	you tell makepp, via the SHELL variable, where
	       to find a Unix-like Shell, you don't have these worries.

	       It cannot do smart recursive makes (but who  would  want	 them,
	       since  they  are	 known	to  be a broken	paradigm) and parallel
	       builds.

	      ActiveState Perl	is very	 similar  to  Strawberry,  as  far  as
	       makepp  goes,  though it	doesn't	come with Gnu compilers.  Perl
	       5.6.0 fails on quite a few tests, especially with $SHELL, 5.6.1
	       fails on	two tests.  Up to 5.8.6, it will  rewrite  Mpp/File.pm
	       so as to	have a needed workaround for an	lstat bug.

       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.

AUTHOR
       Daniel Pfeiffer (occitan@esperanto.org)

perl v5.36.3			  2012-02-28	       MAKEPP_COMPATIBILITY(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=makepp_compatibility&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help