* stdlib/strfmon.c [USE_IN_LIBIO]: Define lock variable and store
	point in FILE structure before calling _IO_init.
	* stdlib/Makefile: Add -D_IO_MTSAFE_IO to CFLAGS for strfmon and
	strfmon_l if necessary.
	Reported by Jury Gerold <gjury@grips.com>.
This commit is contained in:
Ulrich Drepper 2001-02-07 19:07:39 +00:00
parent 054d2bf7cc
commit 917e27b827
3 changed files with 19 additions and 0 deletions

View File

@ -1,5 +1,11 @@
2001-02-07 Ulrich Drepper <drepper@redhat.com> 2001-02-07 Ulrich Drepper <drepper@redhat.com>
* stdlib/strfmon.c [USE_IN_LIBIO]: Define lock variable and store
point in FILE structure before calling _IO_init.
* stdlib/Makefile: Add -D_IO_MTSAFE_IO to CFLAGS for strfmon and
strfmon_l if necessary.
Reported by Jury Gerold <gjury@grips.com>.
* sysdeps/gnu/netinet/tcp.h: Correct values of TCP_ macros. * sysdeps/gnu/netinet/tcp.h: Correct values of TCP_ macros.
Patch by Pekka.Pietikainen@cern.ch. Patch by Pekka.Pietikainen@cern.ch.

View File

@ -74,6 +74,13 @@ CFLAGS-bsearch.c = $(exceptions)
CFLAGS-msort.c = $(exceptions) CFLAGS-msort.c = $(exceptions)
CFLAGS-qsort.c = $(exceptions) CFLAGS-qsort.c = $(exceptions)
include ../Makeconfig
ifneq (,$(filter %REENTRANT, $(defines)))
CFLAGS-strfmon.c = -D_IO_MTSAFE_IO
CFLAGS-strfmon_l.c = -D_IO_MTSAFE_IO
endif
include ../Rules include ../Rules

View File

@ -101,6 +101,9 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
#endif #endif
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
_IO_strfile f; _IO_strfile f;
# ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
# endif
#else #else
FILE f; FILE f;
#endif #endif
@ -525,6 +528,9 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
/* Print the number. */ /* Print the number. */
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# ifdef _IO_MTSAFE_IO
f._sbf._f._lock = &lock;
# endif
_IO_init ((_IO_FILE *) &f, 0); _IO_init ((_IO_FILE *) &f, 0);
_IO_JUMPS ((struct _IO_FILE_plus *) &f) = &_IO_str_jumps; _IO_JUMPS ((struct _IO_FILE_plus *) &f) = &_IO_str_jumps;
_IO_str_init_static ((_IO_strfile *) &f, dest, (s + maxsize) - dest, dest); _IO_str_init_static ((_IO_strfile *) &f, dest, (s + maxsize) - dest, dest);