Tentative configurations for some more architectures,

Fix buglet: PLIST generated from template, shouldn't be in repo.

Add large list of mirrors to Makefile, change config slightly.
Man/info pages installed under nicer names.
This commit is contained in:
espie 1998-10-11 14:08:23 +00:00
parent 6cd432ce2b
commit 59cca78a8e
32 changed files with 2408 additions and 430 deletions

View File

@ -3,11 +3,12 @@
# Date created: 25 sep 98
# Whom: Marc Espie
#
# $OpenBSD: Makefile,v 1.2 1998/10/02 18:51:24 espie Exp $
# $OpenBSD: Makefile,v 1.3 1998/10/11 14:08:23 espie Exp $
#
# This is a configuration file for egcs, stable release
# right now, we only configure i386, C and C++.
# g77 and objc didn't make it for 2.4.
DISTNAME= egcs-1.1b
DIRECTORY=egcs/releases/egcs-1.1b/
@ -16,10 +17,50 @@ DISTFILES= egcs-core-1.1b${EXTRACT_SUFX}
DISTFILES+= egcs-g++-1.1b${EXTRACT_SUFX}
# see files/tests for testing procedure
#DISTFILES+=egcs-tests-1.1b${EXTRACT_SUFX}
# to be added...
#DISTFILES+=egcs-g77-1.1b${EXTRACT_SUFX}
#DISTFILES+=egcs-objc-1.1b${EXTRACT_SUFX}
CATEGORIES= lang
MASTER_SITES= ftp://egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lip6.fr/pub/${DIRECTORY}
MASTER_SITES+= ftp://go.cygnus.com/pub/ftp.cygnus.com/${DIRECTORY}
MASTER_SITES+= ftp://ftp.goof.com/pub/pcg/${DIRECTORY}
MASTER_SITES+= ftp://cambridge.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.ninemoons.com/pub/mirrors/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.doc.ic.ac.uk/Mirrors/egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://gd.tuwien.ac.at/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.ilog.fr/pub/Mirrors/${DIRECTORY}
MASTER_SITES+= ftp://ftp.irisa.fr/pub/mirrors/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.mff.cuni.cz/pub/GNU/${DIRECTORY}
MASTER_SITES+= ftp://ftp.gts.cz/pub/MIRRORS/ftp.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.auc.dk/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.fu-berlin.de/unix/languages/${DIRECTORY}
MASTER_SITES+= ftp://ftp.gwdg.de/pub/cygnus/${DIRECTORY}
MASTER_SITES+= ftp://ftp.mpi-sb.mpg.de/pub/gnu/mirror/egcs.cygnus.com/${DIRECTORY}
MASTER_SITES+= ftp://ftp.uni-trier.de/pub/languages/c/implementation/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.icm.edu.pl/pub/programming/${DIRECTORY}
MASTER_SITES+= ftp://ftp.task.gda.pl/mirror/egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.sunet.se/pub/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.unicamp.br/pub/gnu/=EXTRA=/cygnus/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lca.uevora.pt/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lbi.ro/mirrors/ftp.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://moshpit.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.ntua.gr/pub/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.nluug.nl/pub/languages/${DIRECTORY}
MASTER_SITES+= ftp://ftp.dti.ad.jp/pub/lang/${DIRECTORY}
MASTER_SITES+= ftp://ftp.win.or.jp/pub/lang/${DIRECTORY}
MASTER_SITES+= ftp://ftp.telewaynet.ad.jp/pub/lang/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lab.kdd.co.jp/lang/${DIRECTORY}
MASTER_SITES+= ftp://cair-archive.kaist.ac.kr/pub/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.funet.fi/mirrors/ftp.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.crc.ca/pub/packages/${DIRECTORY}
MASTER_SITES+= ftp://ftp.nc.orc.ru/pub/${DIRECTORY}
MASTER_SITES+= ftp://linux.ihep.su/pub/cygnus/${DIRECTORY}
MASTER_SITES+= ftp://ftp.goof.com/pub/pcg/${DIRECTORY}
MASTER_SITES+= ftp://ftp.u-aizu.ac.jp/pub/lang/C/pcg/${DIRECTORY}
MASTER_SITES+= ftp://linux.cis.nctu.edu.tw/pub/packages/pcg/${DIRECTORY}
MASTER_SITES+= ftp://ftp.maisel.int-evry.fr/pub/linux/pentium/${DIRECTORY}
MAINTAINER= Marc.Espie@openbsd.org
@ -39,7 +80,7 @@ CONFIGURE_SCRIPT=../source/configure
CONFIGURE_ENV=CFLAGS=-O2
CONFIGURE_ARGS= --prefix=${PREFIX} \
--verbose \
--verbose --with-gnu-ld ---with-gnu-as \
--program-transform-name=s,^,e,
.if (${MACHINE_ARCH} != "alpha")
CONFIGURE_ARGS+=--enable-shared

View File

@ -0,0 +1,261 @@
/* Definitions for MIPS systems running BSD as target machine for GNU compiler.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
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. */
/* We settle for big endian for now */
#define TARGET_ENDIAN_DEFAULT MASK_BIG_ENDIAN
#ifndef CROSS_COMPILE
/* Look for the G++ include files in the system-defined place. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
#endif
/* Provide a LINK_SPEC appropriate for OpenBSD. Here we provide support
for the special GCC options -static, -assert, and -nostdlib. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
%{bestGnum} %{shared} %{non_shared} \
%{call_shared} %{no_archive} %{exact_version} \
%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
%{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Define mips-specific OpenBSD predefines... */
#ifndef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ANSI_COMPAT \
-DMIPSEB -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__OpenBSD__ -Dmips \
-D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ \
-Dunix -D_R3000 \
-Asystem(unix) -Asystem(OpenBSD) -Amachine(mips)"
#endif
#ifndef CC1_SPEC
#define CC1_SPEC "\
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}\
%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} \
%{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} \
%{m4650:-mcpu=r4650} \
%{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} \
%{pic-none: -mno-half-pic} \
%{pic-lib: -mhalf-pic} \
%{pic-extern: -mhalf-pic} \
%{pic-calls: -mhalf-pic} \
%{save-temps: } \
%{!mno-abicalls: -mabicalls}"
#endif
#define SUBTARGET_ASM_SPEC "%{fPIC:-KPIC}"
#ifndef CPP_SPEC
#define CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mgp32:-U__mips64} %{mgp64:-D__mips64}"
#endif
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
#define STARTFILE_SPEC \
"%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "OpenBSD/mips"
#endif
#define TARGET_DEFAULT MASK_GAS
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* -G is incompatible with -KPIC which is the default, so only allow objects
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
#include "mips/mips.h"
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#undef TYPE_ASM_OP
#undef SIZE_ASM_OP
#undef WEAK_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "@%s"
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
#ifndef ASM_DECLARE_RESULT
#define ASM_DECLARE_RESULT(FILE, RESULT)
#endif
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do { \
extern FILE *asm_out_text_file; \
\
if (TARGET_GP_OPT) \
{ \
int align; \
STREAM = asm_out_text_file; \
/* Output ALIGN again to the new stream. XXX */ \
align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); \
if (align > 0) \
{ \
if (output_bytecode) \
BC_OUTPUT_ALIGN (STREAM, align); \
else \
ASM_OUTPUT_ALIGN (STREAM, align); \
} \
} \
fprintf (STREAM, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (STREAM, NAME); \
putc (',', STREAM); \
fprintf (STREAM, TYPE_OPERAND_FMT, "function"); \
putc ('\n', STREAM); \
ASM_DECLARE_RESULT (STREAM, DECL_RESULT (DECL)); \
HALF_PIC_DECLARE (NAME); \
} while (0)
/* Assemble generic sections. */
/* Write the extra assembler code needed to declare an object properly. */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
size_directive_output = 0; \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation
in the case where we did not do so before the initializer.
Once we find the error_mark_node, we know that the value of
size_directive_output was set
by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, name); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
} while (0)
/* This is how to declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
/* Since gas and gld are standard on OpenBSD, we don't need these */
#undef ASM_FINAL_SPEC
#undef STARTFILE_SPEC

