* Makefile (subdirs): Replace stdio with stdio-common and $(stdio).

* configure.in: Grok arg --enable-libio.
	($stdio = libio): Define USE_IN_LIBIO.
	* config.h.in (USE_IN_LIBIO): Add #undef.
	* config.make.in (stdio): New variable, set by configure.
	* Makeconfig (stdio): New variable.
	* stdio.h [USE_IN_LIBIO]: Include libio/stdio.h instead of
	stdio/stdio.h.
	* stdio-common/Makefile: New file.
	* stdio/Makefile: Half the contents moved to stdio-common/Makefile.
	* stdio/_itoa.c: Moved to stdio-common.
	* stdio/_itoa.h: Moved to stdio-common.
	* stdio/asprintf.c: Moved to stdio-common.
	* stdio/bug1.c: Moved to stdio-common.
	* stdio/bug1.input: Moved to stdio-common.
	* stdio/bug2.c: Moved to stdio-common.
	* stdio/bug3.c: Moved to stdio-common.
	* stdio/bug4.c: Moved to stdio-common.
	* stdio/bug5.c: Moved to stdio-common.
	* stdio/bug6.c: Moved to stdio-common.
	* stdio/bug6.input: Moved to stdio-common.
	* stdio/bug7.c: Moved to stdio-common.
	* stdio/dprintf.c: Moved to stdio-common.
	* stdio/errnobug.c: Moved to stdio-common.
	* stdio/getline.c: Moved to stdio-common.
	* stdio/getw.c: Moved to stdio-common.
	* stdio/perror.c: Moved to stdio-common.
	* stdio/printf-parse.h: Moved to stdio-common.
	* stdio/printf-prs.c: Moved to stdio-common.
	* stdio/printf.c: Moved to stdio-common.
	* stdio/printf.h: Moved to stdio-common.
	* stdio/printf_fp.c: Moved to stdio-common.
	* stdio/psignal.c: Moved to stdio-common.
	* stdio/putw.c: Moved to stdio-common.
	* stdio/reg-printf.c: Moved to stdio-common.
	* stdio/scanf.c: Moved to stdio-common.
	* stdio/snprintf.c: Moved to stdio-common.
	* stdio/sprintf.c: Moved to stdio-common.
	* stdio/sscanf.c: Moved to stdio-common.
	* stdio/tempnam.c: Moved to stdio-common.
	* stdio/temptest.c: Moved to stdio-common.
	* stdio/test-fseek.c: Moved to stdio-common.
	* stdio/test-fwrite.c: Moved to stdio-common.
	* stdio/test-popen.c: Moved to stdio-common.
	* stdio/test_rdwr.c: Moved to stdio-common.
	* stdio/tmpfile.c: Moved to stdio-common.
	* stdio/tmpnam.c: Moved to stdio-common.
	* stdio/tst-fileno.c: Moved to stdio-common.
	* stdio/tst-printf.c: Moved to stdio-common.
	* stdio/tstgetln.c: Moved to stdio-common.
	* stdio/tstgetln.input: Moved to stdio-common.
	* stdio/tstscanf.c: Moved to stdio-common.
	* stdio/tstscanf.input: Moved to stdio-common.
	* stdio/vfprintf.c: Moved to stdio-common.
	* stdio/vfscanf.c: Moved to stdio-common.
	* stdio/vprintf.c: Moved to stdio-common.
	* stdio/xbug.c: Moved to stdio-common.
	* sysdeps/generic/Makefile (siglist.c rules): Do this in subdir
	stdio-common instead of stdio.
	* sysdeps/unix/Makefile (errlist.c rules): Likewise.
	* stdio-common/asprintf.c [USE_IN_LIBIO]: Call libio primitive
	function.
	* stdio-common/dprintf.c: Likewise.
	* stdio-common/printf.c: Likewise.
	* stdio-common/scanf.c: Likewise.
	* stdio-common/snprintf.c: Likewise.
	* stdio-common/sprintf.c: Likewise.
	* stdio-common/sscanf.c: Likewise.
	* stdio-common/vprintf.c: Likewise.

	* Makerules: Include $(+depfiles) directly instead of generating
	depend-$(subdir).
	(depend-$(subdir)): Target removed.
	(common-clean): Don't remove depend-$(subdir).
This commit is contained in:
Roland McGrath 1995-10-17 00:41:39 +00:00
parent 10fd03c601
commit deab9deadc
66 changed files with 235 additions and 87 deletions

View File

