Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Feb 2001 22:39:14 +0600 (NOVT)
From:      nnd@mail.nsk.ru
To:        current@freebsd.org
Subject:   Re: HEADS UP: -current world broken since Feb 10
Message-ID:  <200102161639.f1GGdE780810@wint.itfs.nsk.su>
In-Reply-To: <Pine.SUN.3.91.1010216102637.2824A-100000@pcnet1.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Daniel Eischen <eischen@vigrid.com> wrote:

>Try this uncompiled and untested patch to lib/libc/stdio/findfp.c.
>If it doesn't compile, you should be able to tweak it.

	After small tweak this patch comiles and works - i.e.
I can now make /usr/ports/devel/gettext.

	N.Dudorov

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 __sFILEX 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 < FOPEN_MAX - 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?200102161639.f1GGdE780810>