X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fmachten.sh;h=cdca69aa107a1daa6e4ead509cd68685a83494e2;hb=1182767ea8fd2e4c0bf1b4ebab9db9ac12fc142c;hp=b4409c1bf0be6a67aaeb5d683fb9bc06dc70e3fc;hpb=eee97483e8b20972a6444d8283945e690003b688;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/machten.sh b/hints/machten.sh index b4409c1..cdca69a 100644 --- a/hints/machten.sh +++ b/hints/machten.sh @@ -1,7 +1,14 @@ #! /bin/bash # machten.sh # This is for MachTen 4.1.4. It might work on other versions and variants -# too. If it doesn't, tell me, and I'll try to fix it -- domo@computer.org +# too. MachTen is now obsolete, lacks many features expected in modern UNIX +# implementations, and suffers from a number of bugs which are likely never +# to be fixed. This means that, in the absence of extensive work on +# this file and on the perl source code, versions of perl later than 5.6.x +# cannot successfully be built on MachTen. This file enforces this +# restriction. Should you wish to port a later version of perl to MachTen, +# feel free to contact me for pointers. +# -- Dominic Dunlop 040213 # # Users of earlier MachTen versions might need a fixed tr from ftp.tenon.com. # This should be described in the MachTen release notes. @@ -9,12 +16,17 @@ # MachTen 2.x has its own hint file. # # The original version of this file was put together by Andy Dougherty -# based on comments from lots of +# based on comments from lots of # folks, especially # Mark Pease # Martijn Koster # Richard Yeh # +# Prevent building of perls later than 5.6.x, stating why -- see above. +# -- Dominic Dunlop 040213 +# Deny system's false claims to support mmap() and munmap(); note +# also that Sys V IPC (re)disabled by jhi due to continuing inadequacy +# -- Dominic Dunlop 001111 # Remove dynamic loading libraries from search; enable SysV IPC with # MachTen 4.1.4 and above; define SYSTEM_ALIGN_BYTES for old MT versions # -- Dominic Dunlop 000224 @@ -41,15 +53,25 @@ # Do not use perl's malloc; SysV IPC OK -- Neil Cutcliffe, Tenon 961030 # File::Find's use of link count disabled by Dominic Dunlop 960528 # Perl's use of sigsetjmp etc. disabled by Dominic Dunlop 960521 -# -# Comments, questions, and improvements welcome! + +# Assume that PERL_REVISON in patchlevel.h is 5. +# If you want to try building perl-5.8.x or later, set PERL_VERSION_SAFE_MAX +# appropriately in your environment before running Configure. +if [ `awk '$1=="#define" && $2=="PERL_VERSION"{print $3}' patchlevel.h` \ + -gt ${PERL_VERSION_SAFE_MAX:-6} ] +then + cat <&4 + +Perl versions greater than 5.6.x have not been ported to MachTen. If you +wish to build a version from the 5.6 track, please see the notes in +README.machten +EOF + exit 1 +fi # # MachTen 4.1.1's support for shadow password file access is incomplete: # disable its use completely. -d_endspent=${d_endspent:-undef} -d_getspent=${d_getspent:-undef} d_getspnam=${d_getspnam:-undef} -d_setspent=${d_setspent:-undef} # MachTen 4.1.1 does support dynamic loading, but perl doesn't # know how to use it yet. @@ -95,7 +117,7 @@ d_vfork=${d_vfork:-define} # Specify a high level of optimization (-O3 wouldn't do much more) optimize=${optimize:--O2 -fomit-frame-pointer} -# Make symbol table listings les voluminous +# Make symbol table listings less voluminous nmopts=-gp # Set reg_infty -- the maximum allowable number of repeats in regular @@ -200,6 +222,11 @@ if test "$d_shm" = ""; then esac fi +# MachTen has stubs for mmap and munmap(), but they just result in the +# caller being killed on the grounds of "Bad system call" +d_mmap=${d_mmap:-undef} +d_munmap=${d_munmap:-undef} + # Get rid of some extra libs which it takes Configure a tediously # long time never to find on MachTen, or which break perl set `echo X "$libswanted "|sed -e 's/ net / /' -e 's/ socket / /' \ @@ -231,6 +258,8 @@ During Configure, you may see the message as well as similar messages concerning \$d_sem and \$d_shm. Select the default answers: MachTen 4.1 appears to provide System V IPC support, but it is incomplete and buggy: perl should be built without it. +Similar considerations apply to memory mapping of files, controlled +by \$d_mmap and \$d_munmap. Similarly, when you see @@ -241,10 +270,9 @@ Similarly, when you see select the default answer: vfork() works, and avoids expensive data copying. -You may also see "WHOA THERE!!!" messages concerning \$d_endspent, -\$d_getspent, \$d_getspnam and \$d_setspent. In all cases, select the -default answer: MachTen's support for shadow password file access is -incomplete, and should not be used. +You may also see "WHOA THERE!!!" messages concerning \$d_getspnam. +Select the default answer: MachTen's support for shadow password +file access is incomplete, and should not be used. At the end of Configure, you will see a harmless message