View File

@ -0,0 +1,261 @@
/* Definitions for MIPS systems running BSD as target machine for GNU compiler.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
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. */
/* We settle for little endian for now */
#define TARGET_ENDIAN_DEFAULT 0
#ifndef CROSS_COMPILE
/* Look for the G++ include files in the system-defined place. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
#endif
/* Provide a LINK_SPEC appropriate for OpenBSD. Here we provide support
for the special GCC options -static, -assert, and -nostdlib. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
%{bestGnum} %{shared} %{non_shared} \
%{call_shared} %{no_archive} %{exact_version} \
%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
%{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Define mips-specific OpenBSD predefines... */
#ifndef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ANSI_COMPAT \
-DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__OpenBSD__ -Dmips \
-D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ \
-Dunix -D_R3000 \
-Asystem(unix) -Asystem(OpenBSD) -Amachine(mips)"
#endif
#ifndef CC1_SPEC
#define CC1_SPEC "\
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}\
%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} \
%{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} \
%{m4650:-mcpu=r4650} \
%{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} \
%{pic-none: -mno-half-pic} \
%{pic-lib: -mhalf-pic} \
%{pic-extern: -mhalf-pic} \
%{pic-calls: -mhalf-pic} \
%{save-temps: } \
%{!mno-abicalls: -mabicalls}"
#endif
#define SUBTARGET_ASM_SPEC "%{fPIC:-KPIC}"
#ifndef CPP_SPEC
#define CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mgp32:-U__mips64} %{mgp64:-D__mips64}"
#endif
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
#define STARTFILE_SPEC \
"%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "OpenBSD/mips"
#endif
#define TARGET_DEFAULT MASK_GAS
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* -G is incompatible with -KPIC which is the default, so only allow objects
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
#include "mips/mips.h"
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#undef TYPE_ASM_OP
#undef SIZE_ASM_OP
#undef WEAK_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "@%s"
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
#ifndef ASM_DECLARE_RESULT
#define ASM_DECLARE_RESULT(FILE, RESULT)
#endif
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do { \
extern FILE *asm_out_text_file; \
\
if (TARGET_GP_OPT) \
{ \
int align; \
STREAM = asm_out_text_file; \
/* Output ALIGN again to the new stream. XXX */ \
align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); \
if (align > 0) \
{ \
if (output_bytecode) \
BC_OUTPUT_ALIGN (STREAM, align); \
else \
ASM_OUTPUT_ALIGN (STREAM, align); \
} \
} \
fprintf (STREAM, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (STREAM, NAME); \
putc (',', STREAM); \
fprintf (STREAM, TYPE_OPERAND_FMT, "function"); \
putc ('\n', STREAM); \
ASM_DECLARE_RESULT (STREAM, DECL_RESULT (DECL)); \
HALF_PIC_DECLARE (NAME); \
} while (0)
/* Assemble generic sections. */
/* Write the extra assembler code needed to declare an object properly. */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
size_directive_output = 0; \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation
in the case where we did not do so before the initializer.
Once we find the error_mark_node, we know that the value of
size_directive_output was set
by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, name); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
} while (0)
/* This is how to declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
/* Since gas and gld are standard on OpenBSD, we don't need these */
#undef ASM_FINAL_SPEC
#undef STARTFILE_SPEC

View File

@ -0,0 +1,261 @@
/* Definitions for MIPS systems running BSD as target machine for GNU compiler.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
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. */
/* We settle for little endian for now */
#define TARGET_ENDIAN_DEFAULT 0
#ifndef CROSS_COMPILE
/* Look for the G++ include files in the system-defined place. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
#endif
/* Provide a LINK_SPEC appropriate for OpenBSD. Here we provide support
for the special GCC options -static, -assert, and -nostdlib. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
%{bestGnum} %{shared} %{non_shared} \
%{call_shared} %{no_archive} %{exact_version} \
%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
%{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Define mips-specific OpenBSD predefines... */
#ifndef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ANSI_COMPAT \
-DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__OpenBSD__ -Dmips \
-D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ \
-Dunix -D_R3000 \
-Asystem(unix) -Asystem(OpenBSD) -Amachine(mips)"
#endif
#ifndef CC1_SPEC
#define CC1_SPEC "\
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}\
%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} \
%{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} \
%{m4650:-mcpu=r4650} \
%{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} \
%{pic-none: -mno-half-pic} \
%{pic-lib: -mhalf-pic} \
%{pic-extern: -mhalf-pic} \
%{pic-calls: -mhalf-pic} \
%{save-temps: } \
%{!mno-abicalls: -mabicalls}"
#endif
#define SUBTARGET_ASM_SPEC "%{fPIC:-KPIC}"
#ifndef CPP_SPEC
#define CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mgp32:-U__mips64} %{mgp64:-D__mips64}"
#endif
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
#define STARTFILE_SPEC \
"%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "OpenBSD/mips"
#endif
#define TARGET_DEFAULT MASK_GAS
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* -G is incompatible with -KPIC which is the default, so only allow objects
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
#include "mips/mips.h"
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#undef TYPE_ASM_OP
#undef SIZE_ASM_OP
#undef WEAK_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "@%s"
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
#ifndef ASM_DECLARE_RESULT
#define ASM_DECLARE_RESULT(FILE, RESULT)
#endif
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do { \
extern FILE *asm_out_text_file; \
\
if (TARGET_GP_OPT) \
{ \
int align; \
STREAM = asm_out_text_file; \
/* Output ALIGN again to the new stream. XXX */ \
align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); \
if (align > 0) \
{ \
if (output_bytecode) \
BC_OUTPUT_ALIGN (STREAM, align); \
else \
ASM_OUTPUT_ALIGN (STREAM, align); \
} \
} \
fprintf (STREAM, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (STREAM, NAME); \
putc (',', STREAM); \
fprintf (STREAM, TYPE_OPERAND_FMT, "function"); \
putc ('\n', STREAM); \
ASM_DECLARE_RESULT (STREAM, DECL_RESULT (DECL)); \
HALF_PIC_DECLARE (NAME); \
} while (0)
/* Assemble generic sections.
/* Write the extra assembler code needed to declare an object properly. */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
size_directive_output = 0; \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation
in the case where we did not do so before the initializer.
Once we find the error_mark_node, we know that the value of
size_directive_output was set
by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, name); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
} while (0)
/* This is how to declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
/* Since gas and gld are standard on OpenBSD, we don't need these */
#undef ASM_FINAL_SPEC
#undef STARTFILE_SPEC

View File

@ -0,0 +1,2 @@
#include "mips/xm-mips.h"
#include "config/xm-openbsd.h"

View File

