This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[patch] -Wall
[perl5.git] / hints / mpeix.sh
CommitLineData
1d84e8df
JH
1# The MPE/iX linker doesn't complain about unresolved symbols, and so the only
2# way to test for unresolved symbols in a program is by attempting to run it.
3# But this is slow, and fraught with problems, so the better solution is to use
4# nm.
5#
6# MPE/iX lacks a fully functional native nm, so we need to use our fake nm
7# script which will extract the symbol info from the native link editor and
8# reformat into something nm-like.
9#
10# Created for 5.003 by Mark Klein, mklein@dis.com.
11# Substantially revised for 5.004_01 by Mark Bixby, markb@cccd.edu.
12# Revised again for 5.004_69 by Mark Bixby, markb@cccd.edu.
f6e660f0 13# Revised for 5.6.0 by Mark Bixby, mbixby@power.net.
1d84e8df 14#
1aef975c 15osname='mpeix'
f6e660f0 16osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'`
1d84e8df
JH
17#
18# Force Configure to use our wrapper mpeix/nm script
19#
20PATH="$PWD/mpeix:$PATH"
21nm="$PWD/mpeix/nm"
22_nm=$nm
23nm_opt='-configperl'
24usenm='true'
25#
26# Various directory locations.
27#
c22e42be
AD
28# Which ones of these does Configure get wrong?
29test -z "$prefix" && prefix='/PERL/PUB'
1d84e8df
JH
30archname='PA-RISC1.1'
31bin="$prefix"
32installman1dir="$prefix/man/man1"
33installman3dir="$prefix/man/man3"
34man1dir="$prefix/man/man1"
35man3dir="$prefix/man/man3"
36perlpath="$prefix/PERL"
37scriptdir="$prefix"
203df805 38startperl="#!$prefix/perl"
1d84e8df
JH
39startsh='#!/bin/sh'
40#
41# Compiling.
42#
c22e42be 43test -z "$cc" && cc='gcc'
1d84e8df 44cccdlflags='none'
c22e42be
AD
45ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF"
46locincpth="$locincpth /usr/local/include /usr/contrib/include /BIND/PUB/include"
47test -z "$optimize" && optimize="-O2"
1d84e8df
JH
48ranlib='/bin/true'
49# Special compiling options for certain source files.
c22e42be 50# But what if you want -g?
1d84e8df
JH
51regcomp_cflags='optimize=-O'
52toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
53#
54# Linking.
55#
56lddlflags='-b'
f6e660f0
JH
57# Delete bsd and BSD from the library list. Remove other randomly ordered
58# libraries and then re-add them in their proper order (the MPE linker is
59# order-sensitive). Add additional MPE-specific libraries.
60for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do
61 set `echo " $libswanted " | sed -e 's/ / /g' -e "s/ $mpe_remove //"`
62 libswanted="$*"
63done
64libswanted="$libswanted bind syslog curses svipc socket str m c"
c22e42be 65loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BIND/PUB/lib /SYSLOG/PUB"
1d84e8df
JH
66#
67# External functions and data items.
68#
f6e660f0 69# Q: Does Configure *really* get *all* of these wrong?
c22e42be 70#
f6e660f0
JH
71# A: Yes. There are two MPE problems here. The 'undef' functions exist on MPE,
72# but are merely dummy routines that return ENOTIMPL or ESYSERR. Since they're
73# useless, let's just tell Perl to avoid them. Also, a few data items are
74# 'undef' because while they may exist in structures, they are uninitialized.
75#
76# The 'define' cases are a bit weirder. MPE has a libc.a, libc.sl, and two
77# special kernel shared libraries, /SYS/PUB/XL and /SYS/PUB/NL. Much of what
78# is in libc.a is duplicated within XL and NL, so when we created libc.sl, we
79# omitted the duplicated functions. Since Configure end ups scanning libc.sl,
80# we need to 'define' the functions that had been removed.
81#
82# We don't want to scan XL or NL because we would find way too many POSIX or
83# Unix named functions that are really vanilla MPE functions that do something
84# completely different than on POSIX or Unix.
1d84e8df
JH
85d_crypt='define'
86d_difftime='define'
87d_dlerror='undef'
88d_dlopen='undef'
89d_Gconvert='gcvt((x),(n),(b))'
90d_inetaton='undef'
1aef975c 91d_link='undef'
1d84e8df
JH
92d_mblen='define'
93d_mbstowcs='define'
94d_mbtowc='define'
95d_memcmp='define'
96d_memcpy='define'
97d_memmove='define'
98d_memset='define'
99d_pwage='undef'
1aef975c 100d_pwcomment='undef'
1d84e8df
JH
101d_pwgecos='undef'
102d_pwpasswd='undef'
103d_setpgid='undef'
104d_setsid='undef'
105d_setvbuf='define'
1aef975c 106d_statblks='undef'
1d84e8df
JH
107d_strchr='define'
108d_strcoll='define'
109d_strerrm='strerror(e)'
110d_strerror='define'
111d_strtod='define'
112d_strtol='define'
113d_strtoul='define'
114d_strxfrm='define'
115d_syserrlst='define'
116d_time='define'
117d_wcstombs='define'
118d_wctomb='define'
119#
120# Include files.
121#
f6e660f0 122i_termios='undef' # we have termios, but not the full set (just tcget/setattr)
1d84e8df
JH
123i_time='define'
124i_systime='undef'
125i_systimek='undef'
126timeincl='/usr/include/time.h'
127#
128# Data types.
129#
130timetype='time_t'
f6e660f0
JH
131#
132# Functionality.
133#
134bincompat5005="$undef"
135uselargefiles="$undef"