@ -1,5 +1,80 @@
Mon Oct 16 03:22:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makefile (subdirs): Replace stdio with stdio-common and $(stdio).
* configure.in: Grok arg --enable-libio.
($stdio = libio): Define USE_IN_LIBIO.
* config.h.in (USE_IN_LIBIO): Add #undef.
* config.make.in (stdio): New variable, set by configure.
* Makeconfig (stdio): New variable.
* stdio.h [USE_IN_LIBIO]: Include libio/stdio.h instead of
stdio/stdio.h.
* stdio-common/Makefile: New file.
* stdio/Makefile: Half the contents moved to stdio-common/Makefile.
* stdio/_itoa.c: Moved to stdio-common.
* stdio/_itoa.h: Moved to stdio-common.
* stdio/asprintf.c: Moved to stdio-common.
* stdio/bug1.c: Moved to stdio-common.
* stdio/bug1.input: Moved to stdio-common.
* stdio/bug2.c: Moved to stdio-common.
* stdio/bug3.c: Moved to stdio-common.
* stdio/bug4.c: Moved to stdio-common.
* stdio/bug5.c: Moved to stdio-common.
* stdio/bug6.c: Moved to stdio-common.
* stdio/bug6.input: Moved to stdio-common.
* stdio/bug7.c: Moved to stdio-common.
* stdio/dprintf.c: Moved to stdio-common.
* stdio/errnobug.c: Moved to stdio-common.
* stdio/getline.c: Moved to stdio-common.
* stdio/getw.c: Moved to stdio-common.
* stdio/perror.c: Moved to stdio-common.
* stdio/printf-parse.h: Moved to stdio-common.
* stdio/printf-prs.c: Moved to stdio-common.
* stdio/printf.c: Moved to stdio-common.
* stdio/printf.h: Moved to stdio-common.
* stdio/printf_fp.c: Moved to stdio-common.
* stdio/psignal.c: Moved to stdio-common.
* stdio/putw.c: Moved to stdio-common.
* stdio/reg-printf.c: Moved to stdio-common.
* stdio/scanf.c: Moved to stdio-common.
* stdio/snprintf.c: Moved to stdio-common.
* stdio/sprintf.c: Moved to stdio-common.
* stdio/sscanf.c: Moved to stdio-common.
* stdio/tempnam.c: Moved to stdio-common.
* stdio/temptest.c: Moved to stdio-common.
* stdio/test-fseek.c: Moved to stdio-common.
* stdio/test-fwrite.c: Moved to stdio-common.
* stdio/test-popen.c: Moved to stdio-common.
* stdio/test_rdwr.c: Moved to stdio-common.
* stdio/tmpfile.c: Moved to stdio-common.
* stdio/tmpnam.c: Moved to stdio-common.
* stdio/tst-fileno.c: Moved to stdio-common.
* stdio/tst-printf.c: Moved to stdio-common.
* stdio/tstgetln.c: Moved to stdio-common.
* stdio/tstgetln.input: Moved to stdio-common.
* stdio/tstscanf.c: Moved to stdio-common.
* stdio/tstscanf.input: Moved to stdio-common.
* stdio/vfprintf.c: Moved to stdio-common.
* stdio/vfscanf.c: Moved to stdio-common.
* stdio/vprintf.c: Moved to stdio-common.
* stdio/xbug.c: Moved to stdio-common.
* sysdeps/generic/Makefile (siglist.c rules): Do this in subdir
stdio-common instead of stdio.
* sysdeps/unix/Makefile (errlist.c rules): Likewise.
* stdio-common/asprintf.c [USE_IN_LIBIO]: Call libio primitive
function.
* stdio-common/dprintf.c: Likewise.
* stdio-common/printf.c: Likewise.
* stdio-common/scanf.c: Likewise.
* stdio-common/snprintf.c: Likewise.
* stdio-common/sprintf.c: Likewise.
* stdio-common/sscanf.c: Likewise.
* stdio-common/vprintf.c: Likewise.
* Makerules: Include $(+depfiles) directly instead of generating
depend-$(subdir).
(depend-$(subdir)): Target removed.
(common-clean): Don't remove depend-$(subdir).
* sysdeps/unix/sysv/linux/Makefile (rtld-installed-name): New variable.
(config-LDFLAGS): Variable removed.

View File

@ -114,6 +114,12 @@ export sysdep_dir := $(sysdep_dir)
####
# Set this to either `stdio' or `libio', to compile in either GNU stdio
# or GNU libio.
ifndef stdio
stdio = stdio
endif
# Common prefix for machine-independent installation directories.
ifeq ($(origin prefix),undefined) # ifndef would override explicit empty value.
prefix = /usr/local

View File