@ -0,0 +1,116 @@
/* Configuration for a ns32532 running OpenBSD as the target machine.
Copyright (C) 1988, 1994, 1995 Free Software Foundation, Inc.
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.
*/
#include <ns32k/ns32k.h>
/* Compile for the floating point unit & 32532 by default;
Don't assume SB is zero;
Don't use bitfield instructions; */
#define TARGET_DEFAULT (1 + 24 + 32 + 64)
/* 32-bit alignment for efficiency */
#undef POINTER_BOUNDARY
#define POINTER_BOUNDARY 32
/* 32-bit alignment for efficiency */
#undef FUNCTION_BOUNDARY
#define FUNCTION_BOUNDARY 32
/* 32532 spec says it can handle any alignment. Rumor from tm-ns32k.h
tells this might not be actually true (but it's for 32032, perhaps
National has fixed the bug for 32532). You might have to change this
if the bug still exists. */
#undef STRICT_ALIGNMENT
#define STRICT_ALIGNMENT 0
/* Use pc relative addressing whenever possible,
it's more efficient than absolute (ns32k.c)
You have to fix a bug in gas 1.38.1 to make this work with gas,
patch available from jkp@cs.hut.fi.
(OpenBSD's gas version has this patch already applied) */
#define PC_RELATIVE
/* Operand of bsr or jsr should be just the address. */
#define CALL_MEMREF_IMPLICIT
/* movd insns may have floating point constant operands. */
#define MOVD_FLOAT_OK
/* Get generic OpenBSD definitions. */
#include <openbsd.h>
/* Names to predefine in the preprocessor for this target machine. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Dns32k -Dns32000 -Dns32532 -D__OpenBSD__ -Dpc532 -D__ns32k__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(ns32k) -Amachine(ns32k)"
/* Make gcc agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* This is BSD, so it wants DBX format. */
#define DBX_DEBUGGING_INFO
/* Do not break .stabs pseudos into continuations. */
#define DBX_CONTIN_LENGTH 0
/* This is the char to use for continuation (in case we need to turn
continuation back on). */
#define DBX_CONTIN_CHAR '?'
/* Don't use the `xsfoo;' construct in DBX output; this system
doesn't support it. */
#define DBX_NO_XREFS
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#undef PCC_STATIC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0

View File

@ -0,0 +1,10 @@
/* Configuration for GCC for ns32k running OpenBSD as host. */
#include <ns32k/xm-ns32k.h>
/* ns32k/xm-ns32k.h defines these macros, but we don't need them */
#undef memcmp
#undef memcpy
#undef memset
#include <xm-openbsd.h>

View File

@ -0,0 +1,50 @@
#include <sparc/sparc.h>
/* Get generic OpenBSD definitions. */
#include <openbsd.h>
/* Names to predefine in the preprocessor for this target machine. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Dsparc -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(sparc) -Amachine(sparc)"
/* Make gcc agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* This is BSD, so it wants DBX format. */
#define DBX_DEBUGGING_INFO
/* This is the char to use for continuation (in case we need to turn
continuation back on). */
#define DBX_CONTIN_CHAR '?'
/* Don't use the `xsfoo;' construct in DBX output; this system
doesn't support it. */
#define DBX_NO_XREFS
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0

View File

@ -0,0 +1,4 @@
/* Configuration for GCC for Sun SPARC running OpenBSD as host. */
#include <sparc/xm-sparc.h>
#include <xm-openbsd.h>

View File

