X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fmpeix.sh;h=5126bcf3b84c59b750269ab543241dd4cf5bbef3;hb=6137113dfd943e6f896f8b9c1a4df2b7d4e355ae;hp=4a32b77fa2624173621d4b1d705ea8f67a572bf3;hpb=203df805b70102c8e0cec92be7f5eef686d2a3e0;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/mpeix.sh b/hints/mpeix.sh index 4a32b77..5126bcf 100644 --- a/hints/mpeix.sh +++ b/hints/mpeix.sh @@ -10,9 +10,12 @@ # Created for 5.003 by Mark Klein, mklein@dis.com. # Substantially revised for 5.004_01 by Mark Bixby, markb@cccd.edu. # Revised again for 5.004_69 by Mark Bixby, markb@cccd.edu. +# Revised for 5.6.0 by Mark Bixby, mbixby@power.net. +# Revised for 5.7.3 by Mark Bixby, mark@bixby.org. +# Revised for 5.8.0 by Mark Bixby, mark@bixby.org. # osname='mpeix' -osvers='5.5' +osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'` # # Force Configure to use our wrapper mpeix/nm script # @@ -22,9 +25,14 @@ _nm=$nm nm_opt='-configperl' usenm='true' # +# Work around the broken inline cat bug that corrupts here docs +# +alias -x cat=/bin/cat +# # Various directory locations. # -prefix='/PERL/PUB' +# Which ones of these does Configure get wrong? +test -z "$prefix" && prefix="/$HPACCOUNT/$HPGROUP" archname='PA-RISC1.1' bin="$prefix" installman1dir="$prefix/man/man1" @@ -38,34 +46,67 @@ startsh='#!/bin/sh' # # Compiling. # -cc='gcc' +test -z "$cc" && cc='gcc' cccdlflags='none' -ccflags='-DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF' -locincpth='/usr/local/include /usr/contrib/include /BIND/PUB/include' -optimize='-O2' +ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF" +locincpth="$locincpth /usr/local/include /usr/contrib/include /BINDFW/CURRENT/include /SYSLOG/PUB" +test -z "$optimize" && optimize="-O2" ranlib='/bin/true' # Special compiling options for certain source files. +# But what if you want -g? regcomp_cflags='optimize=-O' toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' # # Linking. # lddlflags='-b' -libs='-lbind -lsvipc -lsocket -lm -lc' -loclibpth='/usr/local/lib /usr/contrib/lib /BIND/PUB/lib' +# Delete bsd and BSD from the library list. Remove other randomly ordered +# libraries and then re-add them in their proper order (the MPE linker is +# order-sensitive). Add additional MPE-specific libraries. +for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do + set `echo " $libswanted " | sed -e 's/ / /g' -e "s/ $mpe_remove //"` + libswanted="$*" +done +libswanted="$libswanted bind syslog curses svipc socket str m c" +loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BINDFW/CURRENT/lib /SYSLOG/PUB" # # External functions and data items. # +# Q: Does Configure *really* get *all* of these wrong? +# +# A: Yes. There are two MPE problems here. The 'undef' functions exist on MPE, +# but are merely dummy routines that return ENOTIMPL or ESYSERR. Since they're +# useless, let's just tell Perl to avoid them. Also, a few data items are +# 'undef' because while they may exist in structures, they are uninitialized. +# +# The 'define' cases are a bit weirder. MPE has a libc.a, libc.sl, and two +# special kernel shared libraries, /SYS/PUB/XL and /SYS/PUB/NL. Much of what +# is in libc.a is duplicated within XL and NL, so when we created libc.sl, we +# omitted the duplicated functions. Since Configure end ups scanning libc.sl, +# we need to 'define' the functions that had been removed. +# +# We don't want to scan XL or NL because we would find way too many POSIX or +# Unix named functions that are really vanilla MPE functions that do something +# completely different than on POSIX or Unix. d_crypt='define' +d_dbmclose='undef' d_difftime='define' d_dlerror='undef' d_dlopen='undef' d_Gconvert='gcvt((x),(n),(b))' +d_getnbyaddr='define' +d_getnbyname='define' +d_getpbyname='define' +d_getpbynumber='define' +d_getsbyname='define' +d_getsbyport='define' +d_gettimeod='undef' d_inetaton='undef' d_link='undef' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' +d_memchr='define' d_memcmp='define' d_memcpy='define' d_memmove='define' @@ -74,6 +115,9 @@ d_pwage='undef' d_pwcomment='undef' d_pwgecos='undef' d_pwpasswd='undef' +d_setegid='undef' +d_seteuid='undef' +d_setitimer='undef' d_setpgid='undef' d_setsid='undef' d_setvbuf='define' @@ -93,7 +137,8 @@ d_wctomb='define' # # Include files. # -i_termios='undef' +i_gdbm='undef' # the port is currently incomplete +i_termios='undef' # we have termios, but not the full set (just tcget/setattr) i_time='define' i_systime='undef' i_systimek='undef' @@ -102,3 +147,17 @@ timeincl='/usr/include/time.h' # Data types. # timetype='time_t' +# +# Functionality. +# +uselargefiles="$undef" +# +# Expected functionality provided in mpeix.c. +# +archobjs='mpeix.o' + +# Help gmake find mpeix.c +test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c + +d_gettimeod='define' +d_truncate='define'