This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
When threads are active we need -lpthread, but previous `fix' of
[perl5.git] / hints / cxux.sh
CommitLineData
68dc0745 1#! /local/gnu/bin/bash
d83aa01c
TH
2# Hints for the CX/UX 7.1 operating system running on Concurrent (formerly
3# Harris) NightHawk machines. written by Tom.Horsley@mail.ccur.com
94b6baf5 4#
d83aa01c 5# This config is setup for dynamic linking and the Concurrent C compiler.
94b6baf5
AD
6
7# Check some things and print warnings if this isn't going to work...
8#
9case ${SDE_TARGET:-ELF} in
10 [Cc][Oo][Ff][Ff]|[Oo][Cc][Ss]) echo ''
68dc0745 11 echo '' >&2
12 echo WARNING: Do not build perl 5 with the SDE_TARGET set to >&2
13 echo generate coff object - perl 5 must be built in the ELF >&2
14 echo environment. >&2
15 echo '' >&2
94b6baf5
AD
16 echo '';;
17 [Ee][Ll][Ff]) : ;;
68dc0745 18 *) echo '' >&2
19 echo 'Unknown SDE_TARGET value: '$SDE_TARGET >&2
20 echo '' >&2 ;;
94b6baf5
AD
21esac
22
23case `uname -r` in
24 [789]*) : ;;
25 *) echo ''
68dc0745 26 echo '' >&2
27 echo WARNING: Perl 5 requires shared library support, it cannot >&2
28 echo be built on releases of CX/UX prior to 7.0 with this hints >&2
29 echo file. You\'ll have to do a separate port for the statically >&2
30 echo linked COFF environment. >&2
31 echo '' >&2
94b6baf5
AD
32 echo '';;
33esac
34
d83aa01c 35# Internally at Concurrent, we use a source management tool which winds up
94b6baf5
AD
36# giving us read-only copies of source trees that are mostly symbolic links.
37# That upsets the perl build process when it tries to edit opcode.h and
38# embed.h or touch perly.c or perly.h, so turn those files into "real" files
39# when Configure runs. (If you already have "real" source files, this won't
40# do anything).
41#
42if [ -x /usr/local/mkreal ]
43then
44 for i in '.' '..'
45 do
46 for j in embed.h opcode.h perly.h perly.c
47 do
48 if [ -h $i/$j ]
49 then
50 ( cd $i ; /usr/local/mkreal $j ; chmod 666 $j )
51 fi
52 done
53 done
54fi
55
56# We DO NOT want -lmalloc
57#
58libswanted=`echo ' '$libswanted' ' | sed -e 's/ malloc / /'`
59
60# Stick the low-level elf library path in first.
61#
62glibpth="/usr/sde/elf/usr/lib $glibpth"
63
ef2d312d
TH
64# Need to use Concurrent cc for most of these options to be meaningful (if
65# you want to get this to work with gcc, you're on your own :-). Passing
94b6baf5
AD
66# -Bexport to the linker when linking perl is important because it leaves
67# the interpreter internal symbols visible to the shared libs that will be
ef2d312d
TH
68# loaded on demand (and will try to reference those symbols). The -u option
69# to drag 'sigaction' into the perl main program is to make sure it gets
70# defined for the posix shared library (for some reason sigaction is static,
71# rather than being defined in libc.so.1). The 88110compat option makes sure
72# the code will run on both 88100 and 88110 machines. The define is added to
73# trigger a work around for a compiler bug which shows up in pp.c.
94b6baf5 74#
ef2d312d 75cc='/bin/cc -Xa -Qtarget=M88110compat -DCXUX_BROKEN_CONSTANT_CONVERT'
94b6baf5
AD
76cccdlflags='-Zelf -Zpic'
77ccdlflags='-Zelf -Zlink=dynamic -Wl,-Bexport -u sigaction'
5d94fbed 78lddlflags='-Zlink=so'
94b6baf5 79
94b6baf5 80# Configure imagines that it sees a pw_quota field, but it is really in a
4aa0a1f7 81# different structure than the one it thinks it is looking at.
94b6baf5 82d_pwquota='undef'
94b6baf5 83
4aa0a1f7 84# Configure sometimes finds what it believes to be ndbm header files on the
94b6baf5
AD
85# system and imagines that we have the NDBM library, but we really don't.
86# There is something there that once resembled ndbm, but it is purely
87# for internal use in some tool and has been hacked beyond recognition
88# (or even function :-)
89#
90i_ndbm='undef'
91
92# Don't use the perl malloc
93#
94d_mymalloc='undef'
95usemymalloc='n'
4aa0a1f7 96
68dc0745 97cat <<'EOM' >&4
4aa0a1f7 98
d83aa01c
TH
99WARNING: If you are using ksh to run the Configure script, you may find it
100failing in mysterious ways (such as failing to find library routines which
101are known to exist). Configure seems to push ksh beyond its limits
102sometimes. Try using env to strip unnecessary things out of the environment
103and run Configure with /sbin/sh. That sometimes seems to produce more
104accurate results.
4aa0a1f7
AD
105
106EOM