--- gcc/config/i386/linux.h 2018/04/24 18:17:13 1.1.1.2 +++ gcc/config/i386/linux.h 2018/04/24 18:23:21 1.1.1.3 @@ -1,22 +1,34 @@ /* Definitions for Intel 386 running Linux - * Copyright (C) 1992 Free Software Foundation, Inc. - * - * Written by H.J. Lu (hlu@eecs.wsu.edu) - * - * Linux is a POSIX.1 compatible UNIX clone for i386, which uses GNU - * stuffs as the native stuffs. - */ + Copyright (C) 1992, 1994 Free Software Foundation, Inc. + Contributed by H.J. Lu (hjl@nynexst.com) + +This file is part of GNU CC. + +GNU CC 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. + +GNU CC 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 GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #if 0 /* The FSF has fixed the known bugs. But ....... */ /* Linux has a hacked gas 1.38.1, which can handle repz, repnz - * and fildll. - */ + and fildll. */ #define GOOD_GAS - #endif +/* Don't assume anything about the header files. */ +#define NO_IMPLICIT_EXTERN_C + /* This is tested by i386/gas.h. */ #define YES_UNDERSCORES @@ -52,45 +64,21 @@ #define HAVE_ATEXIT /* Linux uses ctype from glibc.a. I am not sure how complete it is. - * For now, we play safe. It may change later. - */ + For now, we play safe. It may change later. */ + #if 0 #undef MULTIBYTE_CHARS #define MULTIBYTE_CHARS 1 #endif #undef LIB_SPEC -#define LIB_SPEC "%{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}" - +#define LIB_SPEC \ +"%{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} \ + %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}" #undef STARTFILE_SPEC -#undef GPLUSPLUS_INCLUDE_DIR - -#ifdef CROSS_COMPILE - -/* - * For cross-compile, we just need to search `$(tooldir)/lib' - */ - -#define STARTFILE_SPEC \ - "%{pg:gcrt0.o%s -static} %{!pg:%{p:gcrt0.o%s -static} %{!p:crt0.o%s %{g*:-static} %{!static:%{nojump:-nojump}} %{static:-static}}} -L"TOOLDIR"/lib" +#define STARTFILE_SPEC "%{pg:gcrt0.o%s} %{!pg:%{p:gcrt0.o%s} %{!p:crt0.o%s}} %{static:-static}" -/* - *The cross-compile uses this. - */ -#define GPLUSPLUS_INCLUDE_DIR TOOLDIR"/g++-include" - -#else - -#define STARTFILE_SPEC \ - "%{pg:gcrt0.o%s -static} %{!pg:%{p:gcrt0.o%s -static} %{!p:crt0.o%s %{g*:-static}%{!static:%{nojump:-nojump}} %{static:-static}}}" - -/* - *The native Linux system uses this. - */ -#define GPLUSPLUS_INCLUDE_DIR "/usr/g++-include" - -#endif /* There are conflicting reports about whether this system uses a different assembler syntax. wilson@cygnus.com says # is right. */ @@ -105,7 +93,9 @@ /* Don't default to pcc-struct-return, because gcc is the only compiler, and we want to retain compatibility with older gcc versions. */ +#ifndef LINUX_ELF #define DEFAULT_PCC_STRUCT_RETURN 0 +#endif /* We need that too. */ #define HANDLE_SYSV_PRAGMA @@ -118,3 +108,6 @@ #else #define LINK_SPEC "%{v:-dll-verbose} %{m486:-m486}" #endif + +/* Get perform_* macros to build libgcc.a. */ +#include "i386/perform.h"