@ -0,0 +1,28 @@
#include <vax/vax.h>
#include <openbsd.h>
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Dvax -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(vax) -Amachine(vax)"
/* Make gcc agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#undef DWARF2_UNWIND_INFO

View File

@ -0,0 +1,3 @@
# We need urem and udiv from some kind of support library (e.g. libc) and
# at this point we don't have that available
LIBGCC1_TEST =

View File

@ -0,0 +1,2 @@
#include <vax/xm-vax.h>
#include <xm-openbsd.h>

View File

@ -1,31 +1,97 @@
--- gcc/configure.in.orig Fri Aug 28 02:19:04 1998
+++ gcc/configure.in Fri Oct 2 15:17:19 1998
@@ -868,6 +868,13 @@
+++ gcc/configure.in Sun Oct 11 03:10:08 1998
@@ -868,6 +868,14 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ i[[34567]]86-*-openbsd*)
+ tm_file=i386/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
+ #use_collect2=yes
+ ;;
i[[34567]]86-*-coff*)
tm_file=i386/i386-coff.h
tmake_file=i386/t-i386bare
@@ -1634,6 +1641,14 @@
# On NetBSD, the headers are already okay, except for math.h.
fixincludes=fixinc.wrap
@@ -1636,6 +1644,15 @@
tmake_file=t-netbsd
+ float_format=m68k
+ ;;
float_format=m68k
;;
+ m68k*-*-openbsd*)
+ tm_file=m68k/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
float_format=m68k
;;
+ float_format=m68k
+ #use_collect2=yes
+ ;;
m68k-*-sysv3*) # Motorola m68k's running system V.3
xm_file="xm-alloca.h ${xm_file}"
xm_defines=USG
@@ -1956,6 +1973,20 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ mips*el-*-openbsd*) # MIPS running OpenBSD
+ tm_file=mips/openbsd-le.h
+ tmake_file=t-libc-ok
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ ;;
+ mips*-*-openbsd*) # MIPS big-endian running OpenBSD
+ tm_file=mips/openbsd-be.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ tmake_file=t-libc-ok
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ ;;
mips-sony-bsd* | mips-sony-newsos*) # Sony NEWS 3600 or risc/news.
tm_file="mips/news4.h ${tm_file}"
if [[ x$stabs = xyes ]]; then
@@ -2287,6 +2318,13 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ ns32k-*-openbsd*)
+ tm_file=ns32k/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ tmake_file=t-libc-ok
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ ;;
pdp11-*-bsd)
tm_file="${tm_file} pdp11/2bsd.h"
;;
@@ -2582,6 +2620,13 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ sparc-*-openbsd*)
+ tm_file=sparc/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-libc-ok
+ ;;
sparc-*-bsd*)
tm_file=sparc/bsd.h
;;
@@ -2774,6 +2819,14 @@
# On NetBSD, the headers are already okay, except for math.h.
fixincludes=fixinc.wrap
tmake_file=t-netbsd
+ float_format=vax
+ ;;
+ vax-*-openbsd*)
+ tm_file=vax/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ tmake_file="t-libc-ok vax/t-openbsd"
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
float_format=vax
;;
vax-*-ultrix*) # vaxen running ultrix

View File

@ -0,0 +1,75 @@
--- gcc/Makefile.in.orig Thu Oct 8 14:16:01 1998
+++ gcc/Makefile.in Thu Oct 8 21:19:52 1998
@@ -456,6 +456,10 @@
PROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo protoize | sed -e $$t`
UNPROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo unprotoize | sed -e $$t`
+# documentation for cpp should not supersede default documentation
+CPP_INFO_NAME = `t='$(program_transform_name)'; echo cpp | sed -e $$t`
+CPP_MAN_NAME = `t='$(program_transform_name)'; echo cccp | sed -e $$t`
+
# Actual name to use when installing a cross-compiler.
GCC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gcc | sed -e $$t`
PROTOIZE_CROSS_NAME = `t='$(program_transform_cross_name)'; echo protoize | sed -e $$t`
@@ -2097,12 +2101,14 @@
info: cpp.info gcc.info lang.info
cpp.info: $(srcdir)/cpp.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o cpp.info $(srcdir)/cpp.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(CPP_INFO_NAME).info \
+ $(srcdir)/cpp.texi && touch cpp.info
gcc.info: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
$(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
$(srcdir)/tm.texi $(srcdir)/gcov.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o gcc.info $(srcdir)/gcc.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(GCC_INSTALL_NAME).info \
+ $(srcdir)/gcc.texi && touch gcc.info
dvi: gcc.dvi cpp.dvi lang.dvi
@@ -2243,6 +2249,7 @@
-rm -f cexp.c cexp.output TAGS
-rm -f cpp.info* cpp.??s cpp.*aux
-rm -f gcc.info* gcc.??s gcc.*aux
+ -rm -f $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*
#
# Entry points `install' and `uninstall'.
# Also use `install-collect2' to install collect2 when the config files don't.
@@ -2381,18 +2388,19 @@
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info: doc installdirs lang.install-info
- -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- for f in cpp.info* gcc.info*; do \
+ -rm -f $(infodir)/$(CPP_INFO_NAME).info* \
+ $(infodir)/$(GCC_INSTALL_NAME).info*
+ for f in $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*; do \
$(INSTALL_DATA) $$f $(infodir)/$$f; \
done
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
if [ -f $(infodir)/dir ] ; then \
- for f in cpp.info gcc.info; do \
+ for f in $(GCC_INSTALL_NAME).info $(CPP_INFO_NAME).info; do \
install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
done; \
else true; fi; \
else true; fi;
- -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
+ -chmod a-x $(infodir)/$(CPP_INFO_NAME).info* $(infodir)/$(GCC_INSTALL_NAME).info*
# Install the man pages.
install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cccp.1 lang.install-man
@@ -2405,9 +2413,9 @@
$(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
chmod a-x $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
fi
- -rm -f $(mandir)/cccp$(manext)
- -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/cccp$(manext)
- -chmod a-x $(mandir)/cccp$(manext)
+ -rm -f $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -chmod a-x $(mandir)/$(CPP_MAN_NAME)$(manext)
# Install the library.
install-libgcc: libgcc.a installdirs

View File

@ -0,0 +1,9 @@
--- gcc/cpp.texi.orig Thu Oct 8 21:23:50 1998
+++ gcc/cpp.texi Thu Oct 8 21:23:58 1998
@@ -1,5 +1,5 @@
\input texinfo
-@setfilename cpp.info
+@setfilename ecpp.info
@settitle The C Preprocessor
@ifinfo

View File

@ -1,200 +0,0 @@
@cwd /usr/local
@name egcs-1.1b
@pkgdep autoconf-2.12
@pkgdep m4-1.4
bin/c++
bin/gcc
bin/g++
bin/c++filt
bin/protoize
bin/unprotoize
bin/gcov
bin/i386-unknown-openbsd2.4-gcc
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-26
info/gcc.info-27
info/gcc.info-28
info/gcc.info-29
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
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/cc1
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/cc1plus
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/collect2
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/specs
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/SYSCALLS.c.X
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/cpp
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/libgcc.a
lib/libiberty.a
lib/libstdc++.a
man/man1/g++.1
man/man1/gcc.1
man/man1/cccp.1
include/g++/std/bastring.cc
include/g++/std/bastring.h
include/g++/std/complext.cc
include/g++/std/complext.h
include/g++/std/dcomplex.h
include/g++/std/fcomplex.h
include/g++/std/ldcomplex.h
include/g++/std/straits.h
include/g++/PlotFile.h
include/g++/SFile.h
include/g++/builtinbuf.h
include/g++/editbuf.h
include/g++/floatio.h
include/g++/fstream.h
include/g++/indstream.h
include/g++/iolibio.h
include/g++/iomanip.h
include/g++/iostdio.h
include/g++/iostream.h
include/g++/iostreamP.h
include/g++/istream.h
include/g++/libio.h
include/g++/libioP.h
include/g++/ostream.h
include/g++/parsestream.h
include/g++/pfstream.h
include/g++/procbuf.h
include/g++/stdiostream.h
include/g++/stream.h
include/g++/streambuf.h
include/g++/strfile.h
include/g++/strstream.h
include/g++/cassert
include/g++/cctype
include/g++/cerrno
include/g++/cfloat
include/g++/ciso646
include/g++/climits
include/g++/clocale
include/g++/cmath
include/g++/complex
include/g++/csetjmp
include/g++/csignal
include/g++/cstdarg
include/g++/cstddef
include/g++/cstdio
include/g++/cstdlib
include/g++/cstring
include/g++/ctime
include/g++/cwchar
include/g++/cwctype
include/g++/string
include/g++/stdexcept
include/g++/algorithm
include/g++/deque
include/g++/functional
include/g++/hash_map
include/g++/hash_set
include/g++/iterator
include/g++/list
include/g++/map
include/g++/memory
include/g++/numeric
include/g++/pthread_alloc
include/g++/queue
include/g++/rope
include/g++/set
include/g++/slist
include/g++/stack
include/g++/utility
include/g++/vector
include/g++/fstream
include/g++/iomanip
include/g++/iostream
include/g++/strstream
include/g++/iosfwd
include/g++/complex.h
include/g++/stl.h
include/g++/iterator.h
include/g++/algo.h
include/g++/algobase.h
include/g++/alloc.h
include/g++/bvector.h
include/g++/defalloc.h
include/g++/deque.h
include/g++/function.h
include/g++/hash_map.h
include/g++/hash_set.h
include/g++/hashtable.h
include/g++/heap.h
include/g++/list.h
include/g++/map.h
include/g++/multimap.h
include/g++/multiset.h
include/g++/pair.h
include/g++/pthread_alloc.h
include/g++/rope.h
include/g++/ropeimpl.h
include/g++/set.h
include/g++/slist.h
include/g++/stack.h
include/g++/stl_algo.h
include/g++/stl_algobase.h
include/g++/stl_alloc.h
include/g++/stl_bvector.h
include/g++/stl_config.h
include/g++/stl_construct.h
include/g++/stl_deque.h
include/g++/stl_function.h
include/g++/stl_hash_fun.h
include/g++/stl_hash_map.h
include/g++/stl_hash_set.h
include/g++/stl_hashtable.h
include/g++/tree.h
include/g++/stl_heap.h
include/g++/stl_iterator.h
include/g++/stl_list.h
include/g++/stl_map.h
include/g++/stl_multimap.h
include/g++/stl_multiset.h
include/g++/stl_numeric.h
include/g++/stl_pair.h
include/g++/stl_queue.h
include/g++/stl_raw_storage_iter.h
include/g++/stl_relops.h
include/g++/stl_rope.h
include/g++/stl_set.h
include/g++/stl_slist.h
include/g++/stl_stack.h
include/g++/stl_tempbuf.h
include/g++/stl_tree.h
include/g++/stl_uninitialized.h
include/g++/stl_vector.h
include/g++/tempbuf.h
include/g++/type_traits.h
include/g++/vector.h
i386-unknown-openbsd2.4/include/_G_config.h
i386-unknown-openbsd2.4/lib/libiberty.a
@dirrm include/g++/std
@dirrm include/g++
@dirrm lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57
@dirrm lib/gcc-lib/i386-unknown-openbsd2.4

View File

@ -3,11 +3,12 @@
# Date created: 25 sep 98
# Whom: Marc Espie
#
# $OpenBSD: Makefile,v 1.2 1998/10/02 18:51:24 espie Exp $
# $OpenBSD: Makefile,v 1.3 1998/10/11 14:08:23 espie Exp $
#
# This is a configuration file for egcs, stable release
# right now, we only configure i386, C and C++.
# g77 and objc didn't make it for 2.4.
DISTNAME= egcs-1.1b
DIRECTORY=egcs/releases/egcs-1.1b/
@ -16,10 +17,50 @@ DISTFILES= egcs-core-1.1b${EXTRACT_SUFX}
DISTFILES+= egcs-g++-1.1b${EXTRACT_SUFX}
# see files/tests for testing procedure
#DISTFILES+=egcs-tests-1.1b${EXTRACT_SUFX}
# to be added...
#DISTFILES+=egcs-g77-1.1b${EXTRACT_SUFX}
#DISTFILES+=egcs-objc-1.1b${EXTRACT_SUFX}
CATEGORIES= lang
MASTER_SITES= ftp://egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lip6.fr/pub/${DIRECTORY}
MASTER_SITES+= ftp://go.cygnus.com/pub/ftp.cygnus.com/${DIRECTORY}
MASTER_SITES+= ftp://ftp.goof.com/pub/pcg/${DIRECTORY}
MASTER_SITES+= ftp://cambridge.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.ninemoons.com/pub/mirrors/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.doc.ic.ac.uk/Mirrors/egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://gd.tuwien.ac.at/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.ilog.fr/pub/Mirrors/${DIRECTORY}
MASTER_SITES+= ftp://ftp.irisa.fr/pub/mirrors/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.mff.cuni.cz/pub/GNU/${DIRECTORY}
MASTER_SITES+= ftp://ftp.gts.cz/pub/MIRRORS/ftp.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.auc.dk/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.fu-berlin.de/unix/languages/${DIRECTORY}
MASTER_SITES+= ftp://ftp.gwdg.de/pub/cygnus/${DIRECTORY}
MASTER_SITES+= ftp://ftp.mpi-sb.mpg.de/pub/gnu/mirror/egcs.cygnus.com/${DIRECTORY}
MASTER_SITES+= ftp://ftp.uni-trier.de/pub/languages/c/implementation/${DIRECTORY}
MASTER_SITES+= ftp://sunsite.icm.edu.pl/pub/programming/${DIRECTORY}
MASTER_SITES+= ftp://ftp.task.gda.pl/mirror/egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.sunet.se/pub/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.unicamp.br/pub/gnu/=EXTRA=/cygnus/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lca.uevora.pt/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lbi.ro/mirrors/ftp.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://moshpit.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.ntua.gr/pub/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.nluug.nl/pub/languages/${DIRECTORY}
MASTER_SITES+= ftp://ftp.dti.ad.jp/pub/lang/${DIRECTORY}
MASTER_SITES+= ftp://ftp.win.or.jp/pub/lang/${DIRECTORY}
MASTER_SITES+= ftp://ftp.telewaynet.ad.jp/pub/lang/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lab.kdd.co.jp/lang/${DIRECTORY}
MASTER_SITES+= ftp://cair-archive.kaist.ac.kr/pub/gnu/${DIRECTORY}
MASTER_SITES+= ftp://ftp.funet.fi/mirrors/ftp.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.crc.ca/pub/packages/${DIRECTORY}
MASTER_SITES+= ftp://ftp.nc.orc.ru/pub/${DIRECTORY}
MASTER_SITES+= ftp://linux.ihep.su/pub/cygnus/${DIRECTORY}
MASTER_SITES+= ftp://ftp.goof.com/pub/pcg/${DIRECTORY}
MASTER_SITES+= ftp://ftp.u-aizu.ac.jp/pub/lang/C/pcg/${DIRECTORY}
MASTER_SITES+= ftp://linux.cis.nctu.edu.tw/pub/packages/pcg/${DIRECTORY}
MASTER_SITES+= ftp://ftp.maisel.int-evry.fr/pub/linux/pentium/${DIRECTORY}
MAINTAINER= Marc.Espie@openbsd.org
@ -39,7 +80,7 @@ CONFIGURE_SCRIPT=../source/configure
CONFIGURE_ENV=CFLAGS=-O2
CONFIGURE_ARGS= --prefix=${PREFIX} \
--verbose \
--verbose --with-gnu-ld ---with-gnu-as \
--program-transform-name=s,^,e,
.if (${MACHINE_ARCH} != "alpha")
CONFIGURE_ARGS+=--enable-shared

View File

@ -0,0 +1,261 @@
/* Definitions for MIPS systems running BSD as target machine for GNU compiler.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
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. */
/* We settle for big endian for now */
#define TARGET_ENDIAN_DEFAULT MASK_BIG_ENDIAN
#ifndef CROSS_COMPILE
/* Look for the G++ include files in the system-defined place. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
#endif
/* Provide a LINK_SPEC appropriate for OpenBSD. Here we provide support
for the special GCC options -static, -assert, and -nostdlib. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
%{bestGnum} %{shared} %{non_shared} \
%{call_shared} %{no_archive} %{exact_version} \
%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
%{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Define mips-specific OpenBSD predefines... */
#ifndef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ANSI_COMPAT \
-DMIPSEB -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__OpenBSD__ -Dmips \
-D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ \
-Dunix -D_R3000 \
-Asystem(unix) -Asystem(OpenBSD) -Amachine(mips)"
#endif
#ifndef CC1_SPEC
#define CC1_SPEC "\
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}\
%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} \
%{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} \
%{m4650:-mcpu=r4650} \
%{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} \
%{pic-none: -mno-half-pic} \
%{pic-lib: -mhalf-pic} \
%{pic-extern: -mhalf-pic} \
%{pic-calls: -mhalf-pic} \
%{save-temps: } \
%{!mno-abicalls: -mabicalls}"
#endif
#define SUBTARGET_ASM_SPEC "%{fPIC:-KPIC}"
#ifndef CPP_SPEC
#define CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mgp32:-U__mips64} %{mgp64:-D__mips64}"
#endif
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
#define STARTFILE_SPEC \
"%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "OpenBSD/mips"
#endif
#define TARGET_DEFAULT MASK_GAS
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* -G is incompatible with -KPIC which is the default, so only allow objects
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
#include "mips/mips.h"
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#undef TYPE_ASM_OP
#undef SIZE_ASM_OP
#undef WEAK_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "@%s"
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
#ifndef ASM_DECLARE_RESULT
#define ASM_DECLARE_RESULT(FILE, RESULT)
#endif
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do { \
extern FILE *asm_out_text_file; \
\
if (TARGET_GP_OPT) \
{ \
int align; \
STREAM = asm_out_text_file; \
/* Output ALIGN again to the new stream. XXX */ \
align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); \
if (align > 0) \
{ \
if (output_bytecode) \
BC_OUTPUT_ALIGN (STREAM, align); \
else \
ASM_OUTPUT_ALIGN (STREAM, align); \
} \
} \
fprintf (STREAM, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (STREAM, NAME); \
putc (',', STREAM); \
fprintf (STREAM, TYPE_OPERAND_FMT, "function"); \
putc ('\n', STREAM); \
ASM_DECLARE_RESULT (STREAM, DECL_RESULT (DECL)); \
HALF_PIC_DECLARE (NAME); \
} while (0)
/* Assemble generic sections. */
/* Write the extra assembler code needed to declare an object properly. */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
size_directive_output = 0; \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation
in the case where we did not do so before the initializer.
Once we find the error_mark_node, we know that the value of
size_directive_output was set
by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, name); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
} while (0)
/* This is how to declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
/* Since gas and gld are standard on OpenBSD, we don't need these */
#undef ASM_FINAL_SPEC
#undef STARTFILE_SPEC

