ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/hints/powerux.sh
Revision: 1.1
Committed: Thu Jun 30 14:27:07 2005 UTC (21 years, 3 months ago) by root
Content type: application/x-sh
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 # Hints for the Power MAX OS operating system (formerly PowerUX - hence the
2     # name) running on Concurrent (formerly Harris) NightHawk machines. Written
3     # by Tom.Horsley@ccur.com
4     #
5     # This hint uses dynamic linking and the new Concurrent C compiler (based
6     # on the Edison front end). This hint file was produced for a build of the
7     # 5.7.3 development release of perl running on a PowerMAX_OS 5.1SR2 system
8     # (but it should work on any Power MAX release using the newer "ec" (versus
9     # "cc") compiler, and hopefully will also work for the upcoming 5.8
10     # development release of perl).
11    
12     # First find out where the root of the source tree is located.
13    
14     SRCROOT=""
15     if [ -f ./INSTALL ]
16     then
17     SRCROOT="."
18     else
19     if [ -f ../INSTALL ]
20     then
21     SRCROOT=".."
22     fi
23     fi
24     if [ -z "$SRCROOT" ]
25     then
26     echo "powerux hint file cannot locate root perl source!" 1>&2
27     exit 2
28     fi
29    
30     # We DO NOT want -lmalloc or -lPW, we DO need -lgen to follow -lnsl, so
31     # fixup libswanted to reflect that desire (also need -lresolv if you want
32     # DNS name lookup to work, which seems desirable :-).
33     #
34     libswanted=`echo ' '$libswanted' ' | sed -e 's/ malloc / /' -e 's/ PW / /' -e 's/ nsl / nsl gen resolv /'`
35    
36     # We DO NOT want /usr/ucblib in glibpth
37     #
38     glibpth=`echo ' '$glibpth' ' | sed -e 's@ /usr/ucblib @ @'`
39    
40     # Yes, csh exists, but doesn't work worth beans, if perl tries to use it,
41     # the glob test fails, so just pretend it isn't there...
42     #
43     d_csh='undef'
44    
45     # Need to use Concurrent ec for most of these options to be meaningful (if you
46     # want to get this to work with gcc, you're on your own :-). Passing
47     # -Bexport to the linker when linking perl is important because it leaves
48     # the interpreter internal symbols visible to the shared libs that will be
49     # loaded on demand (and will try to reference those symbols). The -usys_nerr
50     # drags in some stuff from libc that perl proper doesn't reference but
51     # some dynamically linked extension will need to be in the static part
52     # of perl (there are probably more of these that might be useful, but
53     # for the extensions I build, this turned out to be enough). The -uldexp
54     # makes sure the custom ldexp.o I add to archobjs actually gets pulled
55     # into perl from libperl.a. The -unanosleep makes Timer::HiRes happy.
56     #
57     cc='/usr/ccs/bin/ec'
58     cccdlflags='-Zpic'
59     ccdlflags='-Zlink=dynamic -Wl,-usys_nerr -Wl,-uldexp -Wl,-unanosleep -Wl,-Bexport'
60     lddlflags='-Zlink=so'
61    
62     # Sigh... Various versions of Power MAX went out with a broken ldexp runtime
63     # routine in libc (it is fixed for sure in the upcoming SR4 release, but
64     # that hasn't made it out the door yet). Since libc is linked dynamically,
65     # and the perl you build might try to run on one of the broken systems, we
66     # need to statically link a corrected copy of ldexp.o into perl. What the
67     # following code does is determine if the ldexp.o on the current system
68     # works right. If it does, it simply extracts the ldexp.o from the system C
69     # library and uses that .o file. If the system .o is broken, the btoa
70     # encoded copy of a correct ldexp.o file included in this hint file is used
71     # (what a pain...)
72     #
73     if [ ! -f $SRCROOT/ldexp.o ]
74     then
75     echo Finding a correct copy of ldexp.o to link with... 1>&2
76     cat > $SRCROOT/UU/ldexptest.c <<'EOF'
77     #include <stdio.h>
78     #include <math.h>
79     #include <string.h>
80     int
81     main(int argc, char ** argv) {
82     double result = pow(2.0, 38.0);
83     char buf[100];
84     sprintf(buf, "%g", result);
85     if (strncmp(buf, "inf", 3) == 0) {
86     exit(2);
87     }
88     return 0;
89     }
90     EOF
91     GOODLDEXP="no"
92     $cc -v -Zlink=static -o $SRCROOT/UU/ldexptest $SRCROOT/UU/ldexptest.c -lm > $SRCROOT/UU/ldexptest.lo 2>&1
93     if [ $? -eq 0 ]
94     then
95     $SRCROOT/UU/ldexptest
96     if [ $? -eq 0 ]
97     then
98     LDEXPLIB=`fgrep libc.a $SRCROOT/UU/ldexptest.lo | tail -1 | sed -e 's@^[^/]*@@'`
99     if [ -s "$LDEXPLIB" ]
100     then
101     if [ -f "$LDEXPLIB" ]
102     then
103     GOODLDEXP="yes"
104     fi
105     fi
106     fi
107     fi
108     if [ "$GOODLDEXP" = "yes" ]
109     then
110     echo Congratulations! The ldexp.o on this system looks good! 1>&2
111     echo Using ldexp.o from $LDEXPLIB 1>&2
112     ( cd $SRCROOT ; ar x $LDEXPLIB ldexp.o )
113     else
114     echo Sorry, the ldexp.o on this system is busted. 1>&2
115     echo Using the ldexp.o from the powerux hint file 1>&2
116     atob > $SRCROOT/ldexp.o << 'EOF'
117     xbtoa Begin
118     Imm%#!<N9%zz!!*'-!!!!"zz!!!8Jz!&OZU!!!!I!"/c-!%r>7Ecb`!!%rA)G]Wp<Ec5JsFC>/%FC\
119     s(@fS,lAR]dp?YjFoAH3u00JG4;0JEJZF*VVE@:B4QA7^")/n4k]/hUsNAU&0$@rH4'?Zg7#FC/KgB
120     5)5`!%om?A7^")?Yj7aG]7#$DI``"/o5'0G]7#+A7^")?N:'+5\stBG]7#+Bl7KhF*(i2F9"RBA7^"
121     )?YjFoARB"dA,nl2A7^")?YjFoARAnXB5)5`5\stBG]7#/Ec5c4B6@cmASu#Y5\stBG]7#/Ec5c4B6
122     @cm@V'1dD?'ZQA7^")!+0)TBQ@HkEcQ&9!+p7_G]3XiCh[?cG%G]8Bl@kh?XIJhB4YFn@;GorEb0&q
123     /p(ZLF9!q6ASbd-FC\s(@fS-%ASbd-A7]4mB4#IhDIieJz3$J<@IAd4EOoYQ5HuL$L3Pb]og;*c.rk
124     Jf$0+\*`g>N$VfHC6nOeDcBJaNL<r#i5*<UF@H/I_sb5`,PtJ;sU43WK.'.>.[$5ct)L<TXBJ5b\68
125     8,rVja<:P^38ac\OQ-<@b/"'sb2E>Fr#l&\JY<(2JcPk%3$A9`IAd7F:4N<e<U"H%5b\5i3FDgf;/_
126     p@OmW2L8,rVjOok[aa<:P^b/"'sb2E>FJY<(2JcPk%3$A9`IAd7F:4N<e6(.iX4J2ZSb2iU's-C.p6
127     ,!Blr#i5*3+2eP8,rVjJH5a9/J%m^4[8uI/!'`P5`#LiIF(:p4CCN1/WKr63FDgf5ck%!8,rVj4[8u
128     I3T'l]4obQ_OlHEAJP#nB/d_RY5dCAdrg(%ob2E>F4eMcT^b#Nd5a26gb/"'sJY<(2JcPk%3$A9`IA
129     d7F:4N<eb/"'s4J2ZS^a/s\JY<(2JcPk%3$A9`IAd7F:4N<eaKPXErt`*EJY<(25aVNob/"'sr#dCa
130     IAd7Fb2E>FJcPk%3$A9`:4N<eb/"'sr#dDL4TGH^IAd7Fb2E>FJcPk%3$A9`:4N<eaQ`a*5b.lp4Wj
131     _)b,G@@3Y;>Nrmh6n.M)S$6';3>OC8,cI;FEfb2E>FD1mE>OF[C2aT2B<JY<(2JcPk%r5^iGIAd7Fr
132     &+S]b/"'s3$A9`:4N<eI'>pO3T0qs/VX)J4[;@g3<0$[I1UWg5car>8,rVj35>M<r#iM2OM_%ub/"'
133     sb2E>FJY<(2JcPk%3$A9`IAd7F:4N<eJY<(25_oC_4hq$tb)QH%3Y29438jhrrmh6.IulWT6(IuEO[
134     /tTILlM+IAd7Fb2E>FI11W[4obQ_a\Vs;D1mE>OF[CBa^G0WJcPk%r@:\mr&.(kb/"'s3$A9`:4N<e
135     b/"'sb2E>FJY<(2JcPk%3$A9`IAd7F:4N<ezzzs*t(KzIt.Luz6-oT3z6SJK?J,fQL4qI\oz!!!!s!
136     !!!$zz!s/HG!!!"\!!!!)s8W,W!!!*$!!!"@!!3-#!"]85q[3`2!<E3%!!!!"!!!!&!WW3#!!WNU!W
137     rH*If]fT!sSf.!Cp$,"p9>V!<FMOCe,mh8j5@-)[6Co!W`<V"u5N)49bn;!W`<+-`^N""p9>V!<F,D
138     Bh&@0If]WO"t'Ld!Y>A:>Q=d*zz"98E)zzzzzzzzzz!!!!\zz"9AJl!!!!dzz!rr<&!!!!ezz!!!!#
139     !!!"(zz!rr<'!!!")!!!)]z!!!!#!!!";!!!!Mz!!!!#!!!"Jzz!rr<(!!!"Kzz!rr<)!!!"Lzz!!!
140     !&!!!"^!!!"Dz!!!!&!!!"n!!!!%z!!!!&!!!#+!!!!;z!!!!&!!!#?!!!!+z!!!!&!!!#Uzz!rr<*
141     !!!#Vz!!!)]&c_n5!!!#\zz&-)\1!!!#hzz&-)\1!!!#nzz&-)\1!!!$&zz&-)\1!!!"$!!!Q<z!!!
142     "h!!!Q<z!!!#A!!!-Gz!!!#E!!!-Hz!!!#W!!!T=z!!!#e!!!-G!!!!A!!!$.!!!Q<z!!!$4!!!WUz
143     !!!$<!!!ZVz!!!$D!!!WVz!!!$X!!!-G!!!!)!!!$\!!!-H!!!!)!!!%+!!!-G!!!!1!!!%/!!!-H!
144     !!!1!!!%G!!!ZWz!!!&&!!!ZVz!!!&>!!!-H!!!!A!!!&F!!!-G!!!!9!!!&J!!!-H!!!!9!!!'[!!
145     !Q<z!!!(<!!!-G!!!!I!!!(@!!!-H!!!!I!!!(l!!!-G!!!!A!!!(p!!!-H!!!!A!!!!)!!!3Gz!!!
146     !-!!!'C!!!)]!!!!>!!!*Ezzzzzzzzzzz!!!!"!!!!$zz!!!!U!!!$Yzz!!!!"z!!!!*!!!!"!!!!'
147     z!!!%=!!!)]zz!!!!1z!!!!0!!!!"!!!!#z!!!.(!!!!Qzz!!!!)z!!!!8!!!!"!!!!#z!!!.X!!!!
148     Ezz!!!!%z!!!!?!!!!"zz!!!/'!!!"Dzz!!!!%z!!!!KJ,fQLzz!!!0J!!!!Ezz!!!!%z!!!!T!!!!
149     #zz!!!0n!!!$b!!!!"!!!!0!!!!%!!!!1!!!$1!!!!%zz!!!4Z!!!$B!!!!(!!!!#!!!!%!!!!-!!!
150     $<!!!!%zz!!!8&!!!!9!!!!(!!!!%!!!!%!!!!-!!!$H!!!!%zz!!!8>!!!!-!!!!(!!!!&!!!!%!!
151     !!-
152     xbtoa End N 2436 984 E ad S 1bf43 R a7867666
153     EOF
154     fi
155     ( cd $SRCROOT/UU ; rm -f ldexptest* )
156     fi
157     if [ -f $SRCROOT/ldexp.o ]
158     then
159     archobjs='ldexp.o'
160     fi
161    
162     # Configure sometime finds what it believes to be ndbm header files on the
163     # system and imagines that we have the NDBM library, but we really don't.
164     # There is something there that once resembled ndbm, but it is purely
165     # for internal use in some tool and has been hacked beyond recognition
166     # (or even function :-)
167     #
168     i_ndbm='undef'
169    
170     # I have no clue what perl thinks it wants <sys/mode.h> for, but if you
171     # include it in a program in PowerMAX without first including <sys/vnode.h>
172     # the code don't compile (apparently some other operating system has
173     # something completely different in its sys/mode.h)
174     #
175     i_sysmode='undef'
176    
177     # There was a bug in memcmp (which was fixed a while ago) which sometimes
178     # fails to provide the correct compare status (it is data dependant). I
179     # don't wnat to figure out if you are building with the correct version or
180     # not, so just pretend there is no memcmp (since perl has its own handy
181     # substitute).
182     #
183     d_memcmp='undef'
184    
185     # Due to problems with dynamic linking (which I also hope will be fixed soon)
186     # you can't build a libperl.so, the core has to be in the static part of the
187     # perl executable.
188     #
189     useshrplib='false'
190    
191     # PowerMAX OS has support for a few different kinds of filesystems. The
192     # newer "xfs" filesystem does *not* report a reasonable value in the
193     # 'nlinks' field of stat() info for directories (in fact, it is always 1).
194     # Since xfs is the only filesystem which supports partitions bigger than
195     # 2gig and you can't hardly buy a disk that small anymore, xfs is coming in
196     # to greater and greater use, so we pretty much have no choice but to
197     # abandon all hope that number of links will mean anything.
198     #
199     dont_use_nlink=define
200    
201     # Configure comes up with the wrong type for these for some reason. The
202     # pointers shouldn't have const in them. (And it looks like I have to
203     # provide netdb_hlen_type as well becuase when I predefine the others it
204     # comes up empty :-).
205     #
206     netdb_host_type='char *'
207     netdb_name_type='char *'
208     netdb_hlen_type='int'
209    
210     # Misc other flags that might be able to change, but I know these work right.
211     #
212     d_suidsafe='define'
213     d_isascii='define'
214     d_mymalloc='undef'
215     usemymalloc='n'
216     ssizetype='ssize_t'
217     usevfork='false'
218