@ -51,10 +51,10 @@ sysdep-subdirs := $(subst $(\n), ,$(sysdep-subdirs))
endif
# These are the subdirectories containing the library source.
subdirs := csu assert ctype locale intl math setjmp signal stdio stdlib \
malloc string time dirent grp pwd posix io termios resource \
misc socket sysvipc gmon gnulib $(wildcard crypt) manual \
$(sysdep-subdirs) elf
subdirs = csu assert ctype locale intl math setjmp signal stdlib \
stdio-common $(stdio) malloc string time dirent grp pwd \
posix io termios resource misc socket sysvipc gmon gnulib \
$(wildcard crypt) manual $(sysdep-subdirs) elf
export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63.
# The mach and hurd subdirectories have many generated header files which

View File

@ -301,19 +301,10 @@ endif
$(filter-out $(addsuffix .d,$(omit-deps)),\
$(+depfiles)))
$(objpfx)depend-$(subdir): Makefile
ifdef +depfiles
for file in $(+depfiles:$(objpfx)%=%); do \
echo "include \$$(objpfx)$$file"; \
done > $@-tmp
mv -f $@-tmp $@
else
cp /dev/null $@
endif
ifneq ($(no_deps),t)
# Include the generated dependencies of the sources in this directory.
include $(objpfx)depend-$(subdir)
include $(+depfiles)
endif
endif
# Maximize efficiency by minimizing the number of rules.
@ -623,8 +614,7 @@ endef
# Also remove the dependencies and generated source files.
common-clean: common-mostlyclean
-rm -f $(objpfx)depend-$(subdir) $(+depfiles)
-rm -f $(addprefix $(objpfx),$(generated))
-rm -f $(addprefix $(objpfx),$(generated)) $(+depfiles)
# Produce a file `stub-$(subdir)' which contains `#define __stub_FUNCTION'
# for each function which is a stub. We grovel over all the .d files

View File

@ -30,6 +30,10 @@
#define HAVE_WEAK_SYMBOLS
#endif
#endif
/* Define to use GNU libio instead of GNU stdio.
This is defined by configure under --enable-libio. */
#undef USE_IN_LIBIO
/* */
/* These symbols might be defined by some sysdeps configures. */

View File

@ -24,6 +24,7 @@ gnu-ld = @gnu_ld@
build-shared = @shared@
build-profile = @profile@
build-omitfp = @omitfp@
stdio = @stdio@
# Build tools.
CC = @CC@

View File

