Mailing List Archive

install posix problem
Can't get POSIX support to work on an old NCR_TOWER with AT&T SysVR2;
below are the cuts from Configure and make runs. I have not included POSIX
support for now, with only an error from "make test" as the result (see end
of this message).

No -lcposix.
No -lposix.

What extensions do you wish to include? [Fcntl POSIX SDBM_File]

Run make depend now? [y]
./makedepend
sh writemain lib/auto/DynaLoader/DynaLoader.a lib/auto/Fcntl/Fcntl.a
lib/auto/POSIX/POSIX.a lib/auto/SDBM_File/SDBM_File.a > tmp
sh mv-if-diff tmp perlmain.c
File perlmain.c not changed.
echo malloc.c av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c perl.c
perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c gv.c sv.c taint.c
toke.c util.c deb.c run.c globals.c miniperlmain.c perlmain.c | tr ' ' '\012'
>.clist
Finding dependencies for malloc.o.
Finding dependencies for av.o.
Finding dependencies for scope.o.

Making POSIX (static)
Makefile out-of-date with respect to ../../lib/Config.pm ../../config.h
Cleaning current config before rebuilding Makefile...
make -f Makefile.old clean >/dev/null 2>&1 || true
../../miniperl "-I../../lib" "-I../../lib" Makefile.PL LIBPERL_A=libperl.a
CCCMD = cc -c -W2,-Sl,1500 -W0,-Sp,350,-Ss,2500 -Wp,-Sd,30 -O0
Writing Makefile for POSIX
Warning (non-fatal): No library found for -lposix
Warning (non-fatal): No library found for -lcposix
Now you must rerun make.
*** Error code 1

Stop.
make config failed, continuing anyway...
../../miniperl -I../../lib -I../../lib ../../lib/ExtUtils/xsubpp -typemap
../../lib/ExtUtils/typemap -typemap typemap POSIX.xs >POSIX.tc && mv POSIX.tc
POSIX.c
cc -c -W2,-Sl,1500 -W0,-Sp,350,-Ss,2500 -Wp,-Sd,30 -O0 -I../.. POSIX.c
POSIX.c: 26: Can't find include file locale.h
POSIX.c: 57: Can't find include file sys/wait.h
*** Error code 1

Stop.


When installed without POSIX support, the only problem is "make test" tries
the posix tests anyway. Is it possible to set up so test will not be run if
POSIX (or whatever) is not included?
>lib/posix......1..0
>FAILED on test 0
Re: install posix problem [ In reply to ]
Excerpts from the mail message of UNIXdoug@aol.com:
) Can't get POSIX support to work on an old NCR_TOWER with AT&T SysVR2;

Because that system is too old to be POSIX. There is a lot of
useful stuff in POSIX.pm that is pretty much portable to the
majority of Unix systems, including yours. However, the winning
position of the Porters fell between:
`"use POSIX;" should fail if the system isn't POSIX complient.'
and
`"use POSIX;" should do as much on as many systems as possible.'
"use POSIX;" will fail except on systems that are mostly POSIX
complient. Slowly, significant chunks of POSIX.pm are moved into
separate modules (like Fcntl.pm) so that more system can make use
of them.

) POSIX.c: 26: Can't find include file locale.h
) POSIX.c: 57: Can't find include file sys/wait.h
) *** Error code 1

Normally you would add Configure tests for <locale.h> and #ifdef
around this stuff to get POSIX.pm working on your system.
However, your patches would probably be rejected as enough of
the Porters seem to feel that POSIX.pm is too forgiving already.

So if you miss any particular functionality of POSIX.pm, just
split it out into its own module and make it more portable and
we'll eventually be able to make POSIX.pm reject non-POSIX systems
and also have everything in POSIX.pm supported on lots of systems.

) When installed without POSIX support, the only problem is "make test" tries
) the posix tests anyway. Is it possible to set up so test will not be run if
) POSIX (or whatever) is not included?
) >lib/posix......1..0
) >FAILED on test 0

I think you just need to add:

BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bPOSIX\b/) {
print "1..0\n";
exit 0;
}
}

to the top of t/lib/posix.t.
--
Tye McQueen tye@metronet.com || tye@doober.usu.edu
Nothing is obvious unless you are overlooking something
http://www.metronet.com/~tye/ (scripts, links, nothing fancy)