egcs ports, stable release flavor

This commit is contained in:
espie 1998-09-26 08:53:03 +00:00
parent 677a741184
commit ac00d0f03b
18 changed files with 1174 additions and 0 deletions

60
lang/egcs-stable/Makefile Normal file
View File

@ -0,0 +1,60 @@
# OpenBSD makefile for: egcs
# Version required: egcs release 1.1b
# Date created: 25 sep 98
# Whom: Marc Espie
#
# $OpenBSD: Makefile,v 1.1.1.1 1998/09/26 08:53:03 espie Exp $
#
# This is a configuration file for egcs, stable release
# right now, we only configure i386, C and C++.
DISTNAME= egcs-1.1b
DIRECTORY=egcs/releases/egcs-1.1b/
DISTFILES= egcs-core-1.1b${EXTRACT_SUFX}
DISTFILES+= egcs-g++-1.1b${EXTRACT_SUFX}
CATEGORIES= lang
MASTER_SITES= ftp://egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lip6.fr/pub/${DIRECTORY}
MAINTAINER= Marc.Espie@openbsd.org
# Should be CONFIGURE_DEPENDS, if we had it
DEPENDS= ${PORTSDIR}/devel/autoconf:${PORTSDIR}/devel/autoconf
ONLY_FOR_ARCHS= i386
GNU_CONFIGURE= yes
USE_GMAKE= yes
MAKE_ENV="CFLAGS=-O2"
# don't make bootstrap if you're impatient/you know what you're doing
# use bootstrap-lean if you don't have room.
ALL_TARGET=bootstrap
# should remove --enable-shared for alpha
# use --enable-haifa- on some archs (alpha, sparc, pa-risc)
CONFIGURE_ARGS=--verbose --enable-shared --program-prefix=e
INSTALL_TARGET= install
# get openbsd configuration files where they should be
post-extract:
cp -R files/* ${WRKSRC}
rm -rf ${WRKSRC}/texinfo
# we should change libstdc++ name so that we will get the right one
post-patch:
CONFIGURE_SCRIPT=../source/configure
# rebuild configure file after patching, then move file around !!!
# XXX: don't try to autoconf the main configure file, it's not autoconf.
# + kludge to build in a separate directory.
pre-configure:
cd ${WRKSRC}/gcc && /usr/local/bin/autoconf
mv ${WRKSRC} ${WRKDIR}/source
mkdir ${WRKSRC}
.include <bsd.port.mk>

View File

@ -0,0 +1,87 @@
/* This goes away when the math-emulator is fixed */
#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */
/* This is tested by i386gas.h. */
#define YES_UNDERSCORES
#include <i386/gstabs.h>
/* Get perform_* macros to build libgcc.a. */
#include <i386/perform.h>
/* Get generic OpenBSD definitions. */
#include <openbsd.h>
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Di386 -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(i386) -Amachine(i386)"
#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
/* there are conflicting reports about whether this system uses
a different assembler syntax. wilson@cygnus.com says # is right. */
#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
/* The following macros are stolen from i386v4.h */
/* These have to be defined to get PIC code correct */
/* 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, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* 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
/* i386 netbsd still uses old binutils that don't insert nops by default
when the .align directive demands to insert extra space in the text
segment. */
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
/* Profiling routines, partially copied from i386/osfrose.h. */
/* Redefine this to use %eax instead of %edx. */
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
{ \
if (flag_pic) \
{ \
fprintf (FILE, "\tcall mcount@PLT\n"); \
} \
else \
{ \
fprintf (FILE, "\tcall mcount\n"); \
} \
}
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0

View File

