Port of the GCC 2.7.2.3 that was the base compiler in FreeBSD 2.2.x thru 3.x.
This commit is contained in:
parent
2f7249c38e
commit
910033a076
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=26961
44 changed files with 2874 additions and 0 deletions
76
lang/gcc27/Makefile
Normal file
76
lang/gcc27/Makefile
Normal file
|
@ -0,0 +1,76 @@
|
|||
# ex:ts=8
|
||||
# Ports collection makefile for: gcc
|
||||
# Version required: 2.8.1
|
||||
# Date created: 17 Jan 1998
|
||||
# Whom: David O'Brien <obrien@NUXI.com>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
DISTNAME= gcc-2.7.2.3
|
||||
CATEGORIES= lang
|
||||
MASTER_SITES= ${MASTER_SITE_GNU} \
|
||||
ftp://ftp.gnu.org/gnu/libg++/ \
|
||||
ftp://ftp.duke.edu/pub/gnu/libg++/ \
|
||||
ftp://ftp.net.ohio-state.edu/disk/c/gnu/gnu-0.2/src/
|
||||
MASTER_SITE_SUBDIR= gcc
|
||||
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} libg++-2.7.2${EXTRACT_SUFX}
|
||||
|
||||
MAINTAINER= obrien@FreeBSD.org
|
||||
|
||||
NO_CDROM= 'old version, not worth the cost in real estate'
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
GCC_VER= 2.7.2.3
|
||||
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
|
||||
PLIST_SUB= GNUHOST=${CONFIGURE_TARGET} GCC_VER=${GCC_VER}
|
||||
CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld --with-stabs \
|
||||
--with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}/include/g++
|
||||
GNU_CONFIGURE= yes
|
||||
USE_GMAKE= yes
|
||||
ALL_TARGET= bootstrap
|
||||
MAN1= cccp27.1 g++27.1 gcc27.1
|
||||
|
||||
pre-fetch:
|
||||
@${ECHO} "GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT}"
|
||||
|
||||
pre-patch:
|
||||
@${MV} ${WRKSRC}/config/i386/freebsd.h ${WRKSRC}/config/i386/freebsd-aout.h
|
||||
|
||||
pre-configure:
|
||||
@(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
|
||||
${SED} -e "s:__FreeBSD__[0-9=]*:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h.${ARCH} \
|
||||
>${WRKSRC}/config/${ARCH}/freebsd.h )
|
||||
|
||||
XGCC= "${WRKSRC}/stage2/xgcc -B${WRKSRC}/stage2/"
|
||||
post-build:
|
||||
cd ${WRKDIR}/libg++-2.7.2 ; env CC=${XGCC} CXX=${XGCC} ./configure ${CONFIGURE_ARGS}
|
||||
cd ${WRKDIR}/libg++-2.7.2 ; ${SETENV} ${MAKE_ENV} ${GMAKE} CC=${XGCC} CXX=${XGCC}
|
||||
|
||||
post-install:
|
||||
cd ${WRKDIR}/libg++-2.7.2 ; ${SETENV} ${MAKE_ENV} ${GMAKE} CC=${XGCC} CXX=${XGCC} install
|
||||
@${RM} -f ${PREFIX}/bin/c++ \
|
||||
${PREFIX}/bin/genclass ${PREFIX}/bin/gperf \
|
||||
${PREFIX}/bin/protoize ${PREFIX}/bin/unprotoize \
|
||||
${PREFIX}/man/man1/gperf.1 ${PREFIX}/man/man1/configure.1
|
||||
@${RM} -rf ${PREFIX}/bin/c++ ${PREFIX}/${CONFIGURE_TARGET}
|
||||
@(for prog in ${PREFIX}/bin/gcc ${PREFIX}/bin/g++ \
|
||||
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
|
||||
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}/cc1 \
|
||||
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}/cc1obj \
|
||||
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}/cc1plus \
|
||||
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}/cpp ; \
|
||||
do strip $$prog ; \
|
||||
done)
|
||||
@${MV} -f ${PREFIX}/bin/gcc ${PREFIX}/bin/gcc27
|
||||
@${MV} -f ${PREFIX}/bin/g++ ${PREFIX}/bin/g++27
|
||||
@${MV} ${PREFIX}/man/man1/cccp.1 ${PREFIX}/man/man1/cccp27.1
|
||||
@${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/g++27.1
|
||||
@${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/gcc27.1
|
||||
@${RM} -rf ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}/g++-include
|
||||
@${MV} ${PREFIX}/lib/libg++.a ${PREFIX}/lib/libiberty.a \
|
||||
${PREFIX}/lib/libstdc++.a ${PREFIX}/lib/g++-include \
|
||||
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_VER}
|
||||
|
||||
.include <bsd.port.post.mk>
|
2
lang/gcc27/distinfo
Normal file
2
lang/gcc27/distinfo
Normal file
|
@ -0,0 +1,2 @@
|
|||
MD5 (gcc-2.7.2.3.tar.gz) = 9f75fc7a5f13b691aabe8c1b775a4604
|
||||
MD5 (libg++-2.7.2.tar.gz) = cfc85fb62113b72aa4f9688e08b385c4
|
575
lang/gcc27/files/freebsd.h.i386
Normal file
575
lang/gcc27/files/freebsd.h.i386
Normal file
|
@ -0,0 +1,575 @@
|
|||
/* Definitions for Intel 386 running FreeBSD with either a.out or ELF format
|
||||
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
Contributed by Eric Youngdale.
|
||||
Modified for stabs-in-ELF by H.J. Lu.
|
||||
Adapted from Linux version by John Polstra.
|
||||
Added support for generating "old a.out gas" on the fly by Peter Wemm.
|
||||
|
||||
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, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* $FreeBSD$ */
|
||||
|
||||
/* A lie, I guess, but the general idea behind FreeBSD/ELF is that we are
|
||||
supposed to be outputting something that will assemble under SVr4.
|
||||
This gets us pretty close. */
|
||||
#include <i386/i386.h> /* Base i386 target machine definitions */
|
||||
#include <i386/att.h> /* Use the i386 AT&T assembler syntax */
|
||||
#include <linux.h> /* some common stuff */
|
||||
|
||||
/* Don't assume anything about the header files. */
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
/* This defines which switch letters take arguments. On svr4, most of
|
||||
the normal cases (defined in gcc.c) apply, and we also have -h* and
|
||||
-z* options (for the linker). We have a slightly different mix. We
|
||||
have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
|
||||
|
||||
#undef SWITCH_TAKES_ARG
|
||||
#define SWITCH_TAKES_ARG(CHAR) \
|
||||
( (CHAR) == 'D' \
|
||||
|| (CHAR) == 'U' \
|
||||
|| (CHAR) == 'o' \
|
||||
|| (CHAR) == 'e' \
|
||||
|| (CHAR) == 'T' \
|
||||
|| (CHAR) == 'u' \
|
||||
|| (CHAR) == 'I' \
|
||||
|| (CHAR) == 'm' \
|
||||
|| (CHAR) == 'L' \
|
||||
|| (CHAR) == 'A' \
|
||||
|| (CHAR) == 'h' \
|
||||
|| (CHAR) == 'z' /* ignored by ld */ \
|
||||
|| (CHAR) == 'R')
|
||||
|
||||
#undef WORD_SWITCH_TAKES_ARG
|
||||
#define WORD_SWITCH_TAKES_ARG(STR) \
|
||||
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
|
||||
|| !strcmp (STR, "rpath") || !strcmp (STR, "rpath-link") \
|
||||
|| !strcmp (STR, "soname") || !strcmp (STR, "defsym") \
|
||||
|| !strcmp (STR, "assert") || !strcmp (STR, "dynamic-linker"))
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (i386 FreeBSD)");
|
||||
|
||||
#define MASK_PROFILER_EPILOGUE 010000000000
|
||||
#define MASK_AOUT 004000000000 /* a.out not elf */
|
||||
#define MASK_UNDERSCORES 002000000000 /* use leading _ */
|
||||
|
||||
#define TARGET_PROFILER_EPILOGUE (target_flags & MASK_PROFILER_EPILOGUE)
|
||||
#define TARGET_AOUT (target_flags & MASK_AOUT)
|
||||
#define TARGET_ELF ((target_flags & MASK_AOUT) == 0)
|
||||
#define TARGET_UNDERSCORES ((target_flags & MASK_UNDERSCORES) != 0)
|
||||
|
||||
#undef SUBTARGET_SWITCHES
|
||||
#define SUBTARGET_SWITCHES \
|
||||
{ "profiler-epilogue", MASK_PROFILER_EPILOGUE}, \
|
||||
{ "no-profiler-epilogue", -MASK_PROFILER_EPILOGUE}, \
|
||||
{ "aout", MASK_AOUT}, \
|
||||
{ "no-aout", -MASK_AOUT}, \
|
||||
{ "underscores", MASK_UNDERSCORES}, \
|
||||
{ "no-underscores", -MASK_UNDERSCORES},
|
||||
|
||||
/* The svr4 ABI for the i386 says that records and unions are returned
|
||||
in memory. */
|
||||
/* On FreeBSD, we do not. */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Prefix for internally generated assembler labels. If we aren't using
|
||||
underscores, we are using prefix `.'s to identify labels that should
|
||||
be ignored, as in `i386/gas.h' --karl@cs.umb.edu */
|
||||
#undef LPREFIX
|
||||
#define LPREFIX ((TARGET_UNDERSCORES) ? "L" : ".L")
|
||||
|
||||
/* Override the default comment-starter of "/". */
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
#undef COMMENT_BEGIN
|
||||
#define COMMENT_BEGIN "#"
|
||||
|
||||
#undef ASM_APP_ON
|
||||
#define ASM_APP_ON "#APP\n"
|
||||
|
||||
#undef ASM_APP_OFF
|
||||
#define ASM_APP_OFF "#NO_APP\n"
|
||||
|
||||
/* Output at beginning of assembler file. */
|
||||
/* The .file command should always begin the output. */
|
||||
|
||||
#undef ASM_FILE_START
|
||||
#define ASM_FILE_START(FILE) \
|
||||
do { \
|
||||
output_file_directive (FILE, main_input_filename); \
|
||||
if (TARGET_ELF) \
|
||||
fprintf (FILE, "\t.version\t\"01.01\"\n"); \
|
||||
} while (0)
|
||||
|
||||
/* Identify the front-end which produced this file. To keep symbol
|
||||
space down, and not confuse kdb, only do this if the language is
|
||||
not C. (svr4.h defines ASM_IDENTIFY_GCC but neglects this) */
|
||||
#undef ASM_IDENTIFY_LANGUAGE
|
||||
#define ASM_IDENTIFY_LANGUAGE(STREAM) \
|
||||
{ \
|
||||
if (strcmp (lang_identify (), "c") != 0) \
|
||||
output_lang_identify (STREAM); \
|
||||
}
|
||||
|
||||
/* This is how to store into the string BUF
|
||||
the symbol_ref name of an internal numbered label where
|
||||
PREFIX is the class of label and NUM is the number within the class.
|
||||
This is suitable for output with `assemble_name'. */
|
||||
#undef ASM_GENERATE_INTERNAL_LABEL
|
||||
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
|
||||
sprintf ((BUF), "*%s%s%d", (TARGET_UNDERSCORES) ? "" : ".", \
|
||||
(PREFIX), (NUMBER))
|
||||
|
||||
/* This is how to output an internal numbered label where
|
||||
PREFIX is the class of label and NUM is the number within the class. */
|
||||
#undef ASM_OUTPUT_INTERNAL_LABEL
|
||||
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
|
||||
fprintf (FILE, "%s%s%d:\n", (TARGET_UNDERSCORES) ? "" : ".", \
|
||||
PREFIX, NUM)
|
||||
|
||||
/* This is how to output a reference to a user-level label named NAME. */
|
||||
#undef ASM_OUTPUT_LABELREF
|
||||
#define ASM_OUTPUT_LABELREF(FILE,NAME) \
|
||||
fprintf (FILE, "%s%s", (TARGET_UNDERSCORES) ? "_" : "", NAME)
|
||||
|
||||
|
||||
/* This is how to output an element of a case-vector that is relative.
|
||||
This is only used for PIC code. See comments by the `casesi' insn in
|
||||
i386.md for an explanation of the expression this outputs. */
|
||||
#undef ASM_OUTPUT_ADDR_DIFF_ELT
|
||||
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \
|
||||
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
|
||||
|
||||
#undef ASM_OUTPUT_ALIGN
|
||||
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
|
||||
if ((LOG)!=0) fprintf ((FILE), "\t.p2align %d\n", (LOG))
|
||||
|
||||
/* Align labels, etc. at 4-byte boundaries.
|
||||
For the 486, align to 16-byte boundary for sake of cache. */
|
||||
#undef ASM_OUTPUT_ALIGN_CODE
|
||||
#define ASM_OUTPUT_ALIGN_CODE(FILE) \
|
||||
fprintf ((FILE), "\t.p2align %d,0x90\n", i386_align_jumps)
|
||||
|
||||
/* Align start of loop at 4-byte boundary. */
|
||||
#undef ASM_OUTPUT_LOOP_ALIGN
|
||||
#define ASM_OUTPUT_LOOP_ALIGN(FILE) \
|
||||
fprintf ((FILE), "\t.p2align %d,0x90\n", i386_align_loops)
|
||||
|
||||
|
||||
/* conditionalize the use of ".section rodata" on elf mode - otherwise .text */
|
||||
#undef USE_CONST_SECTION
|
||||
#define USE_CONST_SECTION TARGET_ELF
|
||||
|
||||
/* A C statement (sans semicolon) to output an element in the table of
|
||||
global constructors. */
|
||||
#undef ASM_OUTPUT_CONSTRUCTOR
|
||||
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
ctors_section (); \
|
||||
fprintf (FILE, "\t%s\t ", INT_ASM_OP); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} else { \
|
||||
fprintf (asm_out_file, "%s \"%s__CTOR_LIST__\",22,0,0,", ASM_STABS_OP, \
|
||||
(TARGET_UNDERSCORES) ? "_" : ""); \
|
||||
assemble_name (asm_out_file, name); \
|
||||
fputc ('\n', asm_out_file); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* A C statement (sans semicolon) to output an element in the table of
|
||||
global destructors. */
|
||||
#undef ASM_OUTPUT_DESTRUCTOR
|
||||
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
dtors_section (); \
|
||||
fprintf (FILE, "\t%s\t ", INT_ASM_OP); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} else { \
|
||||
fprintf (asm_out_file, "%s \"%s__DTOR_LIST__\",22,0,0,", ASM_STABS_OP, \
|
||||
(TARGET_UNDERSCORES) ? "_" : ""); \
|
||||
assemble_name (asm_out_file, name); \
|
||||
fputc ('\n', asm_out_file); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* This says how to output assembler code to declare an
|
||||
uninitialized internal linkage data object. Under SVR4,
|
||||
the linker seems to want the alignment of data objects
|
||||
to depend on their types. We do exactly that here. */
|
||||
|
||||
#undef ASM_OUTPUT_ALIGNED_LOCAL
|
||||
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
fprintf ((FILE), "\t%s\t", LOCAL_ASM_OP); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), "\n"); \
|
||||
ASM_OUTPUT_ALIGNED_COMMON (FILE, NAME, SIZE, ALIGN); \
|
||||
} else { \
|
||||
int rounded = (SIZE); \
|
||||
if (rounded == 0) rounded = 1; \
|
||||
rounded += (BIGGEST_ALIGNMENT / BITS_PER_UNIT) - 1; \
|
||||
rounded = (rounded / (BIGGEST_ALIGNMENT / BITS_PER_UNIT) \
|
||||
* (BIGGEST_ALIGNMENT / BITS_PER_UNIT)); \
|
||||
fputs (".lcomm ", (FILE)); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), ",%u\n", (rounded)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#undef ASM_OUTPUT_ALIGNED_COMMON
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
fprintf ((FILE), "\t%s\t", COMMON_ASM_OP); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
|
||||
} else { \
|
||||
int rounded = (SIZE); \
|
||||
if (rounded == 0) rounded = 1; \
|
||||
rounded += (BIGGEST_ALIGNMENT / BITS_PER_UNIT) - 1; \
|
||||
rounded = (rounded / (BIGGEST_ALIGNMENT / BITS_PER_UNIT) \
|
||||
* (BIGGEST_ALIGNMENT / BITS_PER_UNIT)); \
|
||||
fputs (".comm ", (FILE)); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), ",%u\n", (rounded)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Turn off svr4.h version, it chokes the old gas. The old layout
|
||||
works fine under new gas anyway. */
|
||||
#undef ASM_OUTPUT_ASCII
|
||||
|
||||
/* How to output some space */
|
||||
#undef ASM_OUTPUT_SKIP
|
||||
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
fprintf (FILE, "\t%s\t%u\n", SKIP_ASM_OP, (SIZE)); \
|
||||
} else { \
|
||||
fprintf (FILE, "\t.space %u\n", (SIZE)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#undef ASM_OUTPUT_SOURCE_LINE
|
||||
#define ASM_OUTPUT_SOURCE_LINE(file, line) \
|
||||
do { \
|
||||
static int sym_lineno = 1; \
|
||||
if (TARGET_ELF) { \
|
||||
fprintf (file, ".stabn 68,0,%d,.LM%d-", line, sym_lineno); \
|
||||
assemble_name (file, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\
|
||||
fprintf (file, "\n.LM%d:\n", sym_lineno); \
|
||||
sym_lineno += 1; \
|
||||
} else { \
|
||||
fprintf (file, "\t%s %d,0,%d\n", ASM_STABD_OP, N_SLINE, lineno); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* in elf, the function stabs come first, before the relative offsets */
|
||||
#undef DBX_FUNCTION_FIRST
|
||||
#define DBX_CHECK_FUNCTION_FIRST TARGET_ELF
|
||||
|
||||
/* tag end of file in elf mode */
|
||||
#undef DBX_OUTPUT_MAIN_SOURCE_FILE_END
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
fprintf (FILE, "\t.text\n\t.stabs \"\",%d,0,0,.Letext\n.Letext:\n", N_SO); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* stabs-in-elf has offsets relative to function beginning */
|
||||
#undef DBX_OUTPUT_LBRAC
|
||||
#define DBX_OUTPUT_LBRAC(file,name) \
|
||||
do { \
|
||||
fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_LBRAC); \
|
||||
assemble_name (asmfile, buf); \
|
||||
if (TARGET_ELF) { \
|
||||
fputc ('-', asmfile); \
|
||||
assemble_name (asmfile, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
|
||||
} \
|
||||
fprintf (asmfile, "\n"); \
|
||||
} while (0)
|
||||
|
||||
#undef DBX_OUTPUT_RBRAC
|
||||
#define DBX_OUTPUT_RBRAC(file,name) \
|
||||
do { \
|
||||
fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_RBRAC); \
|
||||
assemble_name (asmfile, buf); \
|
||||
if (TARGET_ELF) { \
|
||||
fputc ('-', asmfile); \
|
||||
assemble_name (asmfile, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
|
||||
} \
|
||||
fprintf (asmfile, "\n"); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Define macro used to output shift-double opcodes when the shift
|
||||
count is in %cl. Some assemblers require %cl as an argument;
|
||||
some don't.
|
||||
|
||||
*OLD* GAS requires the %cl argument, so override i386/unix.h. */
|
||||
|
||||
#undef AS3_SHIFT_DOUBLE
|
||||
#define AS3_SHIFT_DOUBLE(a,b,c,d) AS3 (a,b,c,d)
|
||||
|
||||
/* Indicate that jump tables go in the text section. This is
|
||||
necessary when compiling PIC code. */
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION
|
||||
|
||||
/* override the exception table positioning */
|
||||
#define EXCEPTION_SECTION_FUNCTION \
|
||||
do { \
|
||||
if (TARGET_ELF) { \
|
||||
named_section (NULL_TREE, ".gcc_except_table"); \
|
||||
} else { \
|
||||
if (flag_pic) \
|
||||
data_section (); \
|
||||
else \
|
||||
readonly_data_section (); \
|
||||
} \
|
||||
} while (0);
|
||||
|
||||
/* supply our own hook for calling __main() from main() */
|
||||
#define GEN_CALL__MAIN \
|
||||
do { \
|
||||
if (!(TARGET_ELF)) \
|
||||
emit_library_call (gen_rtx (SYMBOL_REF, Pmode, NAME__MAIN), 0, \
|
||||
VOIDmode, 0); \
|
||||
} while (0)
|
||||
|
||||
/* Use dollar signs in special g++ assembler names. */
|
||||
#undef NO_DOLLAR_IN_LABEL
|
||||
|
||||
/* Map i386 registers to the numbers dwarf expects. Of course this is different
|
||||
from what stabs expects. */
|
||||
|
||||
#undef DWARF_DBX_REGISTER_NUMBER
|
||||
#define DWARF_DBX_REGISTER_NUMBER(n) \
|
||||
((n) == 0 ? 0 \
|
||||
: (n) == 1 ? 2 \
|
||||
: (n) == 2 ? 1 \
|
||||
: (n) == 3 ? 3 \
|
||||
: (n) == 4 ? 6 \
|
||||
: (n) == 5 ? 7 \
|
||||
: (n) == 6 ? 5 \
|
||||
: (n) == 7 ? 4 \
|
||||
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
|
||||
: (-1))
|
||||
|
||||
/* Now what stabs expects in the register. */
|
||||
#define STABS_DBX_REGISTER_NUMBER(n) \
|
||||
((n) == 0 ? 0 : \
|
||||
(n) == 1 ? 2 : \
|
||||
(n) == 2 ? 1 : \
|
||||
(n) == 3 ? 3 : \
|
||||
(n) == 4 ? 6 : \
|
||||
(n) == 5 ? 7 : \
|
||||
(n) == 6 ? 4 : \
|
||||
(n) == 7 ? 5 : \
|
||||
(n) + 4)
|
||||
|
||||
#undef DBX_REGISTER_NUMBER
|
||||
#define DBX_REGISTER_NUMBER(n) ((write_symbols == DWARF_DEBUG) \
|
||||
? DWARF_DBX_REGISTER_NUMBER(n) \
|
||||
: STABS_DBX_REGISTER_NUMBER(n))
|
||||
|
||||
/* Tell final.c that we don't need a label passed to mcount. */
|
||||
#define NO_PROFILE_DATA
|
||||
|
||||
/* Output assembler code to FILE to increment profiler label # LABELNO
|
||||
for profiling a function entry. */
|
||||
/* Redefine this to not pass an unused label in %edx. */
|
||||
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
{ \
|
||||
if (flag_pic) \
|
||||
fprintf (FILE, "\tcall *%s@GOT(%%ebx)\n", \
|
||||
TARGET_AOUT ? "mcount" : ".mcount"); \
|
||||
else \
|
||||
fprintf (FILE, "\tcall %s\n", TARGET_AOUT ? "mcount" : ".mcount"); \
|
||||
}
|
||||
|
||||
#define FUNCTION_PROFILER_EPILOGUE(FILE) \
|
||||
{ \
|
||||
if (TARGET_PROFILER_EPILOGUE) \
|
||||
{ \
|
||||
if (flag_pic) \
|
||||
fprintf (FILE, "\tcall *%s@GOT(%%ebx)\n", \
|
||||
TARGET_AOUT ? "mexitcount" : ".mexitcount"); \
|
||||
else \
|
||||
fprintf (FILE, "\tcall %s\n", \
|
||||
TARGET_AOUT ? "mexitcount" : ".mexitcount"); \
|
||||
} \
|
||||
}
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#define WCHAR_UNSIGNED 0
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
|
||||
/* FREEBSD_NATIVE is defined when gcc is integrated into the FreeBSD
|
||||
source tree so it can be configured appropriately without using
|
||||
the GNU configure/build mechanism. */
|
||||
|
||||
#ifdef FREEBSD_NATIVE
|
||||
|
||||
/* Look for the include files in the system-defined places. */
|
||||
|
||||
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
|
||||
|
||||
#define GCC_INCLUDE_DIR "/usr/include"
|
||||
|
||||
/* FreeBSD has GCC_INCLUDE_DIR first. */
|
||||
#define INCLUDE_DEFAULTS \
|
||||
{ \
|
||||
{ GCC_INCLUDE_DIR, 0, 0 }, \
|
||||
{ GPLUSPLUS_INCLUDE_DIR, 1, 1 }, \
|
||||
{ 0, 0, 0 } \
|
||||
}
|
||||
|
||||
/* Under FreeBSD, the normal location of the compiler back ends is the
|
||||
/usr/libexec directory. */
|
||||
|
||||
#define STANDARD_EXEC_PREFIX "/usr/libexec/"
|
||||
|
||||
/* Under FreeBSD, the normal location of the various *crt*.o files is the
|
||||
/usr/lib directory. */
|
||||
|
||||
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
|
||||
|
||||
/* On FreeBSD, gcc is called 'cc' */
|
||||
#define GCC_NAME "cc"
|
||||
|
||||
/* FreeBSD is 4.4BSD derived */
|
||||
#define bsd4_4
|
||||
|
||||
#endif /* FREEBSD_NATIVE */
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#if TARGET_CPU_DEFAULT == 2
|
||||
#define CPP_SPEC "\
|
||||
%{!maout: -D__ELF__} \
|
||||
%{munderscores: -D__UNDERSCORES__} \
|
||||
%{maout: %{!mno-underscores: -D__UNDERSCORES__}} \
|
||||
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__}"
|
||||
#else
|
||||
#define CPP_SPEC "\
|
||||
%{!maout: -D__ELF__} \
|
||||
%{munderscores: -D__UNDERSCORES__} \
|
||||
%{maout: %{!mno-underscores: -D__UNDERSCORES__}} \
|
||||
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{m486:-D__i486__}"
|
||||
#endif
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "\
|
||||
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
|
||||
%{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}"
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
|
||||
|
||||
/* Like the default, except no -lg, and no -p. */
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{!shared:%{!pg:%{!pthread:%{!kthread:-lc}%{kthread:-lpthread -lc}}%{pthread:-lc_r}}%{pg:%{!pthread:%{!kthread:-lc_p}%{kthread:-lpthread_p -lc_p}}%{pthread:-lc_r_p}}}"
|
||||
|
||||
/* Let gcc locate this for us according to the -m rules */
|
||||
#undef LIBGCC_SPEC
|
||||
#define LIBGCC_SPEC "%{!shared:libgcc.a%s}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time. We like to support here for
|
||||
as many of the other GNU linker options as possible. But I don't
|
||||
have the time to search for those flags. I am sure how to add
|
||||
support for -soname shared_object_name. H.J.
|
||||
|
||||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
%{p:%e`-p' not supported; use `-pg' and gprof(1)} \
|
||||
%{maout: %{shared:-Bshareable} \
|
||||
%{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
|
||||
%{pg:-Bstatic} %{Z}} \
|
||||
%{assert*} %{R*}} \
|
||||
%{!maout: \
|
||||
-m elf_i386 \
|
||||
%{Wl,*:%*} \
|
||||
%{assert*} %{R*} %{rpath*} %{defsym*} \
|
||||
%{shared:-Bshareable %{h*} %{soname*}} \
|
||||
%{symbolic:-Bsymbolic} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic: -export-dynamic} \
|
||||
%{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
|
||||
%{static:-Bstatic}}}"
|
||||
|
||||
/* Get perform_* macros to build libgcc.a. */
|
||||
#include "i386/perform.h"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "\
|
||||
%{maout: %{shared:c++rt0.o%s} \
|
||||
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}} \
|
||||
%{!maout: %{!shared: \
|
||||
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \
|
||||
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
|
||||
|
||||
/* This goes away when the math emulator is fixed. */
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT (MASK_NO_FANCY_MATH_387 | 0301)
|
||||
|
||||
#define HAVE_ATEXIT
|
||||
#define HAVE_PUTENV
|
||||
|
||||
/* to assist building libgcc2.c */
|
||||
#ifndef __ELF__
|
||||
#undef OBJECT_FORMAT_ELF
|
||||
#endif
|
||||
|
||||
/* Defined to the name of the compiler; if using a cross compiler, the
|
||||
Makefile should compile this file with the proper name
|
||||
(e.g., "i386-aout-gcc"). */
|
||||
#define GCC_NAME "gcc27"
|
70
lang/gcc27/files/patch-Makefile.in
Normal file
70
lang/gcc27/files/patch-Makefile.in
Normal file
|
@ -0,0 +1,70 @@
|
|||
--- Makefile.in.orig Fri Aug 8 08:58:17 1997
|
||||
+++ Makefile.in Wed Mar 22 10:36:29 2000
|
||||
@@ -196,6 +196,10 @@
|
||||
# Directory in which the compiler finds executables, libraries, etc.
|
||||
libsubdir = $(libdir)/gcc-lib/$(target)/$(version)
|
||||
# Directory in which the compiler finds g++ includes.
|
||||
+#
|
||||
+# XXX: Note that the below is blown away by ``configure''.
|
||||
+# Great GNU idiots, just great documentaton.
|
||||
+#
|
||||
gxx_include_dir= $(libdir)/g++-include
|
||||
# Directory to search for site-specific includes.
|
||||
includedir = $(local_prefix)/include
|
||||
@@ -245,7 +249,7 @@
|
||||
# -g1 causes output of debug info only for file-scope entities.
|
||||
# we use this here because that should be enough, and also
|
||||
# so that -g1 will be tested.
|
||||
-LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) -g1
|
||||
+LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) -g1 -g0
|
||||
|
||||
# Additional options to use when compiling libgcc2.a.
|
||||
# Some targets override this to -Iinclude
|
||||
@@ -746,6 +750,7 @@
|
||||
libgcc1.null: $(GCC_PASSES)
|
||||
echo "__foo () {}" > dummy.c
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) -c dummy.c
|
||||
+ ld -r -x dummy$(objext); mv a.out dummy$(objext)
|
||||
$(OLDAR) $(OLDAR_FLAGS) libgcc1.null dummy$(objext)
|
||||
rm -f dummy$(objext) dummy.c
|
||||
|
||||
@@ -777,6 +782,7 @@
|
||||
$(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c -DL$${name} $(srcdir)/libgcc1.c; \
|
||||
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
||||
mv libgcc1$(objext) $${name}$(objext); \
|
||||
+ ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
|
||||
$(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}$(objext); \
|
||||
rm -f $${name}$(objext); \
|
||||
done
|
||||
@@ -796,6 +802,7 @@
|
||||
else true; fi; \
|
||||
$(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c $${file}; \
|
||||
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
||||
+ ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
|
||||
$(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}$(objext); \
|
||||
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
||||
rm -f $${name}.s $${name}$(objext); \
|
||||
@@ -825,6 +832,7 @@
|
||||
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} libgcc1.S; \
|
||||
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
||||
mv libgcc1$(objext) $${name}$(objext); \
|
||||
+ ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
|
||||
$(AR) $(AR_FLAGS) tmplibgcc1.a $${name}$(objext); \
|
||||
rm -f $${name}$(objext); \
|
||||
done
|
||||
@@ -875,6 +883,7 @@
|
||||
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
|
||||
$(srcdir)/libgcc2.c -o $${name}$(objext); \
|
||||
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
||||
+ ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
|
||||
$(AR) $(AR_FLAGS) tmplibgcc2.a $${name}$(objext); \
|
||||
rm -f $${name}$(objext); \
|
||||
done
|
||||
@@ -895,6 +904,7 @@
|
||||
else true; fi; \
|
||||
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
|
||||
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
|
||||
+ ld -r -x $${oname}$(objext); mv a.out $${oname}$(objext); \
|
||||
$(AR) $(AR_FLAGS) tmplibgcc2.a $${oname}$(objext); \
|
||||
rm -f $${name}.s $${oname}$(objext); \
|
||||
else true; \
|
226
lang/gcc27/files/patch-c-common.c
Normal file
226
lang/gcc27/files/patch-c-common.c
Normal file
|
@ -0,0 +1,226 @@
|
|||
--- c-common.c.orig Thu Oct 19 16:18:29 1995
|
||||
+++ c-common.c Mon Mar 20 13:29:10 2000
|
||||
@@ -536,6 +536,7 @@
|
||||
int format_num;
|
||||
int first_arg_num;
|
||||
int is_scan;
|
||||
+ int null_format_ok;
|
||||
tree argument;
|
||||
int arg_num;
|
||||
|
||||
@@ -550,15 +551,30 @@
|
||||
&& (!strcmp (IDENTIFIER_POINTER (format_type), "printf")
|
||||
|| !strcmp (IDENTIFIER_POINTER (format_type),
|
||||
"__printf__")))
|
||||
- is_scan = 0;
|
||||
+ {
|
||||
+ is_scan = 0;
|
||||
+ null_format_ok = 0;
|
||||
+ }
|
||||
+ else if (TREE_CODE (format_type) == IDENTIFIER_NODE
|
||||
+ && (!strcmp (IDENTIFIER_POINTER (format_type), "printf0")
|
||||
+ || !strcmp (IDENTIFIER_POINTER (format_type),
|
||||
+ "__printf0__")))
|
||||
+ {
|
||||
+ is_scan = 0;
|
||||
+ null_format_ok = 1;
|
||||
+ }
|
||||
else if (TREE_CODE (format_type) == IDENTIFIER_NODE
|
||||
&& (!strcmp (IDENTIFIER_POINTER (format_type), "scanf")
|
||||
|| !strcmp (IDENTIFIER_POINTER (format_type),
|
||||
"__scanf__")))
|
||||
- is_scan = 1;
|
||||
+ {
|
||||
+ is_scan = 1;
|
||||
+ null_format_ok = 0;
|
||||
+ }
|
||||
else
|
||||
{
|
||||
- error ("unrecognized format specifier for `%s'");
|
||||
+ error_with_decl (decl,
|
||||
+ "unrecognized format specifier for `%s'");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -625,7 +641,8 @@
|
||||
|
||||
record_function_format (DECL_NAME (decl),
|
||||
DECL_ASSEMBLER_NAME (decl),
|
||||
- is_scan, format_num, first_arg_num);
|
||||
+ is_scan, null_format_ok, format_num,
|
||||
+ first_arg_num);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -696,6 +713,11 @@
|
||||
} format_char_info;
|
||||
|
||||
static format_char_info print_char_table[] = {
|
||||
+/* FreeBSD kernel extensions. */
|
||||
+ { "D", 1, T_C, NULL, NULL, NULL, NULL, "-wp" },
|
||||
+ { "b", 1, T_C, NULL, NULL, NULL, NULL, "-wp" },
|
||||
+ { "rz", 0, T_I, T_I, T_L, NULL, NULL, "-wp0 +#" },
|
||||
+#define unextended_print_char_table (print_char_table + 3)
|
||||
{ "di", 0, T_I, T_I, T_L, T_LL, T_LL, "-wp0 +" },
|
||||
{ "oxX", 0, T_UI, T_UI, T_UL, T_ULL, T_ULL, "-wp0#" },
|
||||
{ "u", 0, T_UI, T_UI, T_UL, T_ULL, T_ULL, "-wp0" },
|
||||
@@ -730,6 +752,7 @@
|
||||
tree name; /* identifier such as "printf" */
|
||||
tree assembler_name; /* optional mangled identifier (for C++) */
|
||||
int is_scan; /* TRUE if *scanf */
|
||||
+ int null_format_ok; /* TRUE if the format string may be NULL */
|
||||
int format_num; /* number of format argument */
|
||||
int first_arg_num; /* number of first arg (zero for varargs) */
|
||||
} function_format_info;
|
||||
@@ -748,15 +771,15 @@
|
||||
void
|
||||
init_function_format_info ()
|
||||
{
|
||||
- record_function_format (get_identifier ("printf"), NULL_TREE, 0, 1, 2);
|
||||
- record_function_format (get_identifier ("fprintf"), NULL_TREE, 0, 2, 3);
|
||||
- record_function_format (get_identifier ("sprintf"), NULL_TREE, 0, 2, 3);
|
||||
- record_function_format (get_identifier ("scanf"), NULL_TREE, 1, 1, 2);
|
||||
- record_function_format (get_identifier ("fscanf"), NULL_TREE, 1, 2, 3);
|
||||
- record_function_format (get_identifier ("sscanf"), NULL_TREE, 1, 2, 3);
|
||||
- record_function_format (get_identifier ("vprintf"), NULL_TREE, 0, 1, 0);
|
||||
- record_function_format (get_identifier ("vfprintf"), NULL_TREE, 0, 2, 0);
|
||||
- record_function_format (get_identifier ("vsprintf"), NULL_TREE, 0, 2, 0);
|
||||
+ record_function_format (get_identifier ("printf"), NULL_TREE, 0, 0, 1, 2);
|
||||
+ record_function_format (get_identifier ("fprintf"), NULL_TREE, 0, 0, 2, 3);
|
||||
+ record_function_format (get_identifier ("sprintf"), NULL_TREE, 0, 0, 2, 3);
|
||||
+ record_function_format (get_identifier ("scanf"), NULL_TREE, 1, 0, 1, 2);
|
||||
+ record_function_format (get_identifier ("fscanf"), NULL_TREE, 1, 0, 2, 3);
|
||||
+ record_function_format (get_identifier ("sscanf"), NULL_TREE, 1, 0, 2, 3);
|
||||
+ record_function_format (get_identifier ("vprintf"), NULL_TREE, 0, 0, 1, 0);
|
||||
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE, 0, 0, 2, 0);
|
||||
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE, 0, 0, 2, 0);
|
||||
}
|
||||
|
||||
/* Record information for argument format checking. FUNCTION_IDENT is
|
||||
@@ -769,11 +792,12 @@
|
||||
(e.g. for varargs such as vfprintf). */
|
||||
|
||||
void
|
||||
-record_function_format (name, assembler_name, is_scan,
|
||||
+record_function_format (name, assembler_name, is_scan, null_format_ok,
|
||||
format_num, first_arg_num)
|
||||
tree name;
|
||||
tree assembler_name;
|
||||
int is_scan;
|
||||
+ int null_format_ok;
|
||||
int format_num;
|
||||
int first_arg_num;
|
||||
{
|
||||
@@ -797,6 +821,7 @@
|
||||
}
|
||||
|
||||
info->is_scan = is_scan;
|
||||
+ info->null_format_ok = null_format_ok;
|
||||
info->format_num = format_num;
|
||||
info->first_arg_num = first_arg_num;
|
||||
}
|
||||
@@ -876,7 +901,8 @@
|
||||
format_tree = TREE_OPERAND (format_tree, 0); /* strip coercion */
|
||||
if (integer_zerop (format_tree))
|
||||
{
|
||||
- warning ("null format string");
|
||||
+ if (!info->null_format_ok)
|
||||
+ warning ("null format string");
|
||||
return;
|
||||
}
|
||||
if (TREE_CODE (format_tree) != ADDR_EXPR)
|
||||
@@ -1050,11 +1076,12 @@
|
||||
cur_param = TREE_VALUE (params);
|
||||
params = TREE_CHAIN (params);
|
||||
++arg_num;
|
||||
+ /* XXX should we allow unsigned ints here? */
|
||||
if (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
|
||||
!= integer_type_node)
|
||||
{
|
||||
sprintf (message,
|
||||
- "field width is not type int (arg %d)",
|
||||
+ "precision is not type int (arg %d)",
|
||||
arg_num);
|
||||
warning (message);
|
||||
}
|
||||
@@ -1067,6 +1094,56 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ if (*format_chars == 'b')
|
||||
+ {
|
||||
+ /* There should be an int arg to control the string arg. */
|
||||
+ if (params == 0)
|
||||
+ {
|
||||
+ warning (tfaff);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (info->first_arg_num != 0)
|
||||
+ {
|
||||
+ cur_param = TREE_VALUE (params);
|
||||
+ params = TREE_CHAIN (params);
|
||||
+ ++arg_num;
|
||||
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
|
||||
+ != integer_type_node)
|
||||
+ &&
|
||||
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
|
||||
+ != unsigned_type_node))
|
||||
+ {
|
||||
+ sprintf (message, "bitmap is not type int (arg %d)",
|
||||
+ arg_num);
|
||||
+ warning (message);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if (*format_chars == 'D')
|
||||
+ {
|
||||
+ /* There should be an unsigned char * arg before the string arg. */
|
||||
+ if (params == 0)
|
||||
+ {
|
||||
+ warning (tfaff);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (info->first_arg_num != 0)
|
||||
+ {
|
||||
+ cur_param = TREE_VALUE (params);
|
||||
+ params = TREE_CHAIN (params);
|
||||
+ ++arg_num;
|
||||
+ cur_type = TREE_TYPE (cur_param);
|
||||
+ if (TREE_CODE (cur_type) != POINTER_TYPE
|
||||
+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
|
||||
+ != unsigned_char_type_node)
|
||||
+ {
|
||||
+ sprintf (message,
|
||||
+ "ethernet address is not type unsigned char * (arg %d)",
|
||||
+ arg_num);
|
||||
+ warning (message);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
if (*format_chars == 'h' || *format_chars == 'l' || *format_chars == 'q' ||
|
||||
*format_chars == 'L')
|
||||
length_char = *format_chars++;
|
||||
@@ -1094,7 +1171,9 @@
|
||||
continue;
|
||||
}
|
||||
format_chars++;
|
||||
- fci = info->is_scan ? scan_char_table : print_char_table;
|
||||
+ fci = info->is_scan ? scan_char_table
|
||||
+ : flag_format_extensions ? print_char_table
|
||||
+ : unextended_print_char_table;
|
||||
while (fci->format_chars != 0
|
||||
&& index (fci->format_chars, format_char) == 0)
|
||||
++fci;
|
||||
@@ -2048,6 +2127,12 @@
|
||||
return real_zerop (expr) ? boolean_false_node : boolean_true_node;
|
||||
|
||||
case ADDR_EXPR:
|
||||
+ /* If we are taking the address of a external decl, it might be zero
|
||||
+ if it is weak, so we cannot optimize. */
|
||||
+ if (TREE_CODE_CLASS (TREE_CODE (TREE_OPERAND (expr, 0))) == 'd'
|
||||
+ && DECL_EXTERNAL (TREE_OPERAND (expr, 0)))
|
||||
+ break;
|
||||
+
|
||||
if (TREE_SIDE_EFFECTS (TREE_OPERAND (expr, 0)))
|
||||
return build (COMPOUND_EXPR, boolean_type_node,
|
||||
TREE_OPERAND (expr, 0), boolean_true_node);
|
11
lang/gcc27/files/patch-c-tree.h
Normal file
11
lang/gcc27/files/patch-c-tree.h
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- c-tree.h.orig Thu Jun 15 04:13:40 1995
|
||||
+++ c-tree.h Mon Mar 20 13:29:10 2000
|
||||
@@ -159,7 +159,7 @@
|
||||
extern void declare_function_name PROTO((void));
|
||||
extern void decl_attributes PROTO((tree, tree, tree));
|
||||
extern void init_function_format_info PROTO((void));
|
||||
-extern void record_function_format PROTO((tree, tree, int, int, int));
|
||||
+extern void record_function_format PROTO((tree, tree, int, int, int, int));
|
||||
extern void check_function_format PROTO((tree, tree, tree));
|
||||
/* Print an error message for invalid operands to arith operation CODE.
|
||||
NOP_EXPR is used as a special case (see truthvalue_conversion). */
|
33
lang/gcc27/files/patch-cccp.1
Normal file
33
lang/gcc27/files/patch-cccp.1
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- cccp.1.orig Thu Mar 30 04:22:44 1995
|
||||
+++ cccp.1 Mon Mar 20 13:29:10 2000
|
||||
@@ -1,13 +1,13 @@
|
||||
.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation \-*-Text-*-
|
||||
.\" See section COPYING for conditions for redistribution
|
||||
-.TH cpp 1 "30apr1993" "GNU Tools" "GNU Tools"
|
||||
+.TH cpp 1 "April 30, 1993" "FreeBSD" "GNU Tools"
|
||||
.SH NAME
|
||||
-cccp, cpp \- The GNU C-Compatible Compiler Preprocessor.
|
||||
+cpp \- The GNU C-Compatible Compiler Preprocessor.
|
||||
.SH SYNOPSIS
|
||||
.hy 0
|
||||
.na
|
||||
.TP
|
||||
-.B cccp
|
||||
+.B cpp
|
||||
.RB "[\|" \-$ "\|]"
|
||||
.RB "[\|" \-A \c
|
||||
.I predicate\c
|
||||
@@ -142,13 +142,6 @@
|
||||
Most often when you use the C preprocessor you will not have to invoke it
|
||||
explicitly: the C compiler will do so automatically. However, the
|
||||
preprocessor is sometimes useful individually.
|
||||
-
|
||||
-When you call the preprocessor individually, either name
|
||||
-(\c
|
||||
-.B cpp\c
|
||||
-\& or \c
|
||||
-.B cccp\c
|
||||
-\&) will do\(em\&they are completely synonymous.
|
||||
|
||||
The C preprocessor expects two file names as arguments, \c
|
||||
.I infile\c
|
30
lang/gcc27/files/patch-cccp.c
Normal file
30
lang/gcc27/files/patch-cccp.c
Normal file
|
@ -0,0 +1,30 @@
|
|||
--- cccp.c.orig Thu Oct 26 15:07:26 1995
|
||||
+++ cccp.c Mon Mar 20 13:29:10 2000
|
||||
@@ -4923,6 +4923,7 @@
|
||||
register char *from;
|
||||
char *p, *dir;
|
||||
|
||||
+#ifndef FREEBSD_NATIVE
|
||||
if (searchptr && ! searchptr->got_name_map)
|
||||
{
|
||||
searchptr->name_map = read_name_map (searchptr->fname
|
||||
@@ -4945,6 +4946,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
/* Try to find a mapping file for the particular directory we are
|
||||
looking in. Thus #include <sys/types.h> will look up sys/types.h
|
||||
@@ -4981,9 +4983,11 @@
|
||||
dir[p - filename] = '\0';
|
||||
from = p + 1;
|
||||
}
|
||||
+#ifndef FREEBSD_NATIVE
|
||||
for (map = read_name_map (dir); map; map = map->map_next)
|
||||
if (! strcmp (map->map_from, from))
|
||||
return open (map->map_to, O_RDONLY, 0666);
|
||||
+#endif
|
||||
|
||||
return open (filename, O_RDONLY, 0666);
|
||||
}
|
154
lang/gcc27/files/patch-combine.c
Normal file
154
lang/gcc27/files/patch-combine.c
Normal file
|
@ -0,0 +1,154 @@
|
|||
--- combine.c.orig Sun Nov 26 11:32:07 1995
|
||||
+++ combine.c Mon Mar 20 13:29:10 2000
|
||||
@@ -440,7 +440,7 @@
|
||||
static int use_crosses_set_p PROTO((rtx, int));
|
||||
static void reg_dead_at_p_1 PROTO((rtx, rtx));
|
||||
static int reg_dead_at_p PROTO((rtx, rtx));
|
||||
-static void move_deaths PROTO((rtx, int, rtx, rtx *));
|
||||
+static void move_deaths PROTO((rtx, rtx, int, rtx, rtx *));
|
||||
static int reg_bitfield_target_p PROTO((rtx, rtx));
|
||||
static void distribute_notes PROTO((rtx, rtx, rtx, rtx, rtx, rtx));
|
||||
static void distribute_links PROTO((rtx));
|
||||
@@ -2077,8 +2077,38 @@
|
||||
undobuf.other_insn, NULL_RTX, NULL_RTX, NULL_RTX);
|
||||
}
|
||||
|
||||
- /* We now know that we can do this combination. Merge the insns and
|
||||
- update the status of registers and LOG_LINKS. */
|
||||
+ /* We now know that we can do this combination. */
|
||||
+
|
||||
+ /* Earlier we did all the checks required to determine if we could
|
||||
+ logically combine three insns into one. Then we determined that
|
||||
+ the machine description would not let us do it in one, but would
|
||||
+ let us do it in two. Thus when generating two insns, they must,
|
||||
+ in general, be adjacent -- one logical instruction if you will.
|
||||
+
|
||||
+ We could be complicated and figure out some rules that would allow
|
||||
+ us to not move the insn, but it seems likely that the scheduler will
|
||||
+ do as good with no muss. */
|
||||
+
|
||||
+ if (newi2pat && NEXT_INSN (i2) != i3)
|
||||
+ {
|
||||
+ rtx n = NEXT_INSN(i2);
|
||||
+ int c = INSN_CUID(i2);
|
||||
+
|
||||
+ /* Move the instruction */
|
||||
+ reorder_insns(i2, i2, PREV_INSN (i3));
|
||||
+
|
||||
+ /* Update the CUID map */
|
||||
+ while (1)
|
||||
+ {
|
||||
+ uid_cuid[INSN_UID (n)] = c;
|
||||
+ if (n == i2)
|
||||
+ break;
|
||||
+ n = NEXT_INSN(n);
|
||||
+ ++c;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Merge the insns and update the status of registers and LOG_LINKS. */
|
||||
|
||||
{
|
||||
rtx i3notes, i2notes, i1notes = 0;
|
||||
@@ -2186,11 +2216,18 @@
|
||||
}
|
||||
|
||||
/* Get death notes for everything that is now used in either I3 or
|
||||
- I2 and used to die in a previous insn. */
|
||||
+ I2 and used to die in a previous insn. If we built two new
|
||||
+ patterns, move from i1 to i2 then i2 to i3 so that we get the
|
||||
+ proper movement on registers that i2 modifies. */
|
||||
|
||||
- move_deaths (newpat, i1 ? INSN_CUID (i1) : INSN_CUID (i2), i3, &midnotes);
|
||||
if (newi2pat)
|
||||
- move_deaths (newi2pat, INSN_CUID (i1), i2, &midnotes);
|
||||
+ {
|
||||
+ move_deaths (newi2pat, NULL_RTX, INSN_CUID (i1), i2, &midnotes);
|
||||
+ move_deaths (newpat, newi2pat, INSN_CUID (i1), i3, &midnotes);
|
||||
+ }
|
||||
+ else
|
||||
+ move_deaths (newpat, NULL_RTX, i1 ? INSN_CUID (i1) : INSN_CUID (i2),
|
||||
+ i3, &midnotes);
|
||||
|
||||
/* Distribute all the LOG_LINKS and REG_NOTES from I1, I2, and I3. */
|
||||
if (i3notes)
|
||||
@@ -10372,12 +10409,15 @@
|
||||
TO_INSN (exclusive), put a REG_DEAD note for that register in the
|
||||
list headed by PNOTES.
|
||||
|
||||
+ That said, don't move registers killed by maybe_kill_insn.
|
||||
+
|
||||
This is done when X is being merged by combination into TO_INSN. These
|
||||
notes will then be distributed as needed. */
|
||||
|
||||
static void
|
||||
-move_deaths (x, from_cuid, to_insn, pnotes)
|
||||
+move_deaths (x, maybe_kill_insn, from_cuid, to_insn, pnotes)
|
||||
rtx x;
|
||||
+ rtx maybe_kill_insn;
|
||||
int from_cuid;
|
||||
rtx to_insn;
|
||||
rtx *pnotes;
|
||||
@@ -10392,6 +10432,11 @@
|
||||
register rtx where_dead = reg_last_death[regno];
|
||||
register rtx before_dead, after_dead;
|
||||
|
||||
+ /* Don't move the register if it gets killed in between from and to */
|
||||
+ if (maybe_kill_insn && reg_set_p (x, maybe_kill_insn)
|
||||
+ && !reg_referenced_p (x, maybe_kill_insn))
|
||||
+ return;
|
||||
+
|
||||
/* WHERE_DEAD could be a USE insn made by combine, so first we
|
||||
make sure that we have insns with valid INSN_CUID values. */
|
||||
before_dead = where_dead;
|
||||
@@ -10449,7 +10494,7 @@
|
||||
|
||||
for (i = regno + 1; i < ourend; i++)
|
||||
move_deaths (gen_rtx (REG, reg_raw_mode[i], i),
|
||||
- from_cuid, to_insn, &oldnotes);
|
||||
+ maybe_kill_insn, from_cuid, to_insn, &oldnotes);
|
||||
}
|
||||
|
||||
if (note != 0 && GET_MODE (XEXP (note, 0)) == GET_MODE (x))
|
||||
@@ -10470,7 +10515,7 @@
|
||||
{
|
||||
rtx dest = SET_DEST (x);
|
||||
|
||||
- move_deaths (SET_SRC (x), from_cuid, to_insn, pnotes);
|
||||
+ move_deaths (SET_SRC (x), maybe_kill_insn, from_cuid, to_insn, pnotes);
|
||||
|
||||
/* In the case of a ZERO_EXTRACT, a STRICT_LOW_PART, or a SUBREG
|
||||
that accesses one word of a multi-word item, some
|
||||
@@ -10485,7 +10530,7 @@
|
||||
== ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (dest)))
|
||||
+ UNITS_PER_WORD - 1) / UNITS_PER_WORD))))
|
||||
{
|
||||
- move_deaths (dest, from_cuid, to_insn, pnotes);
|
||||
+ move_deaths (dest, maybe_kill_insn, from_cuid, to_insn, pnotes);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -10499,7 +10544,8 @@
|
||||
being replaced so the old value is not used in this insn. */
|
||||
|
||||
if (GET_CODE (dest) == MEM)
|
||||
- move_deaths (XEXP (dest, 0), from_cuid, to_insn, pnotes);
|
||||
+ move_deaths (XEXP (dest, 0), maybe_kill_insn, from_cuid,
|
||||
+ to_insn, pnotes);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -10515,10 +10561,11 @@
|
||||
{
|
||||
register int j;
|
||||
for (j = XVECLEN (x, i) - 1; j >= 0; j--)
|
||||
- move_deaths (XVECEXP (x, i, j), from_cuid, to_insn, pnotes);
|
||||
+ move_deaths (XVECEXP (x, i, j), maybe_kill_insn, from_cuid,
|
||||
+ to_insn, pnotes);
|
||||
}
|
||||
else if (fmt[i] == 'e')
|
||||
- move_deaths (XEXP (x, i), from_cuid, to_insn, pnotes);
|
||||
+ move_deaths (XEXP (x, i), maybe_kill_insn, from_cuid, to_insn, pnotes);
|
||||
}
|
||||
}
|
||||
|
44
lang/gcc27/files/patch-configure
Normal file
44
lang/gcc27/files/patch-configure
Normal file
|
@ -0,0 +1,44 @@
|
|||
--- configure.orig Wed Aug 13 10:23:24 1997
|
||||
+++ configure Wed Mar 22 10:37:04 2000
|
||||
@@ -80,7 +80,7 @@
|
||||
exec_prefix='$(prefix)'
|
||||
#
|
||||
# The default g++ include directory is $(libdir)/g++-include.
|
||||
-gxx_include_dir='$(libdir)/g++-include'
|
||||
+gxx_include_dir='$(libsubdir)/g++-include'
|
||||
|
||||
# Default --program-transform-name to nothing.
|
||||
program_transform_name=
|
||||
@@ -931,9 +931,31 @@
|
||||
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
|
||||
# use_collect2=yes
|
||||
;;
|
||||
- i[3456]86-*-freebsd*)
|
||||
+ alpha-*-freebsd*)
|
||||
+ cpu_type=alpha
|
||||
+ tm_file=alpha/freebsd-elf.h
|
||||
+ xm_file=alpha/xm-freebsd.h
|
||||
+ # On FreeBSD, the headers are already ok.
|
||||
+ fixincludes=Makefile.in
|
||||
+ xmake_file=alpha/x-freebsd
|
||||
+ gas=yes
|
||||
+ gnu_ld=yes
|
||||
+ stabs=yes
|
||||
+ ;;
|
||||
+ i[345]86-*-freebsd*)
|
||||
cpu_type=i386
|
||||
tm_file=i386/freebsd.h
|
||||
+ xm_file=i386/xm-freebsd.h
|
||||
+ # On FreeBSD, the headers are already ok.
|
||||
+ fixincludes=Makefile.in
|
||||
+ xmake_file=i386/x-freebsd
|
||||
+ gas=yes
|
||||
+ gnu_ld=yes
|
||||
+ stabs=yes
|
||||
+ ;;
|
||||
+ i[3456]86-*-freebsdaout*)
|
||||
+ cpu_type=i386
|
||||
+ tm_file=i386/freebsd-aout.h
|
||||
xm_file=i386/xm-freebsd.h
|
||||
# On FreeBSD, the headers are already ok.
|
||||
fixincludes=Makefile.in
|
20
lang/gcc27/files/patch-cse.c
Normal file
20
lang/gcc27/files/patch-cse.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- cse.c.orig Fri Aug 8 08:30:25 1997
|
||||
+++ cse.c Mon Mar 20 13:29:11 2000
|
||||
@@ -7567,10 +7567,15 @@
|
||||
and that's just as good as a structure element
|
||||
in implying that we need not invalidate scalar variables.
|
||||
However, we must allow QImode aliasing of scalars, because the
|
||||
- ANSI C standard allows character pointers to alias anything. */
|
||||
+ ANSI C standard allows character pointers to alias anything.
|
||||
+ We must also allow AND addresses, because they may generate
|
||||
+ accesses outside the object being referenced. This is used to
|
||||
+ generate aligned addresses from unaligned adresses, e.g., the
|
||||
+ Alpha storeqi_unaligned pattern. */
|
||||
if (! ((MEM_IN_STRUCT_P (written)
|
||||
|| GET_CODE (XEXP (written, 0)) == PLUS)
|
||||
- && GET_MODE (written) != QImode))
|
||||
+ && GET_MODE (written) != QImode
|
||||
+ && GET_CODE (XEXP (written, 0)) != AND))
|
||||
writes_ptr->all = 1;
|
||||
writes_ptr->nonscalar = 1;
|
||||
}
|
26
lang/gcc27/files/patch-dbxout.c
Normal file
26
lang/gcc27/files/patch-dbxout.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
--- dbxout.c.orig Thu Jun 15 04:27:10 1995
|
||||
+++ dbxout.c Mon Mar 20 13:29:11 2000
|
||||
@@ -2494,6 +2494,11 @@
|
||||
{
|
||||
#ifdef DBX_FUNCTION_FIRST
|
||||
dbxout_really_begin_function (decl);
|
||||
+#else
|
||||
+#ifdef DBX_CHECK_FUNCTION_FIRST
|
||||
+ if (DBX_CHECK_FUNCTION_FIRST)
|
||||
+ dbxout_really_begin_function (decl);
|
||||
+#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -2509,6 +2514,11 @@
|
||||
{
|
||||
#ifndef DBX_FUNCTION_FIRST
|
||||
dbxout_really_begin_function (decl);
|
||||
+#else
|
||||
+#ifdef DBX_CHECK_FUNCTION_FIRST
|
||||
+ if (!(DBX_CHECK_FUNCTION_FIRST))
|
||||
+ dbxout_really_begin_function (decl);
|
||||
+#endif
|
||||
#endif
|
||||
dbxout_block (DECL_INITIAL (decl), 0, DECL_ARGUMENTS (decl));
|
||||
#ifdef DBX_OUTPUT_FUNCTION_END
|
35
lang/gcc27/files/patch-decl.c
Normal file
35
lang/gcc27/files/patch-decl.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
--- cp/decl.c.orig Mon Oct 23 15:25:44 1995
|
||||
+++ cp/decl.c Mon Mar 20 13:29:12 2000
|
||||
@@ -1486,7 +1486,7 @@
|
||||
tree t;
|
||||
int i = 0, len;
|
||||
fprintf (stderr, " blocks=");
|
||||
- fprintf (stderr, HOST_PTR_PRINTF, lvl->blocks);
|
||||
+ fprintf (stderr, HOST_PTR_PRINTF, (void *) lvl->blocks);
|
||||
fprintf (stderr, " n_incomplete=%d parm_flag=%d keep=%d",
|
||||
list_length (lvl->incomplete), lvl->parm_flag, lvl->keep);
|
||||
if (lvl->tag_transparent)
|
||||
@@ -1609,7 +1609,7 @@
|
||||
for (level = stack; level != global_binding_level; level = level->level_chain)
|
||||
{
|
||||
fprintf (stderr, "binding level ");
|
||||
- fprintf (stderr, HOST_PTR_PRINTF, level);
|
||||
+ fprintf (stderr, HOST_PTR_PRINTF, (void *) level);
|
||||
fprintf (stderr, "\n");
|
||||
print_binding_level (level);
|
||||
}
|
||||
@@ -1620,11 +1620,11 @@
|
||||
{
|
||||
struct binding_level *b;
|
||||
fprintf (stderr, "current_binding_level=");
|
||||
- fprintf (stderr, HOST_PTR_PRINTF, current_binding_level);
|
||||
+ fprintf (stderr, HOST_PTR_PRINTF, (void *) current_binding_level);
|
||||
fprintf (stderr, "\nclass_binding_level=");
|
||||
- fprintf (stderr, HOST_PTR_PRINTF, class_binding_level);
|
||||
+ fprintf (stderr, HOST_PTR_PRINTF, (void *) class_binding_level);
|
||||
fprintf (stderr, "\nglobal_binding_level=");
|
||||
- fprintf (stderr, HOST_PTR_PRINTF, global_binding_level);
|
||||
+ fprintf (stderr, HOST_PTR_PRINTF, (void *) global_binding_level);
|
||||
fprintf (stderr, "\n");
|
||||
if (class_binding_level)
|
||||
{
|
20
lang/gcc27/files/patch-dwarfout.c
Normal file
20
lang/gcc27/files/patch-dwarfout.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- dwarfout.c.orig Thu Oct 26 18:40:07 1995
|
||||
+++ dwarfout.c Mon Mar 20 13:29:11 2000
|
||||
@@ -1095,7 +1095,7 @@
|
||||
byte |= 0x80;
|
||||
fprintf (asm_out_file, "\t%s\t0x%x", ASM_BYTE_OP, (unsigned) byte);
|
||||
if (flag_verbose_asm && value == 0)
|
||||
- fprintf (asm_out_file, "\t%s ULEB128 number - value = %u",
|
||||
+ fprintf (asm_out_file, "\t%s ULEB128 number - value = %lu",
|
||||
ASM_COMMENT_START, orig_value);
|
||||
fputc ('\n', asm_out_file);
|
||||
}
|
||||
@@ -1127,7 +1127,7 @@
|
||||
}
|
||||
fprintf (asm_out_file, "\t%s\t0x%x", ASM_BYTE_OP, (unsigned) byte);
|
||||
if (flag_verbose_asm && more == 0)
|
||||
- fprintf (asm_out_file, "\t%s SLEB128 number - value = %d",
|
||||
+ fprintf (asm_out_file, "\t%s SLEB128 number - value = %ld",
|
||||
ASM_COMMENT_START, orig_value);
|
||||
fputc ('\n', asm_out_file);
|
||||
}
|
37
lang/gcc27/files/patch-emit-rtl.c
Normal file
37
lang/gcc27/files/patch-emit-rtl.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
--- emit-rtl.c.orig Thu Sep 14 13:09:30 1995
|
||||
+++ emit-rtl.c Mon Mar 20 13:29:11 2000
|
||||
@@ -159,6 +159,10 @@
|
||||
rtx static_chain_incoming_rtx; /* (REG:Pmode STATIC_CHAIN_INCOMING_REGNUM) */
|
||||
rtx pic_offset_table_rtx; /* (REG:Pmode PIC_OFFSET_TABLE_REGNUM) */
|
||||
|
||||
+/* This is used to implement __builtin_return_address for some machines.
|
||||
+ See for instance the MIPS port. */
|
||||
+rtx return_address_pointer_rtx; /* (REG:Pmode RETURN_ADDRESS_POINTER_REGNUM) */
|
||||
+
|
||||
rtx virtual_incoming_args_rtx; /* (REG:Pmode VIRTUAL_INCOMING_ARGS_REGNUM) */
|
||||
rtx virtual_stack_vars_rtx; /* (REG:Pmode VIRTUAL_STACK_VARS_REGNUM) */
|
||||
rtx virtual_stack_dynamic_rtx; /* (REG:Pmode VIRTUAL_STACK_DYNAMIC_REGNUM) */
|
||||
@@ -345,6 +349,11 @@
|
||||
&& ! reload_in_progress)
|
||||
return arg_pointer_rtx;
|
||||
#endif
|
||||
+#ifdef RETURN_ADDRESS_POINTER_REGNUM
|
||||
+ if (return_address_pointer_rtx && regno == RETURN_ADDRESS_POINTER_REGNUM
|
||||
+ && mode == Pmode && ! reload_in_progress)
|
||||
+ return return_address_pointer_rtx;
|
||||
+#endif
|
||||
if (stack_pointer_rtx && regno == STACK_POINTER_REGNUM && mode == Pmode
|
||||
&& ! reload_in_progress)
|
||||
return stack_pointer_rtx;
|
||||
@@ -3391,6 +3400,11 @@
|
||||
arg_pointer_rtx = stack_pointer_rtx;
|
||||
else
|
||||
arg_pointer_rtx = gen_rtx (REG, Pmode, ARG_POINTER_REGNUM);
|
||||
+
|
||||
+#ifdef RETURN_ADDRESS_POINTER_REGNUM
|
||||
+ return_address_pointer_rtx = gen_rtx (REG, Pmode,
|
||||
+ RETURN_ADDRESS_POINTER_REGNUM);
|
||||
+#endif
|
||||
|
||||
/* Create the virtual registers. Do so here since the following objects
|
||||
might reference them. */
|
37
lang/gcc27/files/patch-except.c
Normal file
37
lang/gcc27/files/patch-except.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
--- cp/except.c.orig Wed Oct 11 19:29:08 1995
|
||||
+++ cp/except.c Mon Mar 20 13:29:12 2000
|
||||
@@ -148,6 +148,9 @@
|
||||
void
|
||||
exception_section ()
|
||||
{
|
||||
+#ifdef EXCEPTION_SECTION_FUNCTION
|
||||
+ EXCEPTION_SECTION_FUNCTION;
|
||||
+#else
|
||||
#ifdef ASM_OUTPUT_SECTION_NAME
|
||||
named_section (NULL_TREE, ".gcc_except_table");
|
||||
#else
|
||||
@@ -160,6 +163,7 @@
|
||||
readonly_data_section ();
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1614,9 +1618,15 @@
|
||||
void
|
||||
register_exception_table ()
|
||||
{
|
||||
+ rtx addr = gen_rtx (SYMBOL_REF, Pmode, "__EXCEPTION_TABLE__");
|
||||
+
|
||||
+#ifdef MARK_LOCAL_ADDRESS
|
||||
+ MARK_LOCAL_ADDRESS(addr);
|
||||
+#endif
|
||||
+
|
||||
emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__register_exceptions"), 0,
|
||||
VOIDmode, 1,
|
||||
- gen_rtx (SYMBOL_REF, Pmode, "__EXCEPTION_TABLE__"),
|
||||
+ addr,
|
||||
Pmode);
|
||||
}
|
||||
|
25
lang/gcc27/files/patch-extend.texi
Normal file
25
lang/gcc27/files/patch-extend.texi
Normal file
|
@ -0,0 +1,25 @@
|
|||
--- extend.texi.orig Fri Sep 1 22:46:47 1995
|
||||
+++ extend.texi Mon Mar 20 13:29:11 2000
|
||||
@@ -1394,13 +1394,15 @@
|
||||
@code{my_format}.
|
||||
|
||||
The parameter @var{archetype} determines how the format string is
|
||||
-interpreted, and should be either @code{printf} or @code{scanf}. The
|
||||
-parameter @var{string-index} specifies which argument is the format
|
||||
-string argument (starting from 1), while @var{first-to-check} is the
|
||||
-number of the first argument to check against the format string. For
|
||||
-functions where the arguments are not available to be checked (such as
|
||||
-@code{vprintf}), specify the third parameter as zero. In this case the
|
||||
-compiler only checks the format string for consistency.
|
||||
+interpreted, and should be @code{printf}, @code{printf0}, or
|
||||
+@code{scanf}. @code{printf0} allows the format string to be a null
|
||||
+pointer, while @code{printf} does not. The parameter @var{string-index}
|
||||
+specifies which argument is the format string argument (starting
|
||||
+from 1), while @var{first-to-check} is the number of the first
|
||||
+argument to check against the format string. For functions where
|
||||
+the arguments are not available to be checked (such as @code{vprintf}),
|
||||
+specify the third parameter as zero. In this case the compiler
|
||||
+only checks the format string for consistency.
|
||||
|
||||
In the example above, the format string (@code{my_format}) is the second
|
||||
argument of the function @code{my_print}, and the arguments to check
|
60
lang/gcc27/files/patch-final.c
Normal file
60
lang/gcc27/files/patch-final.c
Normal file
|
@ -0,0 +1,60 @@
|
|||
--- final.c.orig Sun Nov 26 10:50:00 1995
|
||||
+++ final.c Mon Mar 20 13:29:11 2000
|
||||
@@ -345,6 +345,8 @@
|
||||
/* zero word */
|
||||
assemble_integer (const0_rtx, UNITS_PER_WORD, 1);
|
||||
|
||||
+ fprintf(asm_out_file,".stabs \"bbset\", 25, 0, 0, LPBX0\n");
|
||||
+
|
||||
/* address of filename */
|
||||
ASM_GENERATE_INTERNAL_LABEL (name, "LPBX", 1);
|
||||
assemble_integer (gen_rtx (SYMBOL_REF, Pmode, name), UNITS_PER_WORD, 1);
|
||||
@@ -914,6 +916,9 @@
|
||||
leaf_renumber_regs (first);
|
||||
#endif
|
||||
|
||||
+ if (profile_block_flag)
|
||||
+ add_bb (file);
|
||||
+
|
||||
/* The Sun386i and perhaps other machines don't work right
|
||||
if the profiling code comes after the prologue. */
|
||||
#ifdef PROFILE_BEFORE_PROLOGUE
|
||||
@@ -971,14 +976,18 @@
|
||||
profile_function (file)
|
||||
FILE *file;
|
||||
{
|
||||
+#ifndef NO_PROFILE_DATA
|
||||
int align = MIN (BIGGEST_ALIGNMENT, POINTER_SIZE);
|
||||
+#endif /* not NO_PROFILE_DATA */
|
||||
int sval = current_function_returns_struct;
|
||||
int cxt = current_function_needs_context;
|
||||
|
||||
+#ifndef NO_PROFILE_DATA
|
||||
data_section ();
|
||||
ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT));
|
||||
ASM_OUTPUT_INTERNAL_LABEL (file, "LP", profile_label_no);
|
||||
assemble_integer (const0_rtx, POINTER_SIZE / BITS_PER_UNIT, 1);
|
||||
+#endif /* not NO_PROFILE_DATA */
|
||||
|
||||
text_section ();
|
||||
|
||||
@@ -1066,6 +1075,9 @@
|
||||
FUNCTION_EPILOGUE (file, get_frame_size ());
|
||||
#endif
|
||||
|
||||
+ if (profile_block_flag)
|
||||
+ add_bb (file);
|
||||
+
|
||||
#ifdef SDB_DEBUGGING_INFO
|
||||
if (write_symbols == SDB_DEBUG)
|
||||
sdbout_end_epilogue ();
|
||||
@@ -1487,6 +1499,9 @@
|
||||
if (prescan > 0)
|
||||
break;
|
||||
new_block = 1;
|
||||
+#ifdef FINAL_PRESCAN_INSN
|
||||
+ FINAL_PRESCAN_INSN (insn, NULL_RTX, 0);
|
||||
+#endif
|
||||
#ifdef SDB_DEBUGGING_INFO
|
||||
if (write_symbols == SDB_DEBUG && LABEL_NAME (insn))
|
||||
sdbout_label (insn);
|
13
lang/gcc27/files/patch-flags.h
Normal file
13
lang/gcc27/files/patch-flags.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
--- flags.h.orig Thu Jun 15 04:34:11 1995
|
||||
+++ flags.h Mon Mar 20 13:29:11 2000
|
||||
@@ -338,6 +338,10 @@
|
||||
|
||||
/* Tag all structures with __attribute__(packed) */
|
||||
extern int flag_pack_struct;
|
||||
+
|
||||
+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
|
||||
+
|
||||
+extern int flag_format_extensions;
|
||||
|
||||
/* Other basic status info about current function. */
|
||||
|
34
lang/gcc27/files/patch-function.c
Normal file
34
lang/gcc27/files/patch-function.c
Normal file
|
@ -0,0 +1,34 @@
|
|||
--- function.c.orig Wed Aug 13 10:23:26 1997
|
||||
+++ function.c Mon Mar 20 13:29:11 2000
|
||||
@@ -4887,18 +4887,23 @@
|
||||
#define HAS_INIT_SECTION
|
||||
#endif
|
||||
|
||||
+#ifndef GEN_CALL__MAIN
|
||||
+#ifndef HAS_INIT_SECTION
|
||||
+#define GEN_CALL__MAIN \
|
||||
+ do { \
|
||||
+ emit_library_call (gen_rtx (SYMBOL_REF, Pmode, NAME__MAIN), 0, \
|
||||
+ VOIDmode, 0); \
|
||||
+ } while (0)
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
void
|
||||
expand_main_function ()
|
||||
{
|
||||
+#ifdef GEN_CALL__MAIN
|
||||
if (!output_bytecode)
|
||||
- {
|
||||
- /* The zero below avoids a possible parse error */
|
||||
- 0;
|
||||
-#if !defined (HAS_INIT_SECTION)
|
||||
- emit_library_call (gen_rtx (SYMBOL_REF, Pmode, NAME__MAIN), 0,
|
||||
- VOIDmode, 0);
|
||||
-#endif /* not HAS_INIT_SECTION */
|
||||
- }
|
||||
+ GEN_CALL__MAIN;
|
||||
+#endif
|
||||
}
|
||||
|
||||
extern struct obstack permanent_obstack;
|
11
lang/gcc27/files/patch-g++.c
Normal file
11
lang/gcc27/files/patch-g++.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- cp/g++.c.orig Mon Nov 20 14:08:53 1995
|
||||
+++ cp/g++.c Mon Mar 20 13:29:12 2000
|
||||
@@ -415,7 +415,7 @@
|
||||
programname = p;
|
||||
|
||||
if (argc == 1)
|
||||
- fatal ("No input files specified.\n");
|
||||
+ fatal ("No input files specified");
|
||||
|
||||
#ifndef __MSDOS__
|
||||
/* We do a little magic to find out where the main gcc executable
|
137
lang/gcc27/files/patch-gcc.1
Normal file
137
lang/gcc27/files/patch-gcc.1
Normal file
|
@ -0,0 +1,137 @@
|
|||
--- gcc.1.orig Sun Nov 26 11:11:33 1995
|
||||
+++ gcc.1 Mon Mar 20 13:29:11 2000
|
||||
@@ -438,7 +438,17 @@
|
||||
\-m486
|
||||
\-mno\-486
|
||||
\-msoft\-float
|
||||
+\-mrtd
|
||||
+\-mregparm
|
||||
+\-msvr3\-shlib
|
||||
+\-mno\-ieee\-fp
|
||||
\-mno\-fp\-ret\-in\-387
|
||||
+\-mfancy\-math\-387
|
||||
+\-mno\-wide\-multiply
|
||||
+\-mdebug\-addr
|
||||
+\-mno\-move
|
||||
+\-mprofiler\-epilogue
|
||||
+\-reg\-alloc=LIST
|
||||
.Sp
|
||||
.I HPPA Options
|
||||
.br
|
||||
@@ -511,6 +521,16 @@
|
||||
\-fverbose\-asm
|
||||
.ad b
|
||||
.hy 1
|
||||
+.SH FreeBSD SPECIFIC OPTIONS
|
||||
+.TP
|
||||
+.BI "\-pthread"
|
||||
+Link a user-threaded process against libc_r instead of libc. Objects linked
|
||||
+into user-threaded processes should be compiled with -D_THREAD_SAFE.
|
||||
+.TP
|
||||
+.BI "\-kthread"
|
||||
+Link a kernel-threaded process against libpthread in addition to libc.
|
||||
+Objects linked into kernel-threaded processes should be compiled with
|
||||
+-D_THREAD_SAFE.
|
||||
.SH OVERALL OPTIONS
|
||||
.TP
|
||||
.BI "\-x " "language"
|
||||
@@ -1179,13 +1199,17 @@
|
||||
.B \-M\c
|
||||
\&\|' but the output mentions only the user header files
|
||||
included with `\|\c
|
||||
-.B #include "\c
|
||||
+.B
|
||||
+#include "\c
|
||||
.I file\c
|
||||
+.B
|
||||
\&"\c
|
||||
\&\|'. System header files
|
||||
included with `\|\c
|
||||
-.B #include <\c
|
||||
+.B
|
||||
+#include <\c
|
||||
.I file\c
|
||||
+.B
|
||||
\&>\c
|
||||
\&\|' are omitted.
|
||||
.TP
|
||||
@@ -1462,8 +1486,10 @@
|
||||
\&"\c
|
||||
\&\|';
|
||||
they are not searched for `\|\c
|
||||
-.B #include <\c
|
||||
+.B
|
||||
+#include <\c
|
||||
.I file\c
|
||||
+.B
|
||||
\&>\c
|
||||
\&\|'.
|
||||
.Sp
|
||||
@@ -1961,7 +1987,7 @@
|
||||
.B \-Wnested-externs
|
||||
Warn if an \c
|
||||
.B extern\c
|
||||
-\& declaration is encountered within an function.
|
||||
+\& declaration is encountered within a function.
|
||||
.TP
|
||||
.B \-Wenum\-clash
|
||||
Warn about conversion between different enumeration types (C++ only).
|
||||
@@ -2909,17 +2935,17 @@
|
||||
.B \-mcypress
|
||||
.TP
|
||||
.B \-msupersparc
|
||||
-These two options select the processor for which the code is optimised.
|
||||
+These two options select the processor for which the code is optimized.
|
||||
.Sp
|
||||
With
|
||||
.B \-mcypress
|
||||
-(the default), the compiler optimises code for the Cypress CY7C602 chip, as
|
||||
+(the default), the compiler optimizes code for the Cypress CY7C602 chip, as
|
||||
used in the SparcStation/SparcServer 3xx series. This is also appropriate for
|
||||
the older SparcStation 1, 2, IPX etc.
|
||||
.Sp
|
||||
With
|
||||
.B \-msupersparc
|
||||
-the compiler optimises code for the SuperSparc cpu, as used in the SparcStation
|
||||
+the compiler optimizes code for the SuperSparc cpu, as used in the SparcStation
|
||||
10, 1000 and 2000 series. This flag also enables use of the full SPARC v8
|
||||
instruction set.
|
||||
.PP
|
||||
@@ -3490,7 +3516,7 @@
|
||||
value.
|
||||
.TP
|
||||
.B \-nocpp
|
||||
-Tell the MIPS assembler to not run it's preprocessor over user
|
||||
+Tell the MIPS assembler to not run its preprocessor over user
|
||||
assembler files (with a `\|\c
|
||||
.B .s\c
|
||||
\&\|' suffix) when assembling them.
|
||||
@@ -3498,6 +3524,7 @@
|
||||
These `\|\c
|
||||
.B \-m\c
|
||||
\&\|' options are defined for the Intel 80386 family of computers:
|
||||
+.TP
|
||||
.B \-m486
|
||||
.TP
|
||||
.B \-mno\-486
|
||||
@@ -3534,6 +3561,11 @@
|
||||
.B \-mno-fp-ret-in-387\c
|
||||
\&\|' causes such values to be returned
|
||||
in ordinary CPU registers instead.
|
||||
+.TP
|
||||
+.B \-mprofiler-epilogue
|
||||
+.TP
|
||||
+.B \-mno-profiler-epilogue
|
||||
+Generate extra code to write profile information for function exits.
|
||||
.PP
|
||||
These `\|\c
|
||||
.B \-m\c
|
||||
@@ -4069,7 +4101,7 @@
|
||||
.B /tmp\c
|
||||
\&).
|
||||
.SH "SEE ALSO"
|
||||
-cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
|
||||
+cpp(1), as(1), ld(1), gdb(1).
|
||||
.br
|
||||
.RB "`\|" gcc "\|', `\|" cpp \|',
|
||||
.RB "`\|" as "\|', `\|" ld \|',
|
229
lang/gcc27/files/patch-gcc.c
Normal file
229
lang/gcc27/files/patch-gcc.c
Normal file
|
@ -0,0 +1,229 @@
|
|||
--- gcc.c.orig Tue Jun 24 11:42:50 1997
|
||||
+++ gcc.c Mon Mar 20 13:29:11 2000
|
||||
@@ -32,6 +32,7 @@
|
||||
compilation is specified by a string called a "spec". */
|
||||
|
||||
#include <sys/types.h>
|
||||
+#include <sys/wait.h>
|
||||
#include <ctype.h>
|
||||
#include <signal.h>
|
||||
#include <sys/stat.h>
|
||||
@@ -53,6 +54,9 @@
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <unistd.h>
|
||||
+#include <string.h>
|
||||
|
||||
/* Include multi-lib information. */
|
||||
#include "multilib.h"
|
||||
@@ -1620,7 +1624,6 @@
|
||||
char **envp;
|
||||
int num_envs = 0;
|
||||
int name_len = 1;
|
||||
- int str_len = strlen (str);
|
||||
char *p = str;
|
||||
int ch;
|
||||
|
||||
@@ -2095,7 +2098,7 @@
|
||||
/* Exec the program. */
|
||||
(*func) (program, argv);
|
||||
perror_exec (program);
|
||||
- exit (-1);
|
||||
+ _exit (1);
|
||||
/* NOTREACHED */
|
||||
return 0;
|
||||
|
||||
@@ -2324,6 +2327,10 @@
|
||||
char *language;
|
||||
};
|
||||
|
||||
+#if defined(FREEBSD_NATIVE) && defined(__i386__)
|
||||
+static int objformat_aout = 0;
|
||||
+#endif
|
||||
+
|
||||
/* Also a vector of input files specified. */
|
||||
|
||||
static struct infile *infiles;
|
||||
@@ -2469,6 +2476,39 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#if defined(FREEBSD_NATIVE) && defined(__i386__)
|
||||
+ {
|
||||
+ /* first hint is /etc/objformat */
|
||||
+ FILE *fp = fopen("/etc/objformat", "r");
|
||||
+ if (fp) {
|
||||
+ char buf[1024];
|
||||
+ buf[1023] = '\0';
|
||||
+ while (fgets(buf, sizeof(buf) - 1, fp) != NULL) {
|
||||
+ i = strlen(buf);
|
||||
+ if (buf[i - 1] == '\n')
|
||||
+ buf[i - 1] = '\0';
|
||||
+ if (strcmp(buf, "OBJFORMAT=aout") == 0)
|
||||
+ objformat_aout = 1;
|
||||
+ else if (strcmp(buf, "OBJFORMAT=elf") == 0)
|
||||
+ objformat_aout = 0;
|
||||
+ else
|
||||
+ fprintf(stderr, "Unrecognized line in /etc/objformat: %s\n", buf);
|
||||
+ }
|
||||
+ fclose(fp);
|
||||
+ }
|
||||
+ /* but the user $OBJFORMAT overrides system default */
|
||||
+ temp = getenv("OBJFORMAT");
|
||||
+ if (temp) {
|
||||
+ if (strcmp(temp, "aout") == 0)
|
||||
+ objformat_aout = 1;
|
||||
+ else if (strcmp(temp, "elf") == 0)
|
||||
+ objformat_aout = 0;
|
||||
+ else
|
||||
+ fprintf(stderr, "Unrecognized value of $OBJFORMAT: %s\n", temp);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* Convert new-style -- options to old-style. */
|
||||
translate_options (&argc, &argv);
|
||||
|
||||
@@ -2478,6 +2518,19 @@
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
+#if defined(FREEBSD_NATIVE) && defined(__i386__)
|
||||
+ /* .. and command line args override all */
|
||||
+ if (strcmp (argv[i], "-aout") == 0)
|
||||
+ {
|
||||
+ objformat_aout = 1;
|
||||
+ continue;
|
||||
+ }
|
||||
+ else if (strcmp (argv[i], "-elf") == 0)
|
||||
+ {
|
||||
+ objformat_aout = 0;
|
||||
+ continue;
|
||||
+ }
|
||||
+#endif
|
||||
if (! strcmp (argv[i], "-dumpspecs"))
|
||||
{
|
||||
printf ("*asm:\n%s\n\n", asm_spec);
|
||||
@@ -2703,6 +2756,18 @@
|
||||
(such as cpp) rather than those of the host system. */
|
||||
/* Use 2 as fourth arg meaning try just the machine as a suffix,
|
||||
as well as trying the machine and the version. */
|
||||
+#ifdef FREEBSD_NATIVE
|
||||
+#if defined(__i386__)
|
||||
+ if (objformat_aout) {
|
||||
+ n_switches++; /* add implied -maout */
|
||||
+ add_prefix (&exec_prefixes, "/usr/libexec/aout/", 0, 0, NULL_PTR);
|
||||
+ } else
|
||||
+ add_prefix (&exec_prefixes, "/usr/libexec/elf/", 0, 0, NULL_PTR);
|
||||
+#endif
|
||||
+ add_prefix (&exec_prefixes, "/usr/libexec/", 0, 0, NULL_PTR);
|
||||
+ add_prefix (&exec_prefixes, "/usr/bin/", 0, 0, NULL_PTR);
|
||||
+ add_prefix (&startfile_prefixes, "/usr/libdata/gcc/", 0, 0, NULL_PTR);
|
||||
+#else /* not FREEBSD_NATIVE */
|
||||
#ifndef OS2
|
||||
add_prefix (&exec_prefixes, standard_exec_prefix, 0, 2, NULL_PTR);
|
||||
add_prefix (&exec_prefixes, standard_exec_prefix_1, 0, 2, NULL_PTR);
|
||||
@@ -2710,6 +2775,7 @@
|
||||
|
||||
add_prefix (&startfile_prefixes, standard_exec_prefix, 0, 1, NULL_PTR);
|
||||
add_prefix (&startfile_prefixes, standard_exec_prefix_1, 0, 1, NULL_PTR);
|
||||
+#endif /* FREEBSD_NATIVE */
|
||||
|
||||
tooldir_prefix = concat3 (tooldir_base_prefix, spec_machine,
|
||||
dir_separator_str);
|
||||
@@ -2744,12 +2810,14 @@
|
||||
dir_separator_str, tooldir_prefix);
|
||||
}
|
||||
|
||||
+#ifndef FREEBSD_NATIVE
|
||||
add_prefix (&exec_prefixes,
|
||||
concat3 (tooldir_prefix, "bin", dir_separator_str),
|
||||
0, 0, NULL_PTR);
|
||||
add_prefix (&startfile_prefixes,
|
||||
concat3 (tooldir_prefix, "lib", dir_separator_str),
|
||||
0, 0, NULL_PTR);
|
||||
+#endif /* FREEBSD_NATIVE */
|
||||
|
||||
/* More prefixes are enabled in main, after we read the specs file
|
||||
and determine whether this is cross-compilation or not. */
|
||||
@@ -2768,6 +2836,19 @@
|
||||
to the copy in the vector of switches.
|
||||
Store all the infiles in their vector. */
|
||||
|
||||
+#if defined(FREEBSD_NATIVE) && defined(__i386__)
|
||||
+ if (objformat_aout == 1) {
|
||||
+ switches[n_switches].part1 = "maout";
|
||||
+ switches[n_switches].args = 0;
|
||||
+ switches[n_switches].live_cond = 0;
|
||||
+ switches[n_switches].valid = 0;
|
||||
+ n_switches++;
|
||||
+ putenv("OBJFORMAT=aout");
|
||||
+ } else {
|
||||
+ putenv("OBJFORMAT=elf");
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
/* Just skip the switches that were handled by the preceding loop. */
|
||||
@@ -2787,6 +2868,12 @@
|
||||
;
|
||||
else if (! strcmp (argv[i], "-print-multi-directory"))
|
||||
;
|
||||
+#if defined(FREEBSD_NATIVE) && defined(__i386__)
|
||||
+ else if (! strcmp (argv[i], "-aout"))
|
||||
+ ;
|
||||
+ else if (! strcmp (argv[i], "-elf"))
|
||||
+ ;
|
||||
+#endif
|
||||
else if (argv[i][0] == '+' && argv[i][1] == 'e')
|
||||
{
|
||||
/* Compensate for the +e options to the C++ front-end;
|
||||
@@ -3770,7 +3857,7 @@
|
||||
{
|
||||
int c1 = *p++; /* Select first or second version number. */
|
||||
char *v = compiler_version;
|
||||
- char *q, *copy;
|
||||
+ char *q;
|
||||
/* If desired, advance to second version number. */
|
||||
if (c1 == '2')
|
||||
{
|
||||
@@ -4266,8 +4353,10 @@
|
||||
|
||||
/* Read specs from a file if there is one. */
|
||||
|
||||
+#ifndef FREEBSD_NATIVE
|
||||
machine_suffix = concat4 (spec_machine, dir_separator_str,
|
||||
spec_version, dir_separator_str);
|
||||
+#endif
|
||||
just_machine_suffix = concat (spec_machine, dir_separator_str);
|
||||
|
||||
specs_file = find_a_file (&startfile_prefixes, "specs", R_OK);
|
||||
@@ -4326,6 +4415,7 @@
|
||||
0, 0, NULL_PTR);
|
||||
}
|
||||
|
||||
+#ifndef FREEBSD_NATIVE
|
||||
add_prefix (&startfile_prefixes, standard_startfile_prefix_1, 0, 0,
|
||||
NULL_PTR);
|
||||
add_prefix (&startfile_prefixes, standard_startfile_prefix_2, 0, 0,
|
||||
@@ -4333,6 +4423,8 @@
|
||||
#if 0 /* Can cause surprises, and one can use -B./ instead. */
|
||||
add_prefix (&startfile_prefixes, "./", 0, 1, NULL_PTR);
|
||||
#endif
|
||||
+#endif /* FREEBSD_NATIVE */
|
||||
+
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4423,7 +4515,7 @@
|
||||
}
|
||||
|
||||
if (n_infiles == 0)
|
||||
- fatal ("No input files");
|
||||
+ fatal ("No input files specified");
|
||||
|
||||
/* Make a place to record the compiler output file names
|
||||
that correspond to the input files. */
|
15
lang/gcc27/files/patch-glimits.h
Normal file
15
lang/gcc27/files/patch-glimits.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
--- glimits.h.orig Wed Sep 29 14:30:54 1993
|
||||
+++ glimits.h Mon Mar 20 13:29:11 2000
|
||||
@@ -63,7 +63,11 @@
|
||||
/* Minimum and maximum values a `signed long int' can hold.
|
||||
(Same as `int'). */
|
||||
#ifndef __LONG_MAX__
|
||||
-#define __LONG_MAX__ 2147483647L
|
||||
+# ifndef __alpha__
|
||||
+# define __LONG_MAX__ 2147483647L
|
||||
+# else
|
||||
+# define __LONG_MAX__ 9223372036854775807L
|
||||
+# endif /* __alpha__ */
|
||||
#endif
|
||||
#undef LONG_MIN
|
||||
#define LONG_MIN (-LONG_MAX-1)
|
73
lang/gcc27/files/patch-gxxint.texi
Normal file
73
lang/gcc27/files/patch-gxxint.texi
Normal file
|
@ -0,0 +1,73 @@
|
|||
--- cp/gxxint.texi.orig Wed Oct 11 19:29:39 1995
|
||||
+++ cp/gxxint.texi Mon Mar 20 13:29:12 2000
|
||||
@@ -1285,13 +1285,13 @@
|
||||
copy value onto heap
|
||||
jump throw (Ln, id, address of copy of value on heap)
|
||||
|
||||
- try {
|
||||
+ try @{
|
||||
+Lstart: the start of the main EH region
|
||||
|... ...
|
||||
+Lend: the end of the main EH region
|
||||
- } catch (T o) {
|
||||
+ @} catch (T o) @{
|
||||
...1
|
||||
- }
|
||||
+ @}
|
||||
Lresume:
|
||||
nop used to make sure there is something before
|
||||
the next region ends, if there is one
|
||||
@@ -1312,7 +1312,7 @@
|
||||
[
|
||||
[
|
||||
call throw_type_match
|
||||
- if (eq) {
|
||||
+ if (eq) @{
|
||||
] these lines disappear when there is no catch condition
|
||||
+Lsregion2:
|
||||
| ...1
|
||||
@@ -1320,7 +1320,7 @@
|
||||
|Lhandler: handler for the region Lsregion2-Leregion2
|
||||
| rethrow (Lresume, same id, same obj);
|
||||
+Leregion2
|
||||
- }
|
||||
+ @}
|
||||
] there are zero or more of these sections, depending upon how many
|
||||
catch clauses there are
|
||||
----------------------------- expand_end_all_catch --------------------------
|
||||
@@ -1336,7 +1336,7 @@
|
||||
|
||||
start_all_catch emits labels: Lresume,
|
||||
|
||||
-#end example
|
||||
+@end example
|
||||
|
||||
The __unwind_function takes a pointer to the throw handler, and is
|
||||
expected to pop the stack frame that was built to call it, as well as
|
||||
@@ -1346,7 +1346,7 @@
|
||||
into. The way I normally start is to compile:
|
||||
|
||||
void *g;
|
||||
- foo(void* a) { g = a; }
|
||||
+ foo(void* a) @{ g = a; @}
|
||||
|
||||
with -S, and change the thing that alters the PC (return, or ret
|
||||
usually) to not alter the PC, making sure to leave all other semantics
|
||||
@@ -1453,7 +1453,7 @@
|
||||
should also be removed, although not doing this is harmless in terms of
|
||||
semantics.
|
||||
|
||||
-#end itemize
|
||||
+@end itemize
|
||||
|
||||
The above is not meant to be exhaustive, but does include all things I
|
||||
have thought of so far. I am sure other limitations exist.
|
||||
@@ -1515,7 +1515,7 @@
|
||||
|
||||
The eh archive (~mrs/eh) might be good reading for understanding the Ada
|
||||
perspective, and some of kenners mindset, and a detailed explanation
|
||||
-(Message-Id: <9308301130.AA10543@vlsi1.ultra.nyu.edu>) of the concepts
|
||||
+(Message-Id: <9308301130.AA10543@@vlsi1.ultra.nyu.edu>) of the concepts
|
||||
involved.
|
||||
|
||||
Here is a guide to existing backend type code. It is all in
|
62
lang/gcc27/files/patch-i386.c
Normal file
62
lang/gcc27/files/patch-i386.c
Normal file
|
@ -0,0 +1,62 @@
|
|||
--- config/i386/i386.c.orig Sun Oct 22 04:13:21 1995
|
||||
+++ config/i386/i386.c Mon Mar 20 13:29:12 2000
|
||||
@@ -1460,7 +1460,8 @@
|
||||
int limit;
|
||||
rtx xops[4];
|
||||
int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
|
||||
- || current_function_uses_const_pool);
|
||||
+ || current_function_uses_const_pool
|
||||
+ || profile_flag || profile_block_flag);
|
||||
|
||||
xops[0] = stack_pointer_rtx;
|
||||
xops[1] = frame_pointer_rtx;
|
||||
@@ -1521,8 +1522,16 @@
|
||||
int nregs = 0;
|
||||
int reglimit = (frame_pointer_needed
|
||||
? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM);
|
||||
- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
|
||||
- || current_function_uses_const_pool);
|
||||
+
|
||||
+#ifdef FUNCTION_PROFILER_EPILOGUE
|
||||
+ if (profile_flag)
|
||||
+ return 0;
|
||||
+#endif
|
||||
+
|
||||
+ if (flag_pic && (current_function_uses_pic_offset_table
|
||||
+ || current_function_uses_const_pool
|
||||
+ || profile_flag || profile_block_flag))
|
||||
+ return 0;
|
||||
|
||||
#ifdef NON_SAVING_SETJMP
|
||||
if (NON_SAVING_SETJMP && current_function_calls_setjmp)
|
||||
@@ -1533,8 +1542,7 @@
|
||||
return 0;
|
||||
|
||||
for (regno = reglimit - 1; regno >= 0; regno--)
|
||||
- if ((regs_ever_live[regno] && ! call_used_regs[regno])
|
||||
- || (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
|
||||
+ if (regs_ever_live[regno] && ! call_used_regs[regno])
|
||||
nregs++;
|
||||
|
||||
return nregs == 0 || ! frame_pointer_needed;
|
||||
@@ -1557,6 +1565,11 @@
|
||||
int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
|
||||
|| current_function_uses_const_pool);
|
||||
|
||||
+#ifdef FUNCTION_PROFILER_EPILOGUE
|
||||
+ if (profile_flag)
|
||||
+ FUNCTION_PROFILER_EPILOGUE (file);
|
||||
+#endif
|
||||
+
|
||||
/* Compute the number of registers to pop */
|
||||
|
||||
limit = (frame_pointer_needed
|
||||
@@ -2438,7 +2451,7 @@
|
||||
REAL_VALUE_FROM_CONST_DOUBLE (r, x);
|
||||
REAL_VALUE_TO_TARGET_SINGLE (r, l);
|
||||
PRINT_IMMED_PREFIX (file);
|
||||
- fprintf (file, "0x%x", l);
|
||||
+ fprintf (file, "0x%lx", l);
|
||||
}
|
||||
/* These float cases don't actually occur as immediate operands. */
|
||||
else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) == DFmode)
|
53
lang/gcc27/files/patch-i386.h
Normal file
53
lang/gcc27/files/patch-i386.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
--- config/i386/i386.h.orig Fri Sep 22 15:42:57 1995
|
||||
+++ config/i386/i386.h Mon Mar 20 13:29:12 2000
|
||||
@@ -1286,6 +1286,22 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
+/* Define this macro if a SYMBOL_REF representing a non-global
|
||||
+ address must be marked specially. This is called for
|
||||
+ compiler-generated local symbols, such as "__EXCEPTION_TABLE__".
|
||||
+
|
||||
+ On i386, if using PIC, we use this to set the rtx's
|
||||
+ SYMBOL_REF_FLAG, so that we may access it directly as
|
||||
+ an offset from the GOT register. */
|
||||
+
|
||||
+#define MARK_LOCAL_ADDRESS(X) \
|
||||
+do \
|
||||
+ { \
|
||||
+ if (flag_pic && GET_CODE (X) == SYMBOL_REF) \
|
||||
+ SYMBOL_REF_FLAG (X) = 1; \
|
||||
+ } \
|
||||
+while (0)
|
||||
+
|
||||
/* Initialize data used by insn expanders. This is called from
|
||||
init_emit, once for each function, before code is generated.
|
||||
For 386, clear stack slot assignments remembered from previous
|
||||
@@ -1621,7 +1637,7 @@
|
||||
do { long l[2]; \
|
||||
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
|
||||
if (sizeof (int) == sizeof (long)) \
|
||||
- fprintf (FILE, "%s 0x%x,0x%x\n", ASM_LONG, l[0], l[1]); \
|
||||
+ fprintf (FILE, "%s 0x%x,0x%x\n", ASM_LONG, (int) l[0], (int) l[1]); \
|
||||
else \
|
||||
fprintf (FILE, "%s 0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \
|
||||
} while (0)
|
||||
@@ -1633,7 +1649,8 @@
|
||||
do { long l[3]; \
|
||||
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
|
||||
if (sizeof (int) == sizeof (long)) \
|
||||
- fprintf (FILE, "%s 0x%x,0x%x,0x%x\n", ASM_LONG, l[0], l[1], l[2]); \
|
||||
+ fprintf (FILE, "%s 0x%x,0x%x,0x%x\n", ASM_LONG, \
|
||||
+ (int) l[0], (int) l[1], (int) l[2]); \
|
||||
else \
|
||||
fprintf (FILE, "%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
|
||||
} while (0)
|
||||
@@ -1644,7 +1661,7 @@
|
||||
do { long l; \
|
||||
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
|
||||
if (sizeof (int) == sizeof (long)) \
|
||||
- fprintf ((FILE), "%s 0x%x\n", ASM_LONG, l); \
|
||||
+ fprintf ((FILE), "%s 0x%x\n", ASM_LONG, (int) l); \
|
||||
else \
|
||||
fprintf ((FILE), "%s 0x%lx\n", ASM_LONG, l); \
|
||||
} while (0)
|
20
lang/gcc27/files/patch-i386.md
Normal file
20
lang/gcc27/files/patch-i386.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- config/i386/i386.md.orig Mon Aug 21 10:27:58 1995
|
||||
+++ config/i386/i386.md Mon Mar 20 13:29:12 2000
|
||||
@@ -5312,10 +5312,17 @@
|
||||
coprocessor registers as containing a possible return value,
|
||||
simply pretend the untyped call returns a complex long double
|
||||
value. */
|
||||
+#if 1
|
||||
+ /* this may be part of (set (reg: ..) (call_insn ...)), and we can't
|
||||
+ directly set a fp register from the call. so we revert to the
|
||||
+ old behavior - jlemon@netcom.com (Jonathan Lemon) */
|
||||
+ emit_call_insn (gen_call (operands[0], const0_rtx, NULL, const0_rtx));
|
||||
+#else
|
||||
emit_call_insn (TARGET_80387
|
||||
? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
|
||||
operands[0], const0_rtx)
|
||||
: gen_call (operands[0], const0_rtx));
|
||||
+#endif
|
||||
|
||||
for (i = 0; i < XVECLEN (operands[2], 0); i++)
|
||||
{
|
40
lang/gcc27/files/patch-invoke.texi
Normal file
40
lang/gcc27/files/patch-invoke.texi
Normal file
|
@ -0,0 +1,40 @@
|
|||
--- invoke.texi.orig Tue Oct 3 08:40:43 1995
|
||||
+++ invoke.texi Mon Mar 20 13:29:11 2000
|
||||
@@ -281,9 +281,10 @@
|
||||
-mstats -EL -EB -G @var{num} -nocpp
|
||||
|
||||
@emph{i386 Options}
|
||||
--m486 -m386 -mieee-fp -mno-fancy-math-387
|
||||
--mno-fp-ret-in-387 -msoft-float -msvr3-shlib
|
||||
--mno-wide-multiply -mrtd -malign-double
|
||||
+-m386 -m486 -mno-fancy-math-387
|
||||
+-mno-fp-ret-in-387 -mno-ieee-fp -mno-wide-multiply
|
||||
+-mprofiler-epilogue -mrtd -msoft-float
|
||||
+-msvr3-shlib -malign-double
|
||||
-mreg-alloc=@var{list} -mregparm=@var{num}
|
||||
-malign-jumps=@var{num} -malign-loops=@var{num}
|
||||
-malign-functions=@var{num}
|
||||
@@ -3669,8 +3670,8 @@
|
||||
Control whether or not code is optimized for a 486 instead of an
|
||||
386. Code generated for an 486 will run on a 386 and vice versa.
|
||||
|
||||
-@item -mieee-fp
|
||||
-@itemx -mno-ieee-fp
|
||||
+@item -mno-ieee-fp
|
||||
+@itemx -mieee-fp
|
||||
Control whether or not the compiler uses IEEE floating point
|
||||
comparisons. These handle correctly the case where the result of a
|
||||
comparison is unordered.
|
||||
@@ -3728,6 +3729,12 @@
|
||||
Control whether GNU CC uses the @code{mul} and @code{imul} that produce
|
||||
64 bit results in @code{eax:edx} from 32 bit operands to do @code{long
|
||||
long} multiplies and 32-bit division by constants.
|
||||
+
|
||||
+@item -mprofiler-epilogue
|
||||
+@itemx -mno-profiler-epilogue
|
||||
+Generate extra code to write profile information for function exits.
|
||||
+This option has no effect except in combination with @samp{-g} or
|
||||
+@samp{-pg}.
|
||||
|
||||
@item -mrtd
|
||||
Use a different function-calling convention, in which functions that
|
31
lang/gcc27/files/patch-libgcc2.c
Normal file
31
lang/gcc27/files/patch-libgcc2.c
Normal file
|
@ -0,0 +1,31 @@
|
|||
--- libgcc2.c.orig Sun Nov 26 11:39:21 1995
|
||||
+++ libgcc2.c Mon Mar 20 13:29:11 2000
|
||||
@@ -2106,9 +2106,7 @@
|
||||
(*p++) ();
|
||||
#endif
|
||||
}
|
||||
-#endif
|
||||
|
||||
-#ifndef INIT_SECTION_ASM_OP
|
||||
/* Run all the global constructors on entry to the program. */
|
||||
|
||||
#ifndef ON_EXIT
|
||||
@@ -2128,9 +2126,7 @@
|
||||
DO_GLOBAL_CTORS_BODY;
|
||||
ON_EXIT (__do_global_dtors, 0);
|
||||
}
|
||||
-#endif /* no INIT_SECTION_ASM_OP */
|
||||
|
||||
-#if !defined (INIT_SECTION_ASM_OP) || defined (INVOKE__main)
|
||||
/* Subroutine called automatically by `main'.
|
||||
Compiling a global function named `main'
|
||||
produces an automatic call to this function at the beginning.
|
||||
@@ -2165,7 +2161,7 @@
|
||||
|
||||
/* We declare the lists here with two elements each,
|
||||
so that they are valid empty lists if no other definition is loaded. */
|
||||
-#if !defined(INIT_SECTION_ASM_OP) && !defined(CTOR_LISTS_DEFINED_EXTERNALLY)
|
||||
+#if (!defined(INIT_SECTION_ASM_OP) || !defined(OBJECT_FORMAT_ELF)) && !defined(CTOR_LISTS_DEFINED_EXTERNALLY)
|
||||
#if defined(__NeXT__) || defined(_AIX)
|
||||
/* After 2.3, try this definition on all systems. */
|
||||
func_ptr __CTOR_LIST__[2] = {0, 0};
|
29
lang/gcc27/files/patch-print-tree.c
Normal file
29
lang/gcc27/files/patch-print-tree.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
--- print-tree.c.orig Thu Jun 15 04:56:40 1995
|
||||
+++ print-tree.c Mon Mar 20 13:29:11 2000
|
||||
@@ -82,7 +82,7 @@
|
||||
if (indent > 0)
|
||||
fprintf (file, " ");
|
||||
fprintf (file, "%s <%s ", prefix, tree_code_name[(int) TREE_CODE (node)]);
|
||||
- fprintf (file, HOST_PTR_PRINTF, (HOST_WIDE_INT) node);
|
||||
+ fprintf (file, HOST_PTR_PRINTF, (void *) node);
|
||||
|
||||
if (class == 'd')
|
||||
{
|
||||
@@ -259,7 +259,7 @@
|
||||
|
||||
/* Print the slot this node is in, and its code, and address. */
|
||||
fprintf (file, "%s <%s ", prefix, tree_code_name[(int) TREE_CODE (node)]);
|
||||
- fprintf (file, HOST_PTR_PRINTF, (HOST_WIDE_INT) node);
|
||||
+ fprintf (file, HOST_PTR_PRINTF, (void *) node);
|
||||
|
||||
/* Print the name, if any. */
|
||||
if (class == 'd')
|
||||
@@ -456,7 +456,7 @@
|
||||
{
|
||||
fprintf (file, "saved-insns ");
|
||||
fprintf (file, HOST_PTR_PRINTF,
|
||||
- (HOST_WIDE_INT) DECL_SAVED_INSNS (node));
|
||||
+ (void *) DECL_SAVED_INSNS (node));
|
||||
}
|
||||
}
|
||||
|
23
lang/gcc27/files/patch-ptree.c
Normal file
23
lang/gcc27/files/patch-ptree.c
Normal file
|
@ -0,0 +1,23 @@
|
|||
--- cp/ptree.c.orig Wed Jun 28 13:38:11 1995
|
||||
+++ cp/ptree.c Mon Mar 20 13:29:12 2000
|
||||
@@ -46,17 +46,17 @@
|
||||
if (DECL_MAIN_VARIANT (node))
|
||||
{
|
||||
fprintf (file, " decl-main-variant ");
|
||||
- fprintf (file, HOST_PTR_PRINTF, DECL_MAIN_VARIANT (node));
|
||||
+ fprintf (file, HOST_PTR_PRINTF, (void *) DECL_MAIN_VARIANT (node));
|
||||
}
|
||||
if (DECL_PENDING_INLINE_INFO (node))
|
||||
{
|
||||
fprintf (file, " pending-inline-info ");
|
||||
- fprintf (file, HOST_PTR_PRINTF, DECL_PENDING_INLINE_INFO (node));
|
||||
+ fprintf (file, HOST_PTR_PRINTF, (void *) DECL_PENDING_INLINE_INFO (node));
|
||||
}
|
||||
if (DECL_TEMPLATE_INFO (node))
|
||||
{
|
||||
fprintf (file, " template-info ");
|
||||
- fprintf (file, HOST_PTR_PRINTF, DECL_TEMPLATE_INFO (node));
|
||||
+ fprintf (file, HOST_PTR_PRINTF, (void *) DECL_TEMPLATE_INFO (node));
|
||||
}
|
||||
}
|
||||
|
11
lang/gcc27/files/patch-reload.c
Normal file
11
lang/gcc27/files/patch-reload.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- reload.c.orig Sat Nov 11 05:23:54 1995
|
||||
+++ reload.c Mon Mar 20 13:29:11 2000
|
||||
@@ -5899,7 +5899,7 @@
|
||||
fprintf (stderr, ", inc by %d\n", reload_inc[r]);
|
||||
|
||||
if (reload_nocombine[r])
|
||||
- fprintf (stderr, ", can combine", reload_nocombine[r]);
|
||||
+ fprintf (stderr, ", can combine");
|
||||
|
||||
if (reload_secondary_p[r])
|
||||
fprintf (stderr, ", secondary_reload_p");
|
11
lang/gcc27/files/patch-reno.texi
Normal file
11
lang/gcc27/files/patch-reno.texi
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- cp/reno.texi.orig Thu Apr 14 19:00:39 1994
|
||||
+++ cp/reno.texi Mon Mar 20 13:29:12 2000
|
||||
@@ -4,7 +4,7 @@
|
||||
@ifinfo
|
||||
@format
|
||||
START-INFO-DIR-ENTRY
|
||||
-* Reno 1: (reno-1). The GNU C++ Renovation Project, Phase 1.
|
||||
+* Reno 1: (reno). The GNU C++ Renovation Project, Phase 1.
|
||||
END-INFO-DIR-ENTRY
|
||||
@end format
|
||||
@end ifinfo
|
55
lang/gcc27/files/patch-sched.c
Normal file
55
lang/gcc27/files/patch-sched.c
Normal file
|
@ -0,0 +1,55 @@
|
|||
--- sched.c.orig Thu Jun 15 05:06:39 1995
|
||||
+++ sched.c Mon Mar 20 13:29:12 2000
|
||||
@@ -794,11 +794,14 @@
|
||||
changed. A volatile and non-volatile reference can be interchanged
|
||||
though.
|
||||
|
||||
- A MEM_IN_STRUCT reference at a non-QImode varying address can never
|
||||
+ A MEM_IN_STRUCT reference at a non-QImode non-AND varying address can never
|
||||
conflict with a non-MEM_IN_STRUCT reference at a fixed address. We must
|
||||
allow QImode aliasing because the ANSI C standard allows character
|
||||
pointers to alias anything. We are assuming that characters are
|
||||
- always QImode here. */
|
||||
+ always QImode here. We also must allow AND addresses, because they may
|
||||
+ generate accesses outside the object being referenced. This is used to
|
||||
+ generate aligned addresses from unaligned addresses, for instance, the
|
||||
+ alpha storeqi_unaligned pattern. */
|
||||
|
||||
/* Read dependence: X is read after read in MEM takes place. There can
|
||||
only be a dependence here if both reads are volatile. */
|
||||
@@ -833,9 +836,11 @@
|
||||
SIZE_FOR_MODE (x), XEXP (x, 0), 0)
|
||||
&& ! (MEM_IN_STRUCT_P (mem) && rtx_addr_varies_p (mem)
|
||||
&& GET_MODE (mem) != QImode
|
||||
+ && GET_CODE (XEXP (mem, 0)) != AND
|
||||
&& ! MEM_IN_STRUCT_P (x) && ! rtx_addr_varies_p (x))
|
||||
&& ! (MEM_IN_STRUCT_P (x) && rtx_addr_varies_p (x)
|
||||
&& GET_MODE (x) != QImode
|
||||
+ && GET_CODE (XEXP (mem, 0)) != AND
|
||||
&& ! MEM_IN_STRUCT_P (mem) && ! rtx_addr_varies_p (mem))));
|
||||
}
|
||||
|
||||
@@ -857,9 +862,11 @@
|
||||
SIZE_FOR_MODE (x), XEXP (x, 0), 0)
|
||||
&& ! (MEM_IN_STRUCT_P (mem) && rtx_addr_varies_p (mem)
|
||||
&& GET_MODE (mem) != QImode
|
||||
+ && GET_CODE (XEXP (mem, 0)) != AND
|
||||
&& ! MEM_IN_STRUCT_P (x) && ! rtx_addr_varies_p (x))
|
||||
&& ! (MEM_IN_STRUCT_P (x) && rtx_addr_varies_p (x)
|
||||
&& GET_MODE (x) != QImode
|
||||
+ && GET_CODE (XEXP (mem, 0)) != AND
|
||||
&& ! MEM_IN_STRUCT_P (mem) && ! rtx_addr_varies_p (mem))));
|
||||
}
|
||||
|
||||
@@ -875,9 +882,11 @@
|
||||
SIZE_FOR_MODE (x), XEXP (x, 0), 0)
|
||||
&& ! (MEM_IN_STRUCT_P (mem) && rtx_addr_varies_p (mem)
|
||||
&& GET_MODE (mem) != QImode
|
||||
+ && GET_CODE (XEXP (mem, 0)) != AND
|
||||
&& ! MEM_IN_STRUCT_P (x) && ! rtx_addr_varies_p (x))
|
||||
&& ! (MEM_IN_STRUCT_P (x) && rtx_addr_varies_p (x)
|
||||
&& GET_MODE (x) != QImode
|
||||
+ && GET_CODE (XEXP (mem, 0)) != AND
|
||||
&& ! MEM_IN_STRUCT_P (mem) && ! rtx_addr_varies_p (mem))));
|
||||
}
|
||||
|
21
lang/gcc27/files/patch-sendmsg.c
Normal file
21
lang/gcc27/files/patch-sendmsg.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
--- objc/sendmsg.c.orig Thu Jun 15 05:45:10 1995
|
||||
+++ objc/sendmsg.c Mon Mar 20 13:29:13 2000
|
||||
@@ -542,12 +542,15 @@
|
||||
#endif
|
||||
);
|
||||
|
||||
- printf("arrays: %d = %ld bytes\n", narrays, (int)narrays*sizeof(struct sarray));
|
||||
+ printf("arrays: %d = %lu bytes\n",
|
||||
+ narrays, (unsigned long)narrays*sizeof(struct sarray));
|
||||
total += narrays*sizeof(struct sarray);
|
||||
- printf("buckets: %d = %ld bytes\n", nbuckets, (int)nbuckets*sizeof(struct sbucket));
|
||||
+ printf("buckets: %d = %lu bytes\n",
|
||||
+ nbuckets, (unsigned long)nbuckets*sizeof(struct sbucket));
|
||||
total += nbuckets*sizeof(struct sbucket);
|
||||
|
||||
- printf("idxtables: %d = %ld bytes\n", idxsize, (int)idxsize*sizeof(void*));
|
||||
+ printf("idxtables: %d = %lu bytes\n",
|
||||
+ idxsize, (unsigned long)idxsize*sizeof(void*));
|
||||
total += idxsize*sizeof(void*);
|
||||
printf("-----------------------------------\n");
|
||||
printf("total: %d bytes\n", total);
|
40
lang/gcc27/files/patch-stdarg.h
Normal file
40
lang/gcc27/files/patch-stdarg.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
--- ginclude/stdarg.h.orig Tue Sep 12 09:50:36 1995
|
||||
+++ ginclude/stdarg.h Mon Mar 20 13:29:13 2000
|
||||
@@ -43,6 +43,15 @@
|
||||
#else
|
||||
|
||||
/* Define __gnuc_va_list. */
|
||||
+#if defined (__FreeBSD__)
|
||||
+/* This is the correct way to handle all BSD NET2 and BSD 4.4 systems. */
|
||||
+#include <machine/ansi.h>
|
||||
+#ifdef _BSD_VA_LIST_
|
||||
+typedef _BSD_VA_LIST_ __gnuc_va_list;
|
||||
+#else
|
||||
+typedef _VA_LIST_ __gnuc_va_list;
|
||||
+#endif
|
||||
+#else
|
||||
|
||||
#ifndef __GNUC_VA_LIST
|
||||
#define __GNUC_VA_LIST
|
||||
@@ -52,6 +61,7 @@
|
||||
typedef void *__gnuc_va_list;
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
/* Define the standard macros for the user,
|
||||
if this invocation was from the user program. */
|
||||
@@ -116,8 +126,13 @@
|
||||
#undef _VA_LIST
|
||||
#endif
|
||||
|
||||
+#if 0
|
||||
+/* BSD 4.4 actually spells the name _BSD_VA_LIST_ and requires it to be
|
||||
+ * defined and usable in place of va_list when the latter name is not
|
||||
+ * allowed (e.g., in stdio.h - see above). */
|
||||
#ifdef _BSD_VA_LIST
|
||||
#undef _BSD_VA_LIST
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
#ifdef __svr4__
|
20
lang/gcc27/files/patch-stddef.h
Normal file
20
lang/gcc27/files/patch-stddef.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- ginclude/stddef.h.orig Sat Aug 19 13:39:22 1995
|
||||
+++ ginclude/stddef.h Mon Mar 20 13:29:13 2000
|
||||
@@ -257,7 +257,7 @@
|
||||
|
||||
/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
|
||||
are already defined. */
|
||||
-#ifdef _ANSI_H_
|
||||
+#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_)
|
||||
/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_
|
||||
are probably typos and should be removed before 2.8 is released. */
|
||||
#ifdef _GCC_PTRDIFF_T_
|
||||
@@ -285,7 +285,7 @@
|
||||
#undef _WCHAR_T_
|
||||
#undef _BSD_WCHAR_T_
|
||||
#endif
|
||||
-#endif /* _ANSI_H_ */
|
||||
+#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) */
|
||||
|
||||
#endif /* __sys_stdtypes_h */
|
||||
|
21
lang/gcc27/files/patch-toplev.c
Normal file
21
lang/gcc27/files/patch-toplev.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
--- toplev.c.orig Fri Oct 20 14:56:35 1995
|
||||
+++ toplev.c Mon Mar 20 13:29:12 2000
|
||||
@@ -521,6 +521,10 @@
|
||||
/* Tag all structures with __attribute__(packed) */
|
||||
int flag_pack_struct = 0;
|
||||
|
||||
+/* Nonzero means that -Wformat accepts certain system-dependent formats. */
|
||||
+
|
||||
+int flag_format_extensions = 0;
|
||||
+
|
||||
/* Table of language-independent -f options.
|
||||
STRING is the option name. VARIABLE is the address of the variable.
|
||||
ON_VALUE is the value to store in VARIABLE
|
||||
@@ -567,6 +571,7 @@
|
||||
{"verbose-asm", &flag_verbose_asm, 1},
|
||||
{"gnu-linker", &flag_gnu_linker, 1},
|
||||
{"pack-struct", &flag_pack_struct, 1},
|
||||
+ {"format-extensions", &flag_format_extensions, 1},
|
||||
{"bytecode", &output_bytecode, 1}
|
||||
};
|
||||
|
37
lang/gcc27/files/patch-varargs.h
Normal file
37
lang/gcc27/files/patch-varargs.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
--- ginclude/varargs.h.orig Sun Aug 13 15:18:55 1995
|
||||
+++ ginclude/varargs.h Mon Mar 20 13:29:13 2000
|
||||
@@ -78,12 +78,22 @@
|
||||
|
||||
#ifndef __GNUC_VA_LIST
|
||||
#define __GNUC_VA_LIST
|
||||
+#if defined (__FreeBSD__)
|
||||
+/* This is the correct way to handle all BSD NET2 and BSD 4.4 systems. */
|
||||
+#include <machine/ansi.h>
|
||||
+#ifdef _BSD_VA_LIST_
|
||||
+typedef _BSD_VA_LIST_ __gnuc_va_list;
|
||||
+#else
|
||||
+typedef _VA_LIST_ __gnuc_va_list;
|
||||
+#endif
|
||||
+#else
|
||||
#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX)
|
||||
typedef char *__gnuc_va_list;
|
||||
#else
|
||||
typedef void *__gnuc_va_list;
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#define va_start(AP) AP=(char *) &__builtin_va_alist
|
||||
|
||||
@@ -185,6 +195,11 @@
|
||||
|
||||
/* The next BSD release (if there is one) wants this symbol to be
|
||||
undefined instead of _VA_LIST_. */
|
||||
+#if 0
|
||||
+/* BSD 4.4 actually spells the name _BSD_VA_LIST_ and requires it to be
|
||||
+ * defined and usable in place of va_list when the latter name is not
|
||||
+ * allowed (e.g., in stdio.h - see ginclude/stdarg.h). */
|
||||
#ifdef _BSD_VA_LIST
|
||||
#undef _BSD_VA_LIST
|
||||
+#endif
|
||||
#endif
|
8
lang/gcc27/files/patch-x-freebsd
Normal file
8
lang/gcc27/files/patch-x-freebsd
Normal file
|
@ -0,0 +1,8 @@
|
|||
--- config/i386/x-freebsd.orig Mon Oct 31 04:52:41 1994
|
||||
+++ config/i386/x-freebsd Mon Mar 20 13:19:55 2000
|
||||
@@ -1,3 +1,4 @@
|
||||
# Don't run fixproto
|
||||
STMP_FIXPROTO =
|
||||
-CLIB=-lgnumalloc
|
||||
+# Use only native include files
|
||||
+USER_H =
|
1
lang/gcc27/pkg-comment
Normal file
1
lang/gcc27/pkg-comment
Normal file
|
@ -0,0 +1 @@
|
|||
Base C/C++ compiler from FreeBSD 2.2.x & 3.x (for your old code)
|
8
lang/gcc27/pkg-descr
Normal file
8
lang/gcc27/pkg-descr
Normal file
|
@ -0,0 +1,8 @@
|
|||
GCC 2.7.2.3 was the base compiler in FreeBSD 2.2.x thru 3.x. The new
|
||||
EGCS/GCC Project compiler is used in FreeBSD 4.0 and later. Because of
|
||||
the large number of changes to the new C++ compiler (mostly for ISO-C++
|
||||
compliance), this ancient version of the GNU's C/C++ compiler is offered
|
||||
to allow you to build legacy systems on the latest and greatest FreeBSD
|
||||
offering.
|
||||
|
||||
-- David O'Brien <obrien@NUXI.com>
|
390
lang/gcc27/pkg-plist
Normal file
390
lang/gcc27/pkg-plist
Normal file
|
@ -0,0 +1,390 @@
|
|||
@comment $FreeBSD$
|
||||
bin/g++27
|
||||
bin/gcc27
|
||||
bin/%%GNUHOST%%-gcc
|
||||
@comment @unexec install-info --delete %D/info/cpp.info %D/info/dir
|
||||
@comment @unexec install-info --delete %D/info/gcc.info %D/info/dir
|
||||
info/cpp.info
|
||||
info/cpp.info-1
|
||||
info/cpp.info-2
|
||||
info/cpp.info-3
|
||||
info/gcc.info
|
||||
info/gcc.info-1
|
||||
info/gcc.info-10
|
||||
info/gcc.info-11
|
||||
info/gcc.info-12
|
||||
info/gcc.info-13
|
||||
info/gcc.info-14
|
||||
info/gcc.info-15
|
||||
info/gcc.info-16
|
||||
info/gcc.info-17
|
||||
info/gcc.info-18
|
||||
info/gcc.info-19
|
||||
info/gcc.info-2
|
||||
info/gcc.info-20
|
||||
info/gcc.info-21
|
||||
info/gcc.info-22
|
||||
info/gcc.info-23
|
||||
info/gcc.info-24
|
||||
info/gcc.info-25
|
||||
info/gcc.info-3
|
||||
info/gcc.info-4
|
||||
info/gcc.info-5
|
||||
info/gcc.info-6
|
||||
info/gcc.info-7
|
||||
info/gcc.info-8
|
||||
info/gcc.info-9
|
||||
@exec install-info
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/SYSCALLS.c.X
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/cc1
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/cc1obj
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/cc1plus
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/cpp
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/ACG.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/AllocRing.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Binomial.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/BitSet.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/BitString.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Complex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/CursesW.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/DLList.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/DiscUnif.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Erlang.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Fix.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Fix16.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Fix24.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Geom.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/GetOpt.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/HypGeom.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Incremental.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Integer.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/LogNorm.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/MLCG.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/NegExp.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Normal.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Obstack.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Pix.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/PlotFile.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Poisson.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/RNG.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Random.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Rational.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Regex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/RndInt.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/SFile.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/SLList.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/SmplHist.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/SmplStat.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/String.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Uniform.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/Weibull.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/_G_config.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/algo.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/algobase.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/algorithm
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/bitdo1.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/bitdo2.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/bitprims.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/bool.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/builtin.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/builtinbuf.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/bvector.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cassert
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cctype
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cerrno
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cfloat
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/ciso646
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/climits
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/clocale
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cmath
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/compare.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/complex
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/complex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/csetjmp
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/csignal
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cstdarg
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cstddef
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cstdio
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cstdlib
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cstring
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/ctime
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cwchar
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/cwctype
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/defalloc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/deque
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/deque.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/editbuf.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/exception
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/faralloc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/fdeque.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/flist.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/floatio.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/fmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/fmultmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/fmultset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/fset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/fstream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/function.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/functional
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/AVLMap.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/AVLMap.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/AVLSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/AVLSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/AVec.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/AVec.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/BSTSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/BSTSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Bag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Bag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHMap.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHMap.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHNode.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHNode.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/CHSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/DLDeque.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/DLDeque.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/DLList.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/DLList.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Deque.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Deque.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/FPQueue.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/FPQueue.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/FPStack.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/FPStack.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/FPlex.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/FPlex.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/List.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/List.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/MPlex.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/MPlex.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Map.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Map.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OSLBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OSLBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OSLSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OSLSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OXPBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OXPBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OXPSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/OXPSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/PHPQ.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/PHPQ.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/PQ.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/PQ.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/PSList.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/PVec.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Plex.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Plex.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Queue.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Queue.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/RAVLMap.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/RAVLMap.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/RPlex.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/RPlex.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLList.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLList.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLQueue.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLQueue.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLStack.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SLStack.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Set.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Set.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SkipBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SkipBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SkipMap.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SkipMap.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SkipSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SkipSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayMap.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayMap.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayNode.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayNode.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayPQ.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplayPQ.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplaySet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/SplaySet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Stack.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Stack.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VHBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VHBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VHMap.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VHMap.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VHSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VHSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VOHSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VOHSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VQueue.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VQueue.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VStack.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/VStack.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Vec.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/Vec.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPBag.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPBag.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPDeque.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPDeque.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPPQ.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPPQ.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPQueue.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPQueue.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPSet.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPSet.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPStack.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPStack.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPlex.ccP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/XPlex.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/defs.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/intSList.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen/intVec.hP
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/generic.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/getpagesize.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hdeque.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/heap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hlist.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hmultmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hmultset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hugalloc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/hvector.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/indstream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iolibio.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iomanip.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iostdio.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iostream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iostreamP.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/istream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iterator
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/iterator.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/lbvector.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/ldeque.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/libc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/libio.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/libioP.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/list
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/list.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/llist.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/lmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/lmultmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/lmultset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/lngalloc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/lset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/map
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/map.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/memory
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/minmax.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/multimap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/multiset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/neralloc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/new
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/new.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/nmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/nmultmap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/nmultset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/nset.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/numeric
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/osfcn.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/ostream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/pair.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/parsestream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/pfstream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/procbuf.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/projectn.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/queue
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/rx.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/set
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/set.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stack
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stack.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/bastring.cc
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/bastring.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cassert.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cctype.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cerrno.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cfloat.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cinst.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/ciso646.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/climits.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/clocale.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cmath.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/complex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/complext.cc
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/complext.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/csetjmp.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/csignal.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cstdarg.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cstddef.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cstdio.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cstdlib.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cstring.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/ctime.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cwchar.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/cwctype.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/dcomplex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/exception.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/fcomplex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/ldcomplex.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/new.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/sinst.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/stddef.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/stdexcept.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/straits.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/string.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std/typeinfo.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stddef
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stdexcept
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stdiostream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stl.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/strclass.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/stream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/streambuf.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/strfile.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/string
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/strstream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/swap.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/sysent.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/tempbuf.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/tree.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/typeinfo
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/typemacros.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/utility
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/vector
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/vector.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/README
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/float.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/limits.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/NXConstStr.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/Object.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/Protocol.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/encoding.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/hash.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/list.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/objc-api.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/objc.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/sarray.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/typedstream.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/syslimits.h
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/libg++.a
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/libgcc.a
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/libiberty.a
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/libobjc.a
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/libstdc++.a
|
||||
lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/specs
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/gen
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/std
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/g++-include/
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/objc/
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%/include/
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%/%%GCC_VER%%
|
||||
@dirrm lib/gcc-lib/%%GNUHOST%%
|
||||
@dirrm lib/gcc-lib
|
Loading…
Reference in a new issue