@ -40,6 +40,11 @@ AC_ARG_WITH(weak-symbols, dnl
--with-weak-symbols if weak symbols are available in as and ld,
weak=$withval, weak=no)
AC_ARG_ENABLE(libio, dnl
[ --enable-libio build in GNU libio instead of GNU stdio],
stdio=libio, stdio=stdio)
AC_SUBST(stdio)
dnl Arguments to enable or disable building the shared, profiled, and
dnl -fomit-frame-pointer libraries.
AC_ARG_ENABLE(shared, dnl
@ -485,6 +490,9 @@ fi
AC_SUBST(profile)
AC_SUBST(omitfp)
if test $stdio = libio; then
AC_DEFINE(USE_IN_LIBIO)
fi
if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
config_makefile=

47
stdio-common/Makefile Normal file
View File

@ -0,0 +1,47 @@
# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
#
# Specific makefile for stdio-common.
#
subdir := stdio-common
headers := stdio_lim.h printf.h
routines := \
ctermid cuserid \
vfprintf vprintf printf_fp reg-printf printf-prs _itoa \
vsnprintf vsprintf vasprintf \
fprintf printf snprintf sprintf asprintf \
dprintf vdprintf \
vfscanf vscanf vsscanf \
fscanf scanf sscanf \
perror psignal \
tmpfile tmpnam tempnam tempname \
getline getw putw \
remove rename
aux := errlist siglist
distribute := _itoa.h printf-parse.h
tests := tst-printf tstscanf test_rdwr test-popen tstgetln test-fseek \
temptest tst-fileno test-fwrite \
xbug errnobug \
bug1 bug2 bug3 bug4 bug5 bug6 bug7
include ../Rules

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,24 +16,27 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define vasprintf _IO_vasprintf
#endif
/* Write formatted output from FORMAT to a string which is
allocated with malloc and stored in *STRING_PTR. */
/* VARARGS2 */
int
DEFUN(asprintf, (string_ptr, format),
char **string_ptr AND CONST char *format DOTS)
asprintf (string_ptr, format)
char **string_ptr;
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = vasprintf(string_ptr, format, arg);
va_end(arg);
va_start (arg, format);
done = vasprintf (string_ptr, format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,22 +16,26 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define vdprintf _IO_vdprintf
#endif
/* Write formatted output to D, according to the format string FORMAT. */
/* VARARGS2 */
int
DEFUN(dprintf, (d, format), int d AND CONST char *format DOTS)
dprintf (d, format)
int d;
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = vdprintf(d, format, arg);
va_end(arg);
va_start (arg, format);
done = vdprintf (d, format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,22 +16,25 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define vprintf _IO_vprintf
#endif
/* Write formatted output to stdout from the format string FORMAT. */
/* VARARGS1 */
int
DEFUN(printf, (format), CONST char *format DOTS)
printf (format)
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = vprintf(format, arg);
va_end(arg);
va_start (arg, format);
done = vprintf (format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,22 +16,25 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define vscanf _IO_vscanf
#endif
/* Read formatted input from stdin according to the format string FORMAT. */
/* VARARGS1 */
int
DEFUN(scanf, (format), CONST char *format DOTS)
scanf (format)
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = vscanf(format, arg);
va_end(arg);
va_start (arg, format);
done = vscanf (format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,24 +16,28 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define vsnprintf _IO_vsnprintf
#endif
/* Write formatted output into S, according to the format
string FORMAT, writing no more than MAXLEN characters. */
/* VARARGS3 */
int
DEFUN(snprintf, (s, maxlen, format),
char *s AND size_t maxlen AND CONST char *format DOTS)
snprintf (s, maxlen, format)
char *s;
size_t maxlen;
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = vsnprintf(s, maxlen, format, arg);
va_end(arg);
va_start (arg, format);
done = vsnprintf (s, maxlen, format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,22 +16,26 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define vsprintf _IO_vsprintf
#endif
/* Write formatted output into S, according to the format string FORMAT. */
/* VARARGS2 */
int
DEFUN(sprintf, (s, format), char *s AND CONST char *format DOTS)
sprintf (s, format)
char *s;
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = vsprintf(s, format, arg);
va_end(arg);
va_start (arg, format);
done = vsprintf (s, format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,22 +16,26 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# define __vsscanf _IO_vsscanf
#endif
/* Read formatted input from S, according to the format string FORMAT. */
/* VARARGS2 */
int
DEFUN(sscanf, (s, format), CONST char *s AND CONST char *format DOTS)
sscanf (s, format)
const char *s;
const char *format;
{
va_list arg;
int done;
va_start(arg, format);
done = __vsscanf(s, format, arg);
va_end(arg);
va_start (arg, format);
done = __vsscanf (s, format, arg);
va_end (arg);
return done;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,18 +16,22 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#undef __OPTIMIZE__ /* Avoid inline `vprintf' function. */
#include <stdio.h>
#undef vprintf
#ifdef USE_IN_LIBIO
# define vfprintf _IO_vfprintf
#endif
/* Write formatted output to stdout according to the
format string FORMAT, using the argument list in ARG. */
int
DEFUN(vprintf, (format, arg), CONST char *format AND __gnuc_va_list arg)
vprintf (format, arg)
const char *format;
__gnuc_va_list arg;
{
return vfprintf (stdout, format, arg);
}

View File

@ -1 +1,5 @@
#ifdef USE_IN_LIBIO
#include <libio/stdio.h>
#else
#include <stdio/stdio.h>
#endif

View File

@ -21,39 +21,23 @@
#
subdir := stdio
headers := stdio.h stdio_lim.h printf.h
headers := stdio.h
routines := \
ctermid cuserid \
feof ferror clearerr fileno \
newstream fopen freopen fdopen fopncook fmemopen \
setbuf setvbuf setbuffer setlinebuf \
fseek ftell rewind fgetpos fsetpos \
vfprintf vprintf printf_fp reg-printf printf-prs _itoa \
vsnprintf vsprintf vasprintf \
fprintf printf snprintf sprintf asprintf \
dprintf vdprintf \
vfscanf vscanf vsscanf \
fscanf scanf sscanf \
fread fwrite \
ungetc \
fgetc getc getchar getw \
fputc putc putchar putw \
fgetc getc getchar \
fputc putc putchar \
fgets gets fputs puts \
getdelim getline \
perror psignal \
tmpfile tmpnam tempnam tempname \
getdelim \
fclose fflush \
remove rename \
memstream obstream \
internals sysd-stdio pipestream stdio_init libc_fatal
aux := errlist siglist defs glue
distribute := _itoa.h printf-parse.h
tests := tst-printf tstscanf test_rdwr test-popen tstgetln test-fseek \
temptest tst-fileno test-fwrite \
xbug errnobug \
bug1 bug2 bug3 bug4 bug5 bug6 bug7
aux := defs glue
include ../Rules

View File

@ -1,4 +1,4 @@
# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -42,7 +42,7 @@ common-generated := $(common-generated) bytesex.h det_endian
endif
ifeq ($(subdir),stdio)
ifeq ($(subdir),stdio-common)
ifeq "$(filter $(objpfx)siglist.c,$(before-compile))" ""
before-compile := $(before-compile) $(objpfx)siglist.c