@ -0,0 +1,208 @@
/* OPENBSD_NATIVE is defined when gcc is integrated into the OpenBSD
source tree so it can be configured appropriately when using the
'wrapper' makefile with the GNU configure/build mechanism. The
'wrapper' method and use of OPENBSD_NATIVE is NOT recommended
while building cross-compilers. */
#ifdef OPENBSD_NATIVE
/* Look for the include files in the system-defined places. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
#undef GCC_INCLUDE_DIR
#define GCC_INCLUDE_DIR "/usr/include"
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
{ 0, 0, 0, 0 } \
}
/* 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
/* we want gcc.c to call mktemp for each file it generates. We would
prefer mkstemp() but we will take what we get. XXX busted */
#undef MKTEMP_EACH_FILE
/* Provide a CPP_SPEC appropriate for OpenBSD. Current we just deal with
the GCC option `-posix'. */
#undef CPP_SPEC
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
/* Provide an ASM_SPEC appropriate for OpenBSD. Currently we only deal
with the options for generating PIC code. */
#undef ASM_SPEC
#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k -K}"
/* Provide a LIB_SPEC appropriate for OpenBSD. Just select the appropriate
libc, depending on whether we're doing profiling. */
#undef LIB_SPEC
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
/* 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 \
"%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{R*} %{static:-Bstatic} %{assert*}"
/* This defines which switch letters take arguments. */
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG(CHAR) \
|| (CHAR) == 'R')
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Handle #pragma weak and #pragma pack. */
#define HANDLE_SYSV_PRAGMA
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the .type, .size, and .set directives.
These strings generally do not vary from one system running OpenBSD
to another, but if a given system 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 SET_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define SET_ASM_OP ".set"
/* This is how we tell the assembler that a symbol is weak. */
#undef ASM_WEAKEN_LABEL
#define ASM_WEAKEN_LABEL(FILE,NAME) \
do { fputs ("\t.globl\t", FILE); assemble_name (FILE, NAME); \
fputc ('\n', FILE); \
fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
fputc ('\n', FILE); } while (0)
/* 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(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
putc ('\n', FILE); \
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* 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)

View File

@ -0,0 +1,9 @@
LIBGCC1=libgcc1.null
CROSS_LIBGCC1=libgcc1.null
LIBGCC1_TEST=
# Don't run fixproto
STMP_FIXPROTO =
# Don't install "assert.h" in gcc. We use the one in glibc.
INSTALL_ASSERT_H =

View File

@ -0,0 +1,2 @@
MD5 (egcs-core-1.1b.tar.gz) = c3b0d8dc09e2616059da579aca0237e9
MD5 (egcs-g++-1.1b.tar.gz) = 84f2c99bbb51b65ba0b7544d18417c2a

View File

@ -0,0 +1,15 @@
--- gcc/configure.in.orig Fri Aug 28 02:19:04 1998
+++ gcc/configure.in Sat Sep 26 02:40:34 1998
@@ -868,6 +868,12 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ i[[34567]]86-*-openbsd*)
+ tm_file=i386/openbsd.h
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ tmake_file=t-openbsd
+ ;;
i[[34567]]86-*-coff*)
tm_file=i386/i386-coff.h
tmake_file=i386/t-i386bare

View File

@ -0,0 +1 @@
experimental version of the gcc C/C++ compiler, release flavor

View File

@ -0,0 +1,5 @@
This port is used for people who need egcs, the experimental gcc compiler
developped by cygnus. egcs fixes lots of bugs compared to gcc 2.8.1.
In exchange, it adds some new ones. It's pretty useful for C++ development.
For more details, refer to to http://egcs.cygnus.org/

200
lang/egcs-stable/pkg/PLIST Normal file
View File

@ -0,0 +1,200 @@
@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

60
lang/egcs/stable/Makefile Normal file
View File

@ -0,0 +1,60 @@
# OpenBSD makefile for: egcs
# Version required: egcs release 1.1b
# Date created: 25 sep 98
# Whom: Marc Espie
#
# $OpenBSD: Makefile,v 1.1.1.1 1998/09/26 08:53:03 espie Exp $
#
# This is a configuration file for egcs, stable release
# right now, we only configure i386, C and C++.
DISTNAME= egcs-1.1b
DIRECTORY=egcs/releases/egcs-1.1b/
DISTFILES= egcs-core-1.1b${EXTRACT_SUFX}
DISTFILES+= egcs-g++-1.1b${EXTRACT_SUFX}
CATEGORIES= lang
MASTER_SITES= ftp://egcs.cygnus.com/pub/${DIRECTORY}
MASTER_SITES+= ftp://ftp.lip6.fr/pub/${DIRECTORY}
MAINTAINER= Marc.Espie@openbsd.org
# Should be CONFIGURE_DEPENDS, if we had it
DEPENDS= ${PORTSDIR}/devel/autoconf:${PORTSDIR}/devel/autoconf
ONLY_FOR_ARCHS= i386
GNU_CONFIGURE= yes
USE_GMAKE= yes
MAKE_ENV="CFLAGS=-O2"
# don't make bootstrap if you're impatient/you know what you're doing
# use bootstrap-lean if you don't have room.
ALL_TARGET=bootstrap
# should remove --enable-shared for alpha
# use --enable-haifa- on some archs (alpha, sparc, pa-risc)
CONFIGURE_ARGS=--verbose --enable-shared --program-prefix=e
INSTALL_TARGET= install
# get openbsd configuration files where they should be
post-extract:
cp -R files/* ${WRKSRC}
rm -rf ${WRKSRC}/texinfo
# we should change libstdc++ name so that we will get the right one
post-patch:
CONFIGURE_SCRIPT=../source/configure
# rebuild configure file after patching, then move file around !!!
# XXX: don't try to autoconf the main configure file, it's not autoconf.
# + kludge to build in a separate directory.
pre-configure:
cd ${WRKSRC}/gcc && /usr/local/bin/autoconf
mv ${WRKSRC} ${WRKDIR}/source
mkdir ${WRKSRC}
.include <bsd.port.mk>

View File

@ -0,0 +1,87 @@
/* This goes away when the math-emulator is fixed */
#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */
/* This is tested by i386gas.h. */
#define YES_UNDERSCORES
#include <i386/gstabs.h>
/* Get perform_* macros to build libgcc.a. */
#include <i386/perform.h>
/* Get generic OpenBSD definitions. */
#include <openbsd.h>
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dunix -Di386 -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(i386) -Amachine(i386)"
#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
/* there are conflicting reports about whether this system uses
a different assembler syntax. wilson@cygnus.com says # is right. */
#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
/* The following macros are stolen from i386v4.h */
/* These have to be defined to get PIC code correct */
/* 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, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* 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
/* i386 netbsd still uses old binutils that don't insert nops by default
when the .align directive demands to insert extra space in the text
segment. */
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
/* Profiling routines, partially copied from i386/osfrose.h. */
/* Redefine this to use %eax instead of %edx. */
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
{ \
if (flag_pic) \
{ \
fprintf (FILE, "\tcall mcount@PLT\n"); \
} \
else \
{ \
fprintf (FILE, "\tcall mcount\n"); \
} \
}
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0

