To: Perl Porters <perl5-porters@perl.org>
[p5sagit/p5-mst-13.2.git] / hints / next_3.sh
1 # This file has been put together by Anno Siegel <siegel@zrz.TU-Berlin.DE>,
2 # Andreas Koenig <k@franz.ww.TU-Berlin.DE> and Gerd Knops <gerti@BITart.com>.
3 # Comments, questions, and improvements welcome!
4 #
5 # These hints work for NeXT 3.2 and 3.3.  3.0 has it's own
6 # special hint file.
7 #
8
9 ######################################################################
10 # THE MALLOC STORY
11 ######################################################################
12 # 1994:
13 # the simple program `for ($i=1;$i<38771;$i++){$t{$i}=123}' fails
14 # with Larry's malloc on NS 3.2 due to broken sbrk()
15 #
16 # setting usemymalloc='n' was the solution back then. Later came
17 # reports that perl would run unstable on 3.2:
18 #
19 # 1996:
20 # From about perl5.002beta1h perl became unstable on the
21 # NeXT. Intermittent coredumps were frequent on 3.2 OS. There were
22 # reports, that the developer version of 3.3 didn't have problems, so it
23 # seemed pretty obvious that we had to work around an malloc bug in 3.2.
24 # This hints file reflects a patch to perl5.002_01 that introduces a
25 # home made sbrk routine (remember, NeXT's sbrk _never_ worked). This
26 # sbrk makes it possible to run perl with its own malloc. Thanks to
27 # Ilya who showed me the way to his sbrk for OS/2!!
28 #
29 # The whole malloc desaster lead to a failing gdbm test. It is far
30 # beyond my understanding, why GDBM_File breaks with the "fix", but in
31 # general I consider it better to have a working perl with broken GDBM
32 # than no perl at all.
33 #
34 # So, this hintsfile is using perl's malloc. If you want to turn
35 # perl's malloc off, you need to remove '-DUSE_PERL_SBRK'
36 # from the ccflags and set usemymalloc to 'n'.
37 #
38 # 1997:
39 # From perl5.003_22 the malloc bug has no impact any more. We can run
40 # a perl without a special sbrk. Apparently Chip Salzenberg, the hero
41 # of 5.004 anyway, earned another trophy during Australien Open.
42 #
43 # use the following two lines to enable USE_PERL_SBRK. Try this if you
44 # encounter intermittent core dumps:
45 #ccflags='-DUSE_NEXT_CTYPE -DUSE_PERL_SBRK'
46 #usemymalloc='y'
47 # use the following two lines if you have perl5.003_22 or better and
48 # do not encounter intermittent core dumps.
49
50 ccflags="$ccflags -DUSE_NEXT_CTYPE"
51 usemymalloc='n'
52
53 ######################################################################
54 # End of the MALLOC story
55 ######################################################################
56
57 ldflags='-u libsys_s'
58 libswanted='dbm gdbm db'
59
60 lddlflags='-nostdlib -r'
61 # Give cccdlflags an empty value since Configure will detect we are
62 # using GNU cc and try to specify -fpic for cccdlflags.
63 cccdlflags=' '
64
65 ######################################################################
66 # MAB support
67 ######################################################################
68 # By default we will build for all architectures your development
69 # environment supports. If you only want to build for the platform
70 # you are on, simply comment or remove the line below.
71 #
72 # If you want to build for specific architectures, change the line
73 # below to something like
74 #
75 #       archs='m68k i386'
76 #
77 archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
78
79 #
80 # leave the following part alone
81 #
82 archcount=`echo $archs |wc -w`
83 if [ $archcount -gt 1 ]
84 then
85         for d in $archs
86         do
87                         mabflags="$mabflags -arch $d"
88         done
89         ccflags="$ccflags $mabflags"
90         ldflags="$ldflags $mabflags"
91         lddlflags="$lddlflags $mabflags"
92         archname='next-fat'
93 fi
94 ######################################################################
95 # END MAB support
96 ######################################################################
97 ld='cc'
98
99 i_utime='undef'
100 groupstype='int'
101 direntrytype='struct direct'
102 d_strcoll='undef'
103 d_uname='define'
104 #
105 # At least on m68k there are situations when memcmp doesn't behave
106 # as expected.  So we'll use perl's memcmp.
107 #
108 d_sanemcmp='undef'
109 # setpgid() is in the posix library, but we don't use -posix, so
110 # we don't see it.  ext/POSIX/POSIX.xs  *does* use -posix, so
111 # setpgid is still available as POSIX::setpgid.
112 # See ext/POSIX/POSIX/hints/next.pl.
113 d_setpgid='undef'
114 d_setsid='define'
115 d_tcgetpgrp='define'
116 d_tcsetpgrp='define'
117
118 #
119 # On some NeXT machines, the timestamp put by ranlib is not correct, and
120 # this may cause useless recompiles.  Fix that by adding a sleep before
121 # running ranlib.  The '5' is an empirical number that's "long enough."
122 #
123 ranlib='sleep 5; /bin/ranlib' 
124
125 #
126 # There where reports that the compiler on HPPA machines
127 # fails with the -O flag on pp.c.
128 # Compiling pp.c with -O for HPPA machines results in a broken perl.
129 # This is true whether we're on an HPPA machine or cross-compiling
130 # for one.
131 pp_cflags='optimize=""'
132
133 # The SysV IPC is optional (ftp://ftp.nluug.nl/pub/comp/next/SysVIPC/)
134 # Gerben_Wierda@RnA.nl
135 if [ -f /usr/local/lib/libIPC.a ]; then
136   libswanted="$libswanted IPC"
137   # As of Sep 1998 d_msg wasn't supported in that library,
138   # only d_sem and d_shm, but Configure should be able to
139   # figure that out. --jhi
140   # Note also the next3 ext/IPC/SysV hints file.
141 fi