View File

@ -0,0 +1,261 @@
/* Definitions for MIPS systems running BSD as target machine for GNU compiler.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
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. */
/* We settle for little endian for now */
#define TARGET_ENDIAN_DEFAULT 0
#ifndef CROSS_COMPILE
/* Look for the G++ include files in the system-defined place. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
#endif
/* Provide a LINK_SPEC appropriate for OpenBSD. Here we provide support
for the special GCC options -static, -assert, and -nostdlib. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
%{bestGnum} %{shared} %{non_shared} \
%{call_shared} %{no_archive} %{exact_version} \
%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
%{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Define mips-specific OpenBSD predefines... */
#ifndef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ANSI_COMPAT \
-DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__OpenBSD__ -Dmips \
-D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ \
-Dunix -D_R3000 \
-Asystem(unix) -Asystem(OpenBSD) -Amachine(mips)"
#endif
#ifndef CC1_SPEC
#define CC1_SPEC "\
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}\
%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} \
%{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} \
%{m4650:-mcpu=r4650} \
%{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} \
%{pic-none: -mno-half-pic} \
%{pic-lib: -mhalf-pic} \
%{pic-extern: -mhalf-pic} \
%{pic-calls: -mhalf-pic} \
%{save-temps: } \
%{!mno-abicalls: -mabicalls}"
#endif
#define SUBTARGET_ASM_SPEC "%{fPIC:-KPIC}"
#ifndef CPP_SPEC
#define CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mgp32:-U__mips64} %{mgp64:-D__mips64}"
#endif
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
#define STARTFILE_SPEC \
"%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "OpenBSD/mips"
#endif
#define TARGET_DEFAULT MASK_GAS
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* -G is incompatible with -KPIC which is the default, so only allow objects
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
#include "mips/mips.h"
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#undef TYPE_ASM_OP
#undef SIZE_ASM_OP
#undef WEAK_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "@%s"
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
#ifndef ASM_DECLARE_RESULT
#define ASM_DECLARE_RESULT(FILE, RESULT)
#endif
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do { \
extern FILE *asm_out_text_file; \
\
if (TARGET_GP_OPT) \
{ \
int align; \
STREAM = asm_out_text_file; \
/* Output ALIGN again to the new stream. XXX */ \
align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); \
if (align > 0) \
{ \
if (output_bytecode) \
BC_OUTPUT_ALIGN (STREAM, align); \
else \
ASM_OUTPUT_ALIGN (STREAM, align); \
} \
} \
fprintf (STREAM, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (STREAM, NAME); \
putc (',', STREAM); \
fprintf (STREAM, TYPE_OPERAND_FMT, "function"); \
putc ('\n', STREAM); \
ASM_DECLARE_RESULT (STREAM, DECL_RESULT (DECL)); \
HALF_PIC_DECLARE (NAME); \
} while (0)
/* Assemble generic sections. */
/* Write the extra assembler code needed to declare an object properly. */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
size_directive_output = 0; \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation
in the case where we did not do so before the initializer.
Once we find the error_mark_node, we know that the value of
size_directive_output was set
by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, name); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
} while (0)
/* This is how to declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
/* Since gas and gld are standard on OpenBSD, we don't need these */
#undef ASM_FINAL_SPEC
#undef STARTFILE_SPEC