View File

@ -0,0 +1,208 @@
/* OPENBSD_NATIVE is defined when gcc is integrated into the OpenBSD
source tree so it can be configured appropriately when using the
'wrapper' makefile with the GNU configure/build mechanism. The
'wrapper' method and use of OPENBSD_NATIVE is NOT recommended
while building cross-compilers. */
#ifdef OPENBSD_NATIVE
/* Look for the include files in the system-defined places. */
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
#undef GCC_INCLUDE_DIR
#define GCC_INCLUDE_DIR "/usr/include"
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
{ 0, 0, 0, 0 } \
}
/* 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
/* we want gcc.c to call mktemp for each file it generates. We would
prefer mkstemp() but we will take what we get. XXX busted */
#undef MKTEMP_EACH_FILE
/* Provide a CPP_SPEC appropriate for OpenBSD. Current we just deal with
the GCC option `-posix'. */
#undef CPP_SPEC
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
/* Provide an ASM_SPEC appropriate for OpenBSD. Currently we only deal
with the options for generating PIC code. */
#undef ASM_SPEC
#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k -K}"
/* Provide a LIB_SPEC appropriate for OpenBSD. Just select the appropriate
libc, depending on whether we're doing profiling. */
#undef LIB_SPEC
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
/* 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 \
"%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{R*} %{static:-Bstatic} %{assert*}"
/* This defines which switch letters take arguments. */
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG(CHAR) \
|| (CHAR) == 'R')
/* We have atexit(3). */
#define HAVE_ATEXIT
/* Implicit library calls should use memcpy, not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
/* Handle #pragma weak and #pragma pack. */
#define HANDLE_SYSV_PRAGMA
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the .type, .size, and .set directives.
These strings generally do not vary from one system running OpenBSD
to another, but if a given system 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 SET_ASM_OP
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define SET_ASM_OP ".set"
/* This is how we tell the assembler that a symbol is weak. */
#undef ASM_WEAKEN_LABEL
#define ASM_WEAKEN_LABEL(FILE,NAME) \
do { fputs ("\t.globl\t", FILE); assemble_name (FILE, NAME); \
fputc ('\n', FILE); \
fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
fputc ('\n', FILE); } while (0)
/* 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(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
putc ('\n', FILE); \
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* 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)

View File

@ -0,0 +1,9 @@
LIBGCC1=libgcc1.null
CROSS_LIBGCC1=libgcc1.null
LIBGCC1_TEST=
# Don't run fixproto
STMP_FIXPROTO =
# Don't install "assert.h" in gcc. We use the one in glibc.
INSTALL_ASSERT_H =

View File

@ -0,0 +1,2 @@
MD5 (egcs-core-1.1b.tar.gz) = c3b0d8dc09e2616059da579aca0237e9
MD5 (egcs-g++-1.1b.tar.gz) = 84f2c99bbb51b65ba0b7544d18417c2a

View File

@ -0,0 +1,15 @@
--- gcc/configure.in.orig Fri Aug 28 02:19:04 1998
+++ gcc/configure.in Sat Sep 26 02:40:34 1998
@@ -868,6 +868,12 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
+ i[[34567]]86-*-openbsd*)
+ tm_file=i386/openbsd.h
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ tmake_file=t-openbsd
+ ;;
i[[34567]]86-*-coff*)
tm_file=i386/i386-coff.h
tmake_file=i386/t-i386bare

View File

@ -0,0 +1 @@
experimental version of the gcc C/C++ compiler, release flavor

View File

@ -0,0 +1,5 @@
This port is used for people who need egcs, the experimental gcc compiler
developped by cygnus. egcs fixes lots of bugs compared to gcc 2.8.1.
In exchange, it adds some new ones. It's pretty useful for C++ development.
For more details, refer to to http://egcs.cygnus.org/

200
lang/egcs/stable/pkg/PLIST Normal file
View File

@ -0,0 +1,200 @@
@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