| 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 |
|
|
|