View File

@ -0,0 +1,261 @@
/* Definitions for MIPS systems running BSD as target machine for GNU compiler.
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
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. */
/* We settle for little endian for now */
#define TARGET_ENDIAN_DEFAULT 0
#ifndef CROSS_COMPILE
/* Look for the G++ include files in the system-defined place. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
#endif
/* Provide a LINK_SPEC appropriate for OpenBSD. Here we provide support
for the special GCC options -static, -assert, and -nostdlib. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
%{bestGnum} %{shared} %{non_shared} \
%{call_shared} %{no_archive} %{exact_version} \
%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
%{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Define mips-specific OpenBSD predefines... */
#ifndef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ANSI_COMPAT \
-DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__OpenBSD__ -Dmips \
-D__NO_LEADING_UNDERSCORES__ -D__GP_SUPPORT__ \
-Dunix -D_R3000 \
-Asystem(unix) -Asystem(OpenBSD) -Amachine(mips)"
#endif
#ifndef CC1_SPEC
#define CC1_SPEC "\
%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
%{mips1:-mfp32 -mgp32}%{mips2:-mfp32 -mgp32}\
%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} \
%{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} \
%{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} \
%{m4650:-mcpu=r4650} \
%{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} \
%{pic-none: -mno-half-pic} \
%{pic-lib: -mhalf-pic} \
%{pic-extern: -mhalf-pic} \
%{pic-calls: -mhalf-pic} \
%{save-temps: } \
%{!mno-abicalls: -mabicalls}"
#endif
#define SUBTARGET_ASM_SPEC "%{fPIC:-KPIC}"
#ifndef CPP_SPEC
#define CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
%{mips3:-U__mips -D__mips=3 -D__mips64} \
%{mgp32:-U__mips64} %{mgp64:-D__mips64}"
#endif
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
#undef LIB_SPEC
#define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
#define STARTFILE_SPEC \
"%{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "OpenBSD/mips"
#endif
#define TARGET_DEFAULT MASK_GAS
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* -G is incompatible with -KPIC which is the default, so only allow objects
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
#include "mips/mips.h"
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#undef TYPE_ASM_OP
#undef SIZE_ASM_OP
#undef WEAK_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "@%s"
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
#ifndef ASM_DECLARE_RESULT
#define ASM_DECLARE_RESULT(FILE, RESULT)
#endif
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do { \
extern FILE *asm_out_text_file; \
\
if (TARGET_GP_OPT) \
{ \
int align; \
STREAM = asm_out_text_file; \
/* Output ALIGN again to the new stream. XXX */ \
align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); \
if (align > 0) \
{ \
if (output_bytecode) \
BC_OUTPUT_ALIGN (STREAM, align); \
else \
ASM_OUTPUT_ALIGN (STREAM, align); \
} \
} \
fprintf (STREAM, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (STREAM, NAME); \
putc (',', STREAM); \
fprintf (STREAM, TYPE_OPERAND_FMT, "function"); \
putc ('\n', STREAM); \
ASM_DECLARE_RESULT (STREAM, DECL_RESULT (DECL)); \
HALF_PIC_DECLARE (NAME); \
} while (0)
/* Assemble generic sections.
/* Write the extra assembler code needed to declare an object properly. */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
size_directive_output = 0; \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation
in the case where we did not do so before the initializer.
Once we find the error_mark_node, we know that the value of
size_directive_output was set
by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, name); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
} \
} while (0)
/* This is how to declare the size of a function. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
/* Since gas and gld are standard on OpenBSD, we don't need these */
#undef ASM_FINAL_SPEC
#undef STARTFILE_SPEC

View File

@ -0,0 +1,2 @@
#include "mips/xm-mips.h"
#include "config/xm-openbsd.h"

View File

