Date: Tue, 8 Jun 1999 15:05:44 -0400 Message-Id: <199906081905.PAA23218@envy.delorie.com> From: DJ Delorie To: rudd AT cyberoptics DOT com CC: eliz AT is DOT elta DOT co DOT il, djgpp-workers AT delorie DOT com In-reply-to: <375D4DF1.5F3B39F9@cyberoptics.com> (message from Eric Rudd on Tue, 08 Jun 1999 12:08:01 -0500) Subject: Re: libm sources from cyberoptics References: <375D4DF1 DOT 5F3B39F9 AT cyberoptics DOT com> Reply-To: djgpp-workers AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk [For those of you just joining us: we're talking about new math routines found at ftp://ftp.delorie.com/private/from_erudd.zip - DJ] > There are a number of routines that are non-reentrant. If it is > important for them to be reentrant, I will have to fix them. The issue of libc reentrancy came up recently. It doesn't make sense to create new non-reentrant functions if we know people are concerned with reentrancy. > > 8) I understand that we need to keep the old version of modfl, since > > there's no new one, right? > > This is a long double (non-ANSI) routine. I don't know why the old > libc had it, since practically no other long double routines were > furnished. For compatibility, we should retain it, however. printf needs it for long double support, I think. > I had a discussion with DJ about the necessity for stubs; I have to > go back and look that over again, since I didn't entirely understand > the need for them. Stubs are needed when a function defined by one spec calls a function that isn't defined by that spec. For example, if printf() calls modfl(), and printf() is ANSI but modfl() violates ANSI, then we replace modfl() with __modfl() (which is OK with ANSI) and create a stub called modfl() that simply calls __modfl(). That way, using printf() won't pollute your ANSI namespace with other functions, because now it's only calling __modfl().