On Fri, 16 Feb 2001, John Hay wrote:
> > > > DO NOT TRY TO UPGRADE -STABLE OR A PRE-FEB 10 -CURRENT TO A POST-FEB
> > > > 10 -CURRENT UNTIL THIS IS RESOLVED. YOU HAVE BEEN WARNED.
> > >
> > > Any updates on this yet ?
> >
> > Warner committed a fix for this. But I'm having trouble building world
> > with it.
>
> Well make world finished here, but it looks like all is not well. The
> resultant /usr/libexec/elf/as coredump with a signal 11. I did put an
> old one back but it only helped for a little while. gdb traceback for
> both look the same:
Try this uncompiled and untested patch to lib/libc/stdio/findfp.c.
If it doesn't compile, you should be able to tweak it.
--
Dan Eischen
Index: findfp.c
===================================================================
RCS file: /opt/b/CVS/src/lib/libc/stdio/findfp.c,v
retrieving revision 1.14
diff -u -r1.14 findfp.c
--- findfp.c 2001/02/16 06:11:22 1.14
+++ findfp.c 2001/02/16 15:25:20
@@ -66,6 +66,7 @@
/* _ub _extra */
/* the usual - (stdin + stdout + stderr) */
static FILE usual[FOPEN_MAX - 3];
+static struct usual_extra[FOPEN_MAX - 3];
static struct glue uglue = { NULL, FOPEN_MAX - 3, usual };
static struct __sFILEX __sFX[3];
@@ -215,7 +216,17 @@
void
__sinit()
{
- /* Make sure we clean up on exit. */
- __cleanup = _cleanup; /* conservative */
- __sdidinit = 1;
+ int i;
+
+ THREAD_LOCK();
+ if (__sdidinit == 0) {
+ /* Set _extra for the usual suspects. */
+ for (i = 0; i < FOPENMAX - 3; i++)
+ usual[i]._extra = &usual_extra[i];
+
+ /* Make sure we clean up on exit. */
+ __cleanup = _cleanup; /* conservative */
+ __sdidinit = 1;
+ }
+ THREAD_UNLOCK();
}
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message