@ -0,0 +1,116 @@
/* Configuration for a ns32532 running OpenBSD as the target machine.
Copyright (C) 1988, 1994, 1995 Free Software Foundation, Inc.
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.
*/
#include <ns32k/ns32k.h>
/* Compile for the floating point unit & 32532 by default;
Don't assume SB is zero;
Don't use bitfield instructions; */
#define TARGET_DEFAULT (1 + 24 + 32 + 64)
/* 32-bit alignment for efficiency */
#undef POINTER_BOUNDARY
#define POINTER_BOUNDARY 32
/* 32-bit alignment for efficiency */
#undef FUNCTION_BOUNDARY
#define FUNCTION_BOUNDARY 32
/* 32532 spec says it can handle any alignment. Rumor from tm-ns32k.h
tells this might not be actually true (but it's for 32032, perhaps
National has fixed the bug for 32532). You might have to change this
if the bug still exists. */
#undef STRICT_ALIGNMENT
#define STRICT_ALIGNMENT 0
/* Use pc relative addressing whenever possible,
it's more efficient than absolute (ns32k.c)
You have to fix a bug in gas 1.38.1 to make this work with gas,
patch available from jkp@cs.hut.fi.
(OpenBSD's gas version has this patch already applied) */
#define PC_RELATIVE
/* Operand of bsr or jsr should be just the address. */
#define CALL_MEMREF_IMPLICIT
/* movd insns may have floating point constant operands. */
#define MOVD_FLOAT_OK
/* Get generic OpenBSD definitions. */
#include <openbsd.h>
/* Names to predefine in the preprocessor for this target machine. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Dns32k -Dns32000 -Dns32532 -D__OpenBSD__ -Dpc532 -D__ns32k__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(ns32k) -Amachine(ns32k)"
/* Make gcc agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* This is BSD, so it wants DBX format. */
#define DBX_DEBUGGING_INFO
/* Do not break .stabs pseudos into continuations. */
#define DBX_CONTIN_LENGTH 0
/* This is the char to use for continuation (in case we need to turn
continuation back on). */
#define DBX_CONTIN_CHAR '?'
/* Don't use the `xsfoo;' construct in DBX output; this system
doesn't support it. */
#define DBX_NO_XREFS
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#undef PCC_STATIC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0

View File

@ -0,0 +1,10 @@
/* Configuration for GCC for ns32k running OpenBSD as host. */
#include <ns32k/xm-ns32k.h>
/* ns32k/xm-ns32k.h defines these macros, but we don't need them */
#undef memcmp
#undef memcpy
#undef memset
#include <xm-openbsd.h>

View File

@ -0,0 +1,50 @@
#include <sparc/sparc.h>
/* Get generic OpenBSD definitions. */
#include <openbsd.h>
/* Names to predefine in the preprocessor for this target machine. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Dsparc -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(sparc) -Amachine(sparc)"
/* Make gcc agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* This is BSD, so it wants DBX format. */
#define DBX_DEBUGGING_INFO
/* This is the char to use for continuation (in case we need to turn
continuation back on). */
#define DBX_CONTIN_CHAR '?'
/* Don't use the `xsfoo;' construct in DBX output; this system
doesn't support it. */
#define DBX_NO_XREFS
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0

View File

@ -0,0 +1,4 @@
/* Configuration for GCC for Sun SPARC running OpenBSD as host. */
#include <sparc/xm-sparc.h>
#include <xm-openbsd.h>

View File

