develooper Front page | perl.perl5.porters | Postings from March 2001

Re: [PATCH 5.7.0] compiling on OS/2: 5.6.1 too

From:
Ilya Zakharevich
Date:
March 3, 2001 11:22
Subject:
Re: [PATCH 5.7.0] compiling on OS/2: 5.6.1 too
Message ID:
20010303142214.A2452@math.ohio-state.edu
On Sat, Mar 03, 2001 at 11:17:38AM -0600, Jarkko Hietaniemi wrote:
> > A similar patch is needed for 5.6.1 (only the first two chunks omited).
> > 
> > I put it below:
> 
> Thanks, applied.  (Though in the current 5.6.1-to-be copy the get*()
> function were typed as returning struct hostent * etc, not void*, so
> that hunk failed, had to add the #ifndef manually.

Oups, then this part of the patch is not needed, an in fact it hurs a
lot.  Here are the hairy details:

Having 

  struct hostent *	gethostent()	{ return tcp0("GETHOSTENT");}

makes a call to gethostent() load the DLL for TCPIP API at runtime.
Here are the benefits:

  a) Perl is not compile-time linked to this DLL, thus the DLL is not
     required to be present as far as the functions are not used;
     Thus perl may be used on TCI/IP-less systems (such as a floppy
     boot, or minimal installs).

  b) At least my version of TCPIP API DLL resets the floating-point
     flags in _DLLInitTerm() function (!!!).  Thus after loading this
     DLL FP "events" will cause a SIGFPE.

     Without this patch

       $a = getnetent(); $x = 3000; print exp $x

     cores.  With this patch applied even 'exp 3000' cores.  Both are bugs,
     but the effects of these bugs are very different.

Ilya



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About