X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fmachten.sh;h=cdca69aa107a1daa6e4ead509cd68685a83494e2;hb=9f10b7978c0f0158c4689058d5599a8d2c5e52da;hp=69f16355c2db2bf3245146a9a51d00190e61a3fa;hpb=d722968f91639a851375cb3aeb7df128909c0779;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/machten.sh b/hints/machten.sh index 69f1635..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,8 +53,21 @@ # 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. @@ -92,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 @@ -197,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 / /' \ @@ -228,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