From 2b59cb0507a0cd617d4b6fda5d0ba9673daf1fb2 Mon Sep 17 00:00:00 2001 From: bonzini Date: Tue, 31 Aug 2004 09:27:00 +0000 Subject: Made fixincludes a toplevel build module. toplevel: 2004-08-31 Paolo Bonzini * Makefile.def (build_modules): Add fixincludes. (dependencies): Make gcc depend on fixincludes. * configure.in (build_tools): Add fixincludes. (build_configdirs): Always include build_libs. * Makefile.in: Regenerate. * configure: Regenerate. contrib: 2004-08-04 Paolo Bonzini * gcc_update: Add fixincludes. fixincludes: 2004-08-31 Paolo Bonzini * .cvsignore: New. * Makefile.in: From gcc/fixinc/Makefile.in, making it fully autoconfiscated. * configure.ac: New. * config.h.in: Generate. * configure: Generate. * aclocal.m4: New. * fixlib.h: Remove inclusions of gcc files. * system.h: New. Other files copied from gcc/fixinc. gcc: 2004-08-31 Paolo Bonzini * Makefile.in (build_subdir): New substitution. (fixinc.sh): Simplify heavily since fixincludes is already built. (stmp-fixinc): Depend on specs.ready. (install-mkheaders): Use new location of fixincludes. (clean): Do not descend into fixinc. (FORBUILD): Replace with ../$(build_subdir). * configure.ac (build_subdir): Substitute. (FORBUILD): Do not set. (all_outputs): Remove fixinc/Makefile. (default commands): Do not create links in fixinc. * mkfixinc.sh: New, from fixinc/mkfixinc.sh without the fixincludes configuration steps and substituting @FIXINCL@ in fixinc.in. * fixinc.in: New, from fixinc/fixincl.sh. * fixinc/*: Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86824 138bc75d-0d04-0410-961f-82ee72b054a4 --- fixincludes/system.h | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 fixincludes/system.h (limited to 'fixincludes/system.h') diff --git a/fixincludes/system.h b/fixincludes/system.h new file mode 100644 index 00000000000..a518e0a08f9 --- /dev/null +++ b/fixincludes/system.h @@ -0,0 +1,156 @@ +/* Get common system includes and various definitions and declarations based + on autoconf macros. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Free Software Foundation, Inc. + +This file is part of libcpp (aka cpplib). + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +GCC 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 General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ + + +#ifndef FIXINC_SYSTEM_H +#define FIXINC_SYSTEM_H + +/* We must include stdarg.h before stdio.h. */ +#include + +#ifdef HAVE_STDDEF_H +# include +#endif + +#include + +/* Define a generic NULL if one hasn't already been defined. */ +#ifndef NULL +#define NULL 0 +#endif + +/* fixincludes is not a multi-threaded application and therefore we + do not have to use the locking functions. In fact, using the locking + functions can cause the compiler to be significantly slower under + I/O bound conditions (such as -g -O0 on very large source files). + + HAVE_DECL_PUTC_UNLOCKED actually indicates whether or not the stdio + code is multi-thread safe by default. If it is set to 0, then do + not worry about using the _unlocked functions. + + fputs_unlocked, fwrite_unlocked, and fprintf_unlocked are + extensions and need to be prototyped by hand (since we do not + define _GNU_SOURCE). */ + +#if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED + +# ifdef HAVE_PUTC_UNLOCKED +# undef putc +# define putc(C, Stream) putc_unlocked (C, Stream) +# endif +# ifdef HAVE_FPUTC_UNLOCKED +# undef fputc +# define fputc(C, Stream) fputc_unlocked (C, Stream) +# endif + +# ifdef HAVE_FPUTS_UNLOCKED +# undef fputs +# define fputs(String, Stream) fputs_unlocked (String, Stream) +# if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED +extern int fputs_unlocked (const char *, FILE *); +# endif +# endif +# ifdef HAVE_FWRITE_UNLOCKED +# undef fwrite +# define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream) +# if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED +extern int fwrite_unlocked (const void *, size_t, size_t, FILE *); +# endif +# endif +# ifdef HAVE_FPRINTF_UNLOCKED +# undef fprintf +/* We can't use a function-like macro here because we don't know if + we have varargs macros. */ +# define fprintf fprintf_unlocked +# if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED +extern int fprintf_unlocked (FILE *, const char *, ...); +# endif +# endif + +#endif + +/* ??? Glibc's fwrite/fread_unlocked macros cause + "warning: signed and unsigned type in conditional expression". */ +#undef fread_unlocked +#undef fwrite_unlocked + +#include +#include + +#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO +extern int errno; +#endif + +/* Some of glibc's string inlines cause warnings. Plus we'd rather + rely on (and therefore test) GCC's string builtins. */ +#define __NO_STRING_INLINES + +#ifdef HAVE_STRING_H +# include +#else +# ifdef HAVE_STRINGS_H +# include +# endif +#endif + +#ifdef HAVE_STDLIB_H +# include +#endif + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifdef HAVE_FCNTL_H +# include +#else +# ifdef HAVE_SYS_FILE_H +# include +# endif +#endif + +/* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they + are defined to 0 then we must provide the relevant declaration + here. These checks will be in the undefined state while configure + is running so be careful to test "defined (HAVE_DECL_*)". */ + +#if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT +extern void abort (void); +#endif + +#if HAVE_SYS_STAT_H +# include +#endif + +/* Test if something is a normal file. */ +#ifndef S_ISREG +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#endif + +/* Filename handling macros. */ +#include "filenames.h" + +/* Get libiberty declarations. */ +#include "libiberty.h" +#include "safe-ctype.h" + +#endif /* ! FIXINC_SYSTEM_H */ -- cgit v1.2.1