Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Feb 2001 10:28:57 -0500 (EST)
From:      Daniel Eischen <eischen@vigrid.com>
To:        John Hay <jhay@icomtek.csir.co.za>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: HEADS UP: -current world broken since Feb 10
Message-ID:  <Pine.SUN.3.91.1010216102637.2824A-100000@pcnet1.pcnet.com>
In-Reply-To: <200102161309.f1GD9bI49385@zibbi.icomtek.csir.co.za>

next in thread | previous in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.1010216102637.2824A-100000>