@ -0,0 +1,28 @@
#include <vax/vax.h>
#include <openbsd.h>
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Dvax -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(vax) -Amachine(vax)"
/* Make gcc agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#undef DWARF2_UNWIND_INFO

View File

@ -0,0 +1,3 @@
# We need urem and udiv from some kind of support library (e.g. libc) and
# at this point we don't have that available
LIBGCC1_TEST =

View File

@ -0,0 +1,2 @@
#include <vax/xm-vax.h>
#include <xm-openbsd.h>

View File

@ -1,31 +1,97 @@
--- gcc/configure.in.orig Fri Aug 28 02:19:04 1998
+++ gcc/configure.in Fri Oct 2 15:17:19 1998
@@ -868,6 +868,13 @@
+++ gcc/configure.in Sun Oct 11 03:10:08 1998
@@ -868,6 +868,14 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ i[[34567]]86-*-openbsd*)
+ tm_file=i386/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
+ #use_collect2=yes
+ ;;
i[[34567]]86-*-coff*)
tm_file=i386/i386-coff.h
tmake_file=i386/t-i386bare
@@ -1634,6 +1641,14 @@
# On NetBSD, the headers are already okay, except for math.h.
fixincludes=fixinc.wrap
@@ -1636,6 +1644,15 @@
tmake_file=t-netbsd
+ float_format=m68k
+ ;;
float_format=m68k
;;
+ m68k*-*-openbsd*)
+ tm_file=m68k/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
float_format=m68k
;;
+ float_format=m68k
+ #use_collect2=yes
+ ;;
m68k-*-sysv3*) # Motorola m68k's running system V.3
xm_file="xm-alloca.h ${xm_file}"
xm_defines=USG
@@ -1956,6 +1973,20 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ mips*el-*-openbsd*) # MIPS running OpenBSD
+ tm_file=mips/openbsd-le.h
+ tmake_file=t-libc-ok
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ ;;
+ mips*-*-openbsd*) # MIPS big-endian running OpenBSD
+ tm_file=mips/openbsd-be.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ tmake_file=t-libc-ok
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ ;;
mips-sony-bsd* | mips-sony-newsos*) # Sony NEWS 3600 or risc/news.
tm_file="mips/news4.h ${tm_file}"
if [[ x$stabs = xyes ]]; then
@@ -2287,6 +2318,13 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ ns32k-*-openbsd*)
+ tm_file=ns32k/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ tmake_file=t-libc-ok
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ ;;
pdp11-*-bsd)
tm_file="${tm_file} pdp11/2bsd.h"
;;
@@ -2582,6 +2620,13 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ sparc-*-openbsd*)
+ tm_file=sparc/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-libc-ok
+ ;;
sparc-*-bsd*)
tm_file=sparc/bsd.h
;;
@@ -2774,6 +2819,14 @@
# On NetBSD, the headers are already okay, except for math.h.
fixincludes=fixinc.wrap
tmake_file=t-netbsd
+ float_format=vax
+ ;;
+ vax-*-openbsd*)
+ tm_file=vax/openbsd.h
+ xm_file="xm-openbsd.h ${xm_file}"
+ tmake_file="t-libc-ok vax/t-openbsd"
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
float_format=vax
;;
vax-*-ultrix*) # vaxen running ultrix

View File

@ -0,0 +1,75 @@
--- gcc/Makefile.in.orig Thu Oct 8 14:16:01 1998
+++ gcc/Makefile.in Thu Oct 8 21:19:52 1998
@@ -456,6 +456,10 @@
PROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo protoize | sed -e $$t`
UNPROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo unprotoize | sed -e $$t`
+# documentation for cpp should not supersede default documentation
+CPP_INFO_NAME = `t='$(program_transform_name)'; echo cpp | sed -e $$t`
+CPP_MAN_NAME = `t='$(program_transform_name)'; echo cccp | sed -e $$t`
+
# Actual name to use when installing a cross-compiler.
GCC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gcc | sed -e $$t`
PROTOIZE_CROSS_NAME = `t='$(program_transform_cross_name)'; echo protoize | sed -e $$t`
@@ -2097,12 +2101,14 @@
info: cpp.info gcc.info lang.info
cpp.info: $(srcdir)/cpp.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o cpp.info $(srcdir)/cpp.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(CPP_INFO_NAME).info \
+ $(srcdir)/cpp.texi && touch cpp.info
gcc.info: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
$(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
$(srcdir)/tm.texi $(srcdir)/gcov.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o gcc.info $(srcdir)/gcc.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(GCC_INSTALL_NAME).info \
+ $(srcdir)/gcc.texi && touch gcc.info
dvi: gcc.dvi cpp.dvi lang.dvi
@@ -2243,6 +2249,7 @@
-rm -f cexp.c cexp.output TAGS
-rm -f cpp.info* cpp.??s cpp.*aux
-rm -f gcc.info* gcc.??s gcc.*aux
+ -rm -f $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*
#
# Entry points `install' and `uninstall'.
# Also use `install-collect2' to install collect2 when the config files don't.
@@ -2381,18 +2388,19 @@
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info: doc installdirs lang.install-info
- -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- for f in cpp.info* gcc.info*; do \
+ -rm -f $(infodir)/$(CPP_INFO_NAME).info* \
+ $(infodir)/$(GCC_INSTALL_NAME).info*
+ for f in $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*; do \
$(INSTALL_DATA) $$f $(infodir)/$$f; \
done
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
if [ -f $(infodir)/dir ] ; then \
- for f in cpp.info gcc.info; do \
+ for f in $(GCC_INSTALL_NAME).info $(CPP_INFO_NAME).info; do \
install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
done; \
else true; fi; \
else true; fi;
- -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
+ -chmod a-x $(infodir)/$(CPP_INFO_NAME).info* $(infodir)/$(GCC_INSTALL_NAME).info*
# Install the man pages.
install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cccp.1 lang.install-man
@@ -2405,9 +2413,9 @@
$(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
chmod a-x $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
fi
- -rm -f $(mandir)/cccp$(manext)
- -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/cccp$(manext)
- -chmod a-x $(mandir)/cccp$(manext)
+ -rm -f $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -chmod a-x $(mandir)/$(CPP_MAN_NAME)$(manext)
# Install the library.
install-libgcc: libgcc.a installdirs

View File

@ -0,0 +1,9 @@
--- gcc/cpp.texi.orig Thu Oct 8 21:23:50 1998
+++ gcc/cpp.texi Thu Oct 8 21:23:58 1998
@@ -1,5 +1,5 @@
\input texinfo
-@setfilename cpp.info
+@setfilename ecpp.info
@settitle The C Preprocessor
@ifinfo

View File

@ -1,200 +0,0 @@
@cwd /usr/local
@name egcs-1.1b
@pkgdep autoconf-2.12
@pkgdep m4-1.4
bin/c++
bin/gcc
bin/g++
bin/c++filt
bin/protoize
bin/unprotoize
bin/gcov
bin/i386-unknown-openbsd2.4-gcc
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-26
info/gcc.info-27
info/gcc.info-28
info/gcc.info-29
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
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/cc1
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/cc1plus
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/collect2
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/specs
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/SYSCALLS.c.X
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/cpp
lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57/libgcc.a
lib/libiberty.a
lib/libstdc++.a
man/man1/g++.1
man/man1/gcc.1
man/man1/cccp.1
include/g++/std/bastring.cc
include/g++/std/bastring.h
include/g++/std/complext.cc
include/g++/std/complext.h
include/g++/std/dcomplex.h
include/g++/std/fcomplex.h
include/g++/std/ldcomplex.h
include/g++/std/straits.h
include/g++/PlotFile.h
include/g++/SFile.h
include/g++/builtinbuf.h
include/g++/editbuf.h
include/g++/floatio.h
include/g++/fstream.h
include/g++/indstream.h
include/g++/iolibio.h
include/g++/iomanip.h
include/g++/iostdio.h
include/g++/iostream.h
include/g++/iostreamP.h
include/g++/istream.h
include/g++/libio.h
include/g++/libioP.h
include/g++/ostream.h
include/g++/parsestream.h
include/g++/pfstream.h
include/g++/procbuf.h
include/g++/stdiostream.h
include/g++/stream.h
include/g++/streambuf.h
include/g++/strfile.h
include/g++/strstream.h
include/g++/cassert
include/g++/cctype
include/g++/cerrno
include/g++/cfloat
include/g++/ciso646
include/g++/climits
include/g++/clocale
include/g++/cmath
include/g++/complex
include/g++/csetjmp
include/g++/csignal
include/g++/cstdarg
include/g++/cstddef
include/g++/cstdio
include/g++/cstdlib
include/g++/cstring
include/g++/ctime
include/g++/cwchar
include/g++/cwctype
include/g++/string
include/g++/stdexcept
include/g++/algorithm
include/g++/deque
include/g++/functional
include/g++/hash_map
include/g++/hash_set
include/g++/iterator
include/g++/list
include/g++/map
include/g++/memory
include/g++/numeric
include/g++/pthread_alloc
include/g++/queue
include/g++/rope
include/g++/set
include/g++/slist
include/g++/stack
include/g++/utility
include/g++/vector
include/g++/fstream
include/g++/iomanip
include/g++/iostream
include/g++/strstream
include/g++/iosfwd
include/g++/complex.h
include/g++/stl.h
include/g++/iterator.h
include/g++/algo.h
include/g++/algobase.h
include/g++/alloc.h
include/g++/bvector.h
include/g++/defalloc.h
include/g++/deque.h
include/g++/function.h
include/g++/hash_map.h
include/g++/hash_set.h
include/g++/hashtable.h
include/g++/heap.h
include/g++/list.h
include/g++/map.h
include/g++/multimap.h
include/g++/multiset.h
include/g++/pair.h
include/g++/pthread_alloc.h
include/g++/rope.h
include/g++/ropeimpl.h
include/g++/set.h
include/g++/slist.h
include/g++/stack.h
include/g++/stl_algo.h
include/g++/stl_algobase.h
include/g++/stl_alloc.h
include/g++/stl_bvector.h
include/g++/stl_config.h
include/g++/stl_construct.h
include/g++/stl_deque.h
include/g++/stl_function.h
include/g++/stl_hash_fun.h
include/g++/stl_hash_map.h
include/g++/stl_hash_set.h
include/g++/stl_hashtable.h
include/g++/tree.h
include/g++/stl_heap.h
include/g++/stl_iterator.h
include/g++/stl_list.h
include/g++/stl_map.h
include/g++/stl_multimap.h
include/g++/stl_multiset.h
include/g++/stl_numeric.h
include/g++/stl_pair.h
include/g++/stl_queue.h
include/g++/stl_raw_storage_iter.h
include/g++/stl_relops.h
include/g++/stl_rope.h
include/g++/stl_set.h
include/g++/stl_slist.h
include/g++/stl_stack.h
include/g++/stl_tempbuf.h
include/g++/stl_tree.h
include/g++/stl_uninitialized.h
include/g++/stl_vector.h
include/g++/tempbuf.h
include/g++/type_traits.h
include/g++/vector.h
i386-unknown-openbsd2.4/include/_G_config.h
i386-unknown-openbsd2.4/lib/libiberty.a
@dirrm include/g++/std
@dirrm include/g++
@dirrm lib/gcc-lib/i386-unknown-openbsd2.4/egcs-2.91.57
@dirrm lib/gcc-lib/i386-unknown-openbsd2.4