basic ports for gcc 3.4 and gcc 4.0, restructured.

this should more or less compile and run tests on i386, but is not
guaranteed to do anything more yet...
This commit is contained in:
espie 2004-09-23 22:13:31 +00:00
parent 093f01c494
commit 18925bc515
42 changed files with 2584 additions and 0 deletions

154
lang/gcc/3.4/Makefile Normal file
View File

@ -0,0 +1,154 @@
# $OpenBSD: Makefile,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
ONLY_FOR_ARCHS= alpha i386 m68k sparc sparc64 powerpc vax
V=3.4.2
FULL_VERSION=$V
MAINTAINER= Marc Espie <espie@openbsd.org>
MAKE_GXX=Yes
MAKE_FORTRAN=Yes
MAKE_OBJC=Yes
MAKE_JAVA=Yes
#MAKE_ADA=Yes
MAKE_GXX?=No
MAKE_FORTRAN?=No
MAKE_OBJC?=No
MAKE_JAVA?=No
MAKE_ADA?=No
BUILD_DEPENDS= ::devel/autoconf/2.13
BUILD_DEPENDS+= ::devel/metaauto
SUBPACKAGE?=
.if ${MAKE_JAVA:L} == "yes"
. if !defined(PACKAGING) || ${SUBPACKAGE} == "-java"
LIB_DEPENDS+=gc::devel/boehm-gc
. endif
.endif
# This can be patched out, apart from java that wants a pure parser.
BUILD_DEPENDS+= :bison-*:devel/bison
.if ${MAKE_JAVA:L} == "yes"
MAKE_GXX=Yes
.endif
MULTI_PACKAGES=
# No sub packages description
DESCR=${PKGDIR}/DESCR
REGRESS_DEPENDS=::devel/dejagnu
# No way around it, java wants a pure parser
.if ${MAKE_JAVA:L} == "yes"
BUILD_DEPENDS+=:bison-*:devel/bison
.endif
DISTNAME= gcc-${FULL_VERSION}
DISTFILES= ${DISTNAME}.tar.bz2
MASTER_SITES= ${MASTER_SITE_GCC:=releases/gcc-${FULL_VERSION}/}
CONFIGURE_STYLE= gnu
MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC} ${WRKSRC}/gcc
LANGS=c
.if ${MAKE_GXX:L} == "yes"
LANGS:=${LANGS},c++
MULTI_PACKAGES+=-c++ -estdc
.endif
.if ${MAKE_FORTRAN:L} == "yes"
LANGS:=${LANGS},f77
MULTI_PACKAGES+=-g77
.endif
.if ${MAKE_OBJC:L} == "yes"
LANGS:=${LANGS},objc
MULTI_PACKAGES+=-objc
.endif
.if ${MAKE_JAVA:L} == "yes"
LANGS:=${LANGS},java
MULTI_PACKAGES+=-java
CONFIGURE_ARGS+=--enable-java-gc=system-boehm
.endif
.if ${MAKE_ADA:L} == "yes"
LANGS:=${LANGS},ada
MULTI_PACKAGES+=-ada
CONFIGURE_ENV=ADAC=${LOCALBASE}/bin/egcc GNATBIND=${LOCALBASE}/bin/gnatbind
MAKE_ENV=ADAC=${LOCALBASE}/bin/egcc GNATBIND=${LOCALBASE}/bin/gnatbind
CC=${LOCALBASE}/bin/egcc
BUILD_DEPENDS+=:gnat-*:lang/egcs/stable,-ada
.endif
CONFIGURE_ENV+=am_cv_func_iconv=no
# Note: the configure target passes CFLAGS to the configure script anyways.
CFLAGS=-O2 -g
CONFIGURE_ARGS= \
--verbose \
--program-transform-name=s,^,e, \
--disable-nls \
--with-system-zlib \
--enable-languages=${LANGS}
# This is needed, as internal cpp is no longer compatible with the
# visible beast
CONFIGURE_ARGS+=--enable-cpp
.if ${MAKE_JAVA:L} == "yes"
CONFIGURE_ARGS+=--enable-sjlj-exceptions
.endif
# if you wish to try your luck
#CONFIGURE_ARGS+= --enable-threads=posix
CONFIGURE_ARGS += --with-gnu-as
CONFIGURE_ARGS += --with-gnu-ld
CONFIGURE_ARGS += ${CONFIGURE_SHARED}
SEPARATE_BUILD=concurrent
USE_GMAKE= yes
# you shouldn't skip bootstrap unless you know what you're doing
# use bootstrap-lean if you're pressed for space
ALL_TARGET=bootstrap
MAKE_FLAGS=libstdc___la_LDFLAGS='-version-info 31:0:0 -lm'
.if ${MACHINE_ARCH} == "m68k" || ${MACHINE_ARCH} == "sparc"
PKG_ARGS+=-DPIC=1
.else
PKG_ARGS+=-DPIC=0
.endif
.if ${MACHINE_ARCH} == "powerpc"
PKG_ARGS+=-DPPC=1
.else
PKG_ARGS+=-DPPC=0
.endif
.if defined(PACKAGING) && defined(SUBPACKAGE)
. if !empty(SUBPACKAGE) && ${SUBPACKAGE} != "-estdc"
RUN_DEPENDS+=::${PKGPATH}
. endif
. if ${SUBPACKAGE} == "-c++"
RUN_DEPENDS+=::${PKGPATH},-estdc
. endif
.endif
.include <bsd.port.mk>

View File

@ -0,0 +1,20 @@
$OpenBSD: patch-gcc_config_gcc,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/config.gcc.orig Mon Sep 13 14:27:59 2004
+++ gcc/config.gcc Mon Sep 13 14:31:26 2004
@@ -961,11 +961,11 @@ x86_64-*-netbsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
;;
i[34567]86-*-openbsd*)
- tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
- # needed to unconfuse gdb
- tmake_file="t-libc-ok t-openbsd i386/t-openbsd"
- # we need collect2 until our bug is fixed...
- use_collect2=yes
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
+ tm_file="${tm_file} openbsd.h i386/openbsdelf.h"
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
;;
i[34567]86-*-coff*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h"

View File

@ -0,0 +1,139 @@
$OpenBSD: patch-gcc_config_i386_openbsdelf_h,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/config/i386/openbsdelf.h.orig Mon Sep 13 14:37:10 2004
+++ gcc/config/i386/openbsdelf.h Mon Sep 13 14:27:40 2004
@@ -0,0 +1,135 @@
+
+/* Configuration for an OpenBSD i386 target.
+
+ Copyright (C) 1999 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. */
+
+/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
+ libraries compiled with the native cc, so undef it. */
+#undef NO_DOLLAR_IN_LABEL
+
+/* Override the default comment-starter of "/". */
+#undef ASM_COMMENT_START
+#define ASM_COMMENT_START "#"
+
+
+/* This goes away when the math-emulator is fixed */
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT \
+ (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
+
+/* Run-time target specifications */
+
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ OPENBSD_OS_CPP_BUILTINS_ELF(); \
+ } \
+ while (0)
+
+/* As an elf system, we need crtbegin/crtend stuff. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+
+/* Layout of source language data types. */
+
+/* This must 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_TYPE_SIZE
+#define WCHAR_TYPE_SIZE BITS_PER_WORD
+
+/* Assembler format: overall framework. */
+
+#undef ASM_APP_ON
+#define ASM_APP_ON "#APP\n"
+
+#undef ASM_APP_OFF
+#define ASM_APP_OFF "#NO_APP\n"
+
+#undef SET_ASM_OP
+#define SET_ASM_OP "\t.set\t"
+
+/* The following macros were originally stolen from i386v4.h.
+ These have to be defined to get PIC code correct. */
+
+/* Assembler format: dispatch tables. */
+
+/* Assembler format: sections. */
+
+/* Stack & calling: aggregate returns. */
+
+/* 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
+
+/* Assembler format: alignment output. */
+
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
+ if ((LOG) != 0) {\
+ if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+#endif
+
+/* Stack & calling: profiling. */
+
+/* OpenBSD's profiler recovers all information from the stack pointer.
+ The icky part is not here, but in machine/profile.h. */
+#undef FUNCTION_PROFILER
+#define FUNCTION_PROFILER(FILE, LABELNO) \
+ fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE);
+
+/* Assembler format: exception region output. */
+
+/* our configuration still doesn't handle dwarf2 correctly */
+#define DWARF2_UNWIND_INFO 0
+
+/* Assembler format: alignment output. */
+
+/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */
+
+/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
+ %{shared:-shared} %{R*} \
+ %{static:-Bstatic} \
+ %{!static:-Bdynamic} \
+ %{assert*} \
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
+
+#define OBSD_HAS_CORRECT_SPECS
+
+/* pick up defines for mprotect (used in TRANSFER_FROM_TRANPOLINE) */
+#include <sys/types.h>
+#include <sys/mman.h>

View File

@ -0,0 +1,84 @@
$OpenBSD: patch-gcc_config_openbsd_h,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/config/openbsd.h.orig Mon Sep 13 14:31:45 2004
+++ gcc/config/openbsd.h Mon Sep 13 14:35:31 2004
@@ -52,29 +52,60 @@ Boston, MA 02111-1307, USA. */
#ifdef OPENBSD_NATIVE
-#undef GCC_INCLUDE_DIR
-#define GCC_INCLUDE_DIR "/usr/include"
-
/* The compiler is configured with ONLY the gcc/g++ standard headers. */
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
- { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1 }, \
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1 }, \
+ { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0 }, \
{ 0, 0, 0, 0 } \
}
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
-#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
+#undef STANDARD_STARTFILE_PREFIX
+#define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
#endif
/* Controlling the compilation driver. */
+/* TARGET_OS_CPP_BUILTINS() common to all OpenBSD targets. */
+#define OPENBSD_OS_CPP_BUILTINS_COMMON() \
+ do \
+ { \
+ builtin_define ("__OpenBSD__"); \
+ builtin_define ("__unix__"); \
+ builtin_define ("__ANSI_COMPAT"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=bsd"); \
+ builtin_assert ("system=OpenBSD"); \
+ } \
+ while (0)
+/* TARGET_OS_CPP_BUILTINS() common to all OpenBSD ELF targets. */
+#define OPENBSD_OS_CPP_BUILTINS_ELF() \
+ do \
+ { \
+ OPENBSD_OS_CPP_BUILTINS_COMMON(); \
+ builtin_define ("__ELF__"); \
+ } \
+ while (0)
+
+/* TARGET_OS_CPP_BUILTINS() common to all LP64 OpenBSD targets. */
+#define OPENBSD_OS_CPP_BUILTINS_LP64() \
+ do \
+ { \
+ builtin_define ("_LP64"); \
+ builtin_define ("__LP64__"); \
+ } \
+ while (0)
+
+
/* CPP_SPEC appropriate for OpenBSD. We deal with -posix and -pthread.
- XXX the way threads are handling currently is not very satisfying,
+ XXX the way threads are handled currently is not very satisfying,
since all code must be compiled with -pthread to work.
This two-stage defines makes it easy to pick that for targets that
have subspecs. */
@@ -84,10 +115,9 @@ Boston, MA 02111-1307, USA. */
#define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
#endif
-/* LIB_SPEC appropriate for OpenBSD. Select the appropriate libc,
- depending on profiling and threads. Basically,
- -lc(_r)?(_p)?, select _r for threads, and _p for p or pg. */
-#define OBSD_LIB_SPEC "%{!shared:-lc%{pthread:_r}%{p:_p}%{!p:%{pg:_p}}}"
+/* LIB_SPEC appropriate for OpenBSD. Include -lpthread if -pthread is
+ specified on the command line. */
+#define OBSD_LIB_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
#ifndef OBSD_HAS_CORRECT_SPECS

0
lang/gcc/3.4/pkg/DESCR Normal file
View File

View File

@ -0,0 +1,3 @@
@comment $OpenBSD: PFRAG.shared,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
@lib lib/libg2c.so.0.0
@lib lib/libobjc.so.1.0

341
lang/gcc/3.4/pkg/PLIST Normal file
View File

@ -0,0 +1,341 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
%%SHARED%%
bin/ec++
bin/ecpp
bin/eg++
bin/eg77
bin/egcc
bin/egccbug
bin/egcj
bin/egcjh
bin/egcov
bin/egrepjar
bin/ejar
bin/ejcf-dump
bin/ejv-scan
bin/${CONFIG}-ec++
bin/${CONFIG}-eg++
bin/${CONFIG}-egcc
bin/${CONFIG}-egcj
bin/${CONFIG}-egcjh
bin/${CONFIG}-gcc-${V}
include/c++/
include/c++/${V}/
include/c++/${V}/algorithm
include/c++/${V}/backward/
include/c++/${V}/backward/algo.h
include/c++/${V}/backward/algobase.h
include/c++/${V}/backward/alloc.h
include/c++/${V}/backward/backward_warning.h
include/c++/${V}/backward/bvector.h
include/c++/${V}/backward/complex.h
include/c++/${V}/backward/defalloc.h
include/c++/${V}/backward/deque.h
include/c++/${V}/backward/fstream.h
include/c++/${V}/backward/function.h
include/c++/${V}/backward/hash_map.h
include/c++/${V}/backward/hash_set.h
include/c++/${V}/backward/hashtable.h
include/c++/${V}/backward/heap.h
include/c++/${V}/backward/iomanip.h
include/c++/${V}/backward/iostream.h
include/c++/${V}/backward/istream.h
include/c++/${V}/backward/iterator.h
include/c++/${V}/backward/list.h
include/c++/${V}/backward/map.h
include/c++/${V}/backward/multimap.h
include/c++/${V}/backward/multiset.h
include/c++/${V}/backward/new.h
include/c++/${V}/backward/ostream.h
include/c++/${V}/backward/pair.h
include/c++/${V}/backward/queue.h
include/c++/${V}/backward/rope.h
include/c++/${V}/backward/set.h
include/c++/${V}/backward/slist.h
include/c++/${V}/backward/stack.h
include/c++/${V}/backward/stream.h
include/c++/${V}/backward/streambuf.h
include/c++/${V}/backward/strstream
include/c++/${V}/backward/tempbuf.h
include/c++/${V}/backward/tree.h
include/c++/${V}/backward/vector.h
include/c++/${V}/bits/
include/c++/${V}/bits/allocator.h
include/c++/${V}/bits/atomicity.h
include/c++/${V}/bits/basic_ios.h
include/c++/${V}/bits/basic_ios.tcc
include/c++/${V}/bits/basic_string.h
include/c++/${V}/bits/basic_string.tcc
include/c++/${V}/bits/boost_concept_check.h
include/c++/${V}/bits/char_traits.h
include/c++/${V}/bits/cmath.tcc
include/c++/${V}/bits/codecvt.h
include/c++/${V}/bits/concept_check.h
include/c++/${V}/bits/concurrence.h
include/c++/${V}/bits/cpp_type_traits.h
include/c++/${V}/bits/deque.tcc
include/c++/${V}/bits/fstream.tcc
include/c++/${V}/bits/functexcept.h
include/c++/${V}/bits/gslice.h
include/c++/${V}/bits/gslice_array.h
include/c++/${V}/bits/indirect_array.h
include/c++/${V}/bits/ios_base.h
include/c++/${V}/bits/istream.tcc
include/c++/${V}/bits/list.tcc
include/c++/${V}/bits/locale_classes.h
include/c++/${V}/bits/locale_facets.h
include/c++/${V}/bits/locale_facets.tcc
include/c++/${V}/bits/localefwd.h
include/c++/${V}/bits/mask_array.h
include/c++/${V}/bits/ostream.tcc
include/c++/${V}/bits/postypes.h
include/c++/${V}/bits/slice_array.h
include/c++/${V}/bits/sstream.tcc
include/c++/${V}/bits/stl_algo.h
include/c++/${V}/bits/stl_algobase.h
include/c++/${V}/bits/stl_bvector.h
include/c++/${V}/bits/stl_construct.h
include/c++/${V}/bits/stl_deque.h
include/c++/${V}/bits/stl_function.h
include/c++/${V}/bits/stl_heap.h
include/c++/${V}/bits/stl_iterator.h
include/c++/${V}/bits/stl_iterator_base_funcs.h
include/c++/${V}/bits/stl_iterator_base_types.h
include/c++/${V}/bits/stl_list.h
include/c++/${V}/bits/stl_map.h
include/c++/${V}/bits/stl_multimap.h
include/c++/${V}/bits/stl_multiset.h
include/c++/${V}/bits/stl_numeric.h
include/c++/${V}/bits/stl_pair.h
include/c++/${V}/bits/stl_queue.h
include/c++/${V}/bits/stl_raw_storage_iter.h
include/c++/${V}/bits/stl_relops.h
include/c++/${V}/bits/stl_set.h
include/c++/${V}/bits/stl_stack.h
include/c++/${V}/bits/stl_tempbuf.h
include/c++/${V}/bits/stl_threads.h
include/c++/${V}/bits/stl_tree.h
include/c++/${V}/bits/stl_uninitialized.h
include/c++/${V}/bits/stl_vector.h
include/c++/${V}/bits/stream_iterator.h
include/c++/${V}/bits/streambuf.tcc
include/c++/${V}/bits/streambuf_iterator.h
include/c++/${V}/bits/stringfwd.h
include/c++/${V}/bits/type_traits.h
include/c++/${V}/bits/valarray_after.h
include/c++/${V}/bits/valarray_array.h
include/c++/${V}/bits/valarray_array.tcc
include/c++/${V}/bits/valarray_before.h
include/c++/${V}/bits/vector.tcc
include/c++/${V}/bitset
include/c++/${V}/cassert
include/c++/${V}/cctype
include/c++/${V}/cerrno
include/c++/${V}/cfloat
include/c++/${V}/ciso646
include/c++/${V}/climits
include/c++/${V}/clocale
include/c++/${V}/cmath
include/c++/${V}/complex
include/c++/${V}/csetjmp
include/c++/${V}/csignal
include/c++/${V}/cstdarg
include/c++/${V}/cstddef
include/c++/${V}/cstdio
include/c++/${V}/cstdlib
include/c++/${V}/cstring
include/c++/${V}/ctime
include/c++/${V}/cwchar
include/c++/${V}/cwctype
include/c++/${V}/cxxabi.h
include/c++/${V}/debug/
include/c++/${V}/debug/bitset
include/c++/${V}/debug/debug.h
include/c++/${V}/debug/deque
include/c++/${V}/debug/formatter.h
include/c++/${V}/debug/hash_map
include/c++/${V}/debug/hash_map.h
include/c++/${V}/debug/hash_multimap.h
include/c++/${V}/debug/hash_multiset.h
include/c++/${V}/debug/hash_set
include/c++/${V}/debug/hash_set.h
include/c++/${V}/debug/list
include/c++/${V}/debug/map
include/c++/${V}/debug/map.h
include/c++/${V}/debug/multimap.h
include/c++/${V}/debug/multiset.h
include/c++/${V}/debug/safe_base.h
include/c++/${V}/debug/safe_iterator.h
include/c++/${V}/debug/safe_iterator.tcc
include/c++/${V}/debug/safe_sequence.h
include/c++/${V}/debug/set
include/c++/${V}/debug/set.h
include/c++/${V}/debug/string
include/c++/${V}/debug/vector
include/c++/${V}/deque
include/c++/${V}/exception
include/c++/${V}/exception_defines.h
include/c++/${V}/ext/
include/c++/${V}/ext/algorithm
include/c++/${V}/ext/bitmap_allocator.h
include/c++/${V}/ext/debug_allocator.h
include/c++/${V}/ext/demangle.h
include/c++/${V}/ext/enc_filebuf.h
include/c++/${V}/ext/functional
include/c++/${V}/ext/hash_fun.h
include/c++/${V}/ext/hash_map
include/c++/${V}/ext/hash_set
include/c++/${V}/ext/hashtable.h
include/c++/${V}/ext/iterator
include/c++/${V}/ext/malloc_allocator.h
include/c++/${V}/ext/memory
include/c++/${V}/ext/mt_allocator.h
include/c++/${V}/ext/new_allocator.h
include/c++/${V}/ext/numeric
include/c++/${V}/ext/pod_char_traits.h
include/c++/${V}/ext/pool_allocator.h
include/c++/${V}/ext/rb_tree
include/c++/${V}/ext/rope
include/c++/${V}/ext/ropeimpl.h
include/c++/${V}/ext/slist
include/c++/${V}/ext/stdio_filebuf.h
include/c++/${V}/ext/stdio_sync_filebuf.h
include/c++/${V}/fstream
include/c++/${V}/functional
include/c++/${V}/${CONFIG}/
include/c++/${V}/${CONFIG}/bits/
include/c++/${V}/${CONFIG}/bits/atomic_word.h
include/c++/${V}/${CONFIG}/bits/basic_file.h
include/c++/${V}/${CONFIG}/bits/c++allocator.h
include/c++/${V}/${CONFIG}/bits/c++config.h
include/c++/${V}/${CONFIG}/bits/c++io.h
include/c++/${V}/${CONFIG}/bits/c++locale.h
include/c++/${V}/${CONFIG}/bits/codecvt_specializations.h
include/c++/${V}/${CONFIG}/bits/ctype_base.h
include/c++/${V}/${CONFIG}/bits/ctype_inline.h
include/c++/${V}/${CONFIG}/bits/ctype_noninline.h
include/c++/${V}/${CONFIG}/bits/gthr-default.h
include/c++/${V}/${CONFIG}/bits/gthr-posix.h
include/c++/${V}/${CONFIG}/bits/gthr-single.h
include/c++/${V}/${CONFIG}/bits/gthr.h
include/c++/${V}/${CONFIG}/bits/messages_members.h
include/c++/${V}/${CONFIG}/bits/os_defines.h
include/c++/${V}/${CONFIG}/bits/stdc++.h.gch/
include/c++/${V}/${CONFIG}/bits/stdc++.h.gch/O0g
include/c++/${V}/${CONFIG}/bits/stdc++.h.gch/O2g
include/c++/${V}/${CONFIG}/bits/time_members.h
include/c++/${V}/iomanip
include/c++/${V}/ios
include/c++/${V}/iosfwd
include/c++/${V}/iostream
include/c++/${V}/istream
include/c++/${V}/iterator
include/c++/${V}/limits
include/c++/${V}/list
include/c++/${V}/locale
include/c++/${V}/map
include/c++/${V}/memory
include/c++/${V}/new
include/c++/${V}/numeric
include/c++/${V}/ostream
include/c++/${V}/queue
include/c++/${V}/set
include/c++/${V}/sstream
include/c++/${V}/stack
include/c++/${V}/stdexcept
include/c++/${V}/streambuf
include/c++/${V}/string
include/c++/${V}/typeinfo
include/c++/${V}/utility
include/c++/${V}/valarray
include/c++/${V}/vector
@info info/cpp.info
@info info/cppinternals.info
@info info/fastjar.info
@info info/g77.info
@info info/gcc.info
@info info/gccinstall.info
@info info/gccint.info
@info info/gcj.info
lib/gcc/
lib/gcc/${CONFIG}/
lib/gcc/${CONFIG}/${V}/
lib/gcc/${CONFIG}/${V}/include/
lib/gcc/${CONFIG}/${V}/include/README
lib/gcc/${CONFIG}/${V}/include/g2c.h
lib/gcc/${CONFIG}/${V}/include/limits.h
lib/gcc/${CONFIG}/${V}/include/math.h
lib/gcc/${CONFIG}/${V}/include/objc/
lib/gcc/${CONFIG}/${V}/include/objc/NXConstStr.h
lib/gcc/${CONFIG}/${V}/include/objc/Object.h
lib/gcc/${CONFIG}/${V}/include/objc/Protocol.h
lib/gcc/${CONFIG}/${V}/include/objc/encoding.h
lib/gcc/${CONFIG}/${V}/include/objc/hash.h
lib/gcc/${CONFIG}/${V}/include/objc/objc-api.h
lib/gcc/${CONFIG}/${V}/include/objc/objc-list.h
lib/gcc/${CONFIG}/${V}/include/objc/objc.h
lib/gcc/${CONFIG}/${V}/include/objc/sarray.h
lib/gcc/${CONFIG}/${V}/include/objc/thr.h
lib/gcc/${CONFIG}/${V}/include/objc/typedstream.h
lib/gcc/${CONFIG}/${V}/include/rpc/
lib/gcc/${CONFIG}/${V}/include/rpc/rpc_des.h
lib/gcc/${CONFIG}/${V}/include/rpc/svc.h
lib/gcc/${CONFIG}/${V}/include/stddef.h
lib/gcc/${CONFIG}/${V}/include/stdio.h
lib/gcc/${CONFIG}/${V}/include/stdlib.h
lib/gcc/${CONFIG}/${V}/include/sys/
lib/gcc/${CONFIG}/${V}/include/sys/limits.h
lib/gcc/${CONFIG}/${V}/include/sys/types.h
lib/gcc/${CONFIG}/${V}/include/syslimits.h
lib/gcc/${CONFIG}/${V}/include/unistd.h
lib/gcc/${CONFIG}/${V}/install-tools/
lib/gcc/${CONFIG}/${V}/install-tools/gsyslimits.h
lib/gcc/${CONFIG}/${V}/install-tools/include/
lib/gcc/${CONFIG}/${V}/install-tools/include/README
lib/gcc/${CONFIG}/${V}/install-tools/include/limits.h
lib/gcc/${CONFIG}/${V}/install-tools/mkheaders.conf
lib/gcc/${CONFIG}/${V}/libgcc.a
lib/gcc/${CONFIG}/${V}/libgcov.a
lib/gcc/${CONFIG}/${V}/specs
lib/libfrtbegin.a
lib/libg2c.a
lib/libg2c.la
lib/libiberty.a
lib/libobjc.a
lib/libobjc.la
lib/libstdc++.a
lib/libstdc++.la
lib/libsupc++.a
lib/libsupc++.la
libexec/gcc/
libexec/gcc/${CONFIG}/
libexec/gcc/${CONFIG}/${V}/
libexec/gcc/${CONFIG}/${V}/cc1
libexec/gcc/${CONFIG}/${V}/cc1obj
libexec/gcc/${CONFIG}/${V}/cc1plus
libexec/gcc/${CONFIG}/${V}/collect2
libexec/gcc/${CONFIG}/${V}/f771
libexec/gcc/${CONFIG}/${V}/install-tools/
libexec/gcc/${CONFIG}/${V}/install-tools/fixinc.sh
libexec/gcc/${CONFIG}/${V}/install-tools/fixincl
libexec/gcc/${CONFIG}/${V}/install-tools/mkheaders
libexec/gcc/${CONFIG}/${V}/jc1
libexec/gcc/${CONFIG}/${V}/jvgenmain
@man man/man1/ecpp.1
@man man/man1/eg++.1
@man man/man1/eg77.1
@man man/man1/egcc.1
@man man/man1/egcj.1
@man man/man1/egcjh.1
@man man/man1/egcov.1
@man man/man1/egij.1
@man man/man1/egrepjar.1
@man man/man1/ejar.1
@man man/man1/ejcf-dump.1
@man man/man1/ejv-convert.1
@man man/man1/ejv-scan.1
@man man/man1/ermic.1
@man man/man1/ermiregistry.1
@man man/man7/fsf-funding.7
@man man/man7/gfdl.7
@man man/man7/gpl.7

160
lang/gcc/4.0/Makefile Normal file
View File

@ -0,0 +1,160 @@
# $OpenBSD: Makefile,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
ONLY_FOR_ARCHS= alpha i386 m68k sparc sparc64 powerpc vax
V=4.0.0
FULL_VERSION=4.0-20040912
MAINTAINER= Marc Espie <espie@openbsd.org>
MAKE_GXX=Yes
#MAKE_FORTRAN=Yes
MAKE_OBJC=Yes
#MAKE_JAVA=Yes
#MAKE_ADA=Yes
MAKE_GXX?=No
MAKE_FORTRAN?=No
MAKE_OBJC?=No
MAKE_JAVA?=No
MAKE_ADA?=No
BUILD_DEPENDS= ::devel/autoconf/2.13
BUILD_DEPENDS+= ::devel/autoconf/2.59
BUILD_DEPENDS+= ::devel/metaauto
SUBPACKAGE?=
.if ${MAKE_JAVA:L} == "yes"
. if !defined(PACKAGING) || ${SUBPACKAGE} == "-java"
LIB_DEPENDS+=gc::devel/boehm-gc
. endif
.endif
# This can be patched out, apart from java that wants a pure parser.
BUILD_DEPENDS+= :bison-*:devel/bison
.if ${MAKE_JAVA:L} == "yes"
MAKE_GXX=Yes
.endif
MULTI_PACKAGES=
# No sub packages description
DESCR=${PKGDIR}/DESCR
REGRESS_DEPENDS=::devel/dejagnu
# No way around it, java wants a pure parser
.if ${MAKE_JAVA:L} == "yes"
BUILD_DEPENDS+=:bison-*:devel/bison
.endif
DISTNAME= gcc-${FULL_VERSION}
DISTFILES= ${DISTNAME}.tar.bz2
MASTER_SITES= ${MASTER_SITE_GCC:=snapshots/$(FULL_VERSION)/}
CONFIGURE_STYLE= gnu
MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC} ${WRKSRC}/gcc
LANGS=c
.if ${MAKE_GXX:L} == "yes"
LANGS:=${LANGS},c++
#MULTI_PACKAGES+=-c++ -estdc
.endif
.if ${MAKE_FORTRAN:L} == "yes"
LANGS:=${LANGS},f95
#MULTI_PACKAGES+=-g95
.endif
.if ${MAKE_OBJC:L} == "yes"
LANGS:=${LANGS},objc
#MULTI_PACKAGES+=-objc
.endif
.if ${MAKE_JAVA:L} == "yes"
LANGS:=${LANGS},java
#MULTI_PACKAGES+=-java
CONFIGURE_ARGS+=--enable-java-gc=system-boehm
.endif
.if ${MAKE_ADA:L} == "yes"
LANGS:=${LANGS},ada
#MULTI_PACKAGES+=-ada
CONFIGURE_ENV=ADAC=${LOCALBASE}/bin/egcc GNATBIND=${LOCALBASE}/bin/gnatbind
MAKE_ENV=ADAC=${LOCALBASE}/bin/egcc GNATBIND=${LOCALBASE}/bin/gnatbind
CC=${LOCALBASE}/bin/egcc
BUILD_DEPENDS+=:gnat-*:lang/egcs/stable,-ada
.endif
CONFIGURE_ENV+=am_cv_func_iconv=no
CONFIGURE_ENV+=ac_cv_prog_CONFIGURED_M4=/usr/bin/m4
# Note: the configure target passes CFLAGS to the configure script anyways.
CFLAGS=-O2 -g
CONFIGURE_ARGS= \
--verbose \
--program-transform-name=s,^,e, \
--disable-nls \
--disable-checking \
--with-system-zlib \
--enable-languages=${LANGS}
# This is needed, as internal cpp is no longer compatible with the
# visible beast
CONFIGURE_ARGS+=--enable-cpp
.if ${MAKE_JAVA:L} == "yes"
CONFIGURE_ARGS+=--enable-sjlj-exceptions
.endif
# if you wish to try your luck
#CONFIGURE_ARGS+= --enable-threads=posix
CONFIGURE_ARGS += --with-gnu-as
CONFIGURE_ARGS += --with-gnu-ld
CONFIGURE_ARGS += ${CONFIGURE_SHARED}
post-patch:
cd ${WRKDIST}/libstdc++-v3 && AUTOCONF_VERSION=2.59 autoconf
SEPARATE_BUILD=concurrent
USE_GMAKE= yes
# you shouldn't skip bootstrap unless you know what you're doing
# use bootstrap-lean if you're pressed for space
ALL_TARGET=bootstrap
MAKE_FLAGS=libstdc___la_LDFLAGS='-version-info 31:0:0 -lm'
.if ${MACHINE_ARCH} == "m68k" || ${MACHINE_ARCH} == "sparc"
PKG_ARGS+=-DPIC=1
.else
PKG_ARGS+=-DPIC=0
.endif
.if ${MACHINE_ARCH} == "powerpc"
PKG_ARGS+=-DPPC=1
.else
PKG_ARGS+=-DPPC=0
.endif
.if defined(PACKAGING) && defined(SUBPACKAGE)
. if !empty(SUBPACKAGE) && ${SUBPACKAGE} != "-estdc"
RUN_DEPENDS+=::${PKGPATH}
. endif
. if ${SUBPACKAGE} == "-c++"
RUN_DEPENDS+=::${PKGPATH},-estdc
. endif
.endif
.include <bsd.port.mk>

3
lang/gcc/4.0/distinfo Normal file
View File

@ -0,0 +1,3 @@
MD5 (gcc/gcc-4.0-20040912.tar.bz2) = ee7c5f928b0976f5b17d0016c9e7e99f
RMD160 (gcc/gcc-4.0-20040912.tar.bz2) = 3483a0979999e47a6be7cadb0ec31c399739b16a
SHA1 (gcc/gcc-4.0-20040912.tar.bz2) = 48e23960a7cf07da50f94df5b8f8df79879b33a0

View File

@ -0,0 +1,245 @@
$OpenBSD: patch-gcc_c-aux-info_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/c-aux-info.c.orig Tue Sep 14 08:45:13 2004
+++ gcc/c-aux-info.c Tue Sep 14 08:47:34 2004
@@ -91,14 +91,14 @@ affix_data_type (const char *param)
add a blank after the data-type of course. */
if (p == type_or_decl)
- return concat (data_type, " ", type_or_decl, NULL);
+ return concat (data_type, " ", type_or_decl, (void *)0);
saved = *p;
*p = '\0';
- qualifiers_then_data_type = concat (type_or_decl, data_type, NULL);
+ qualifiers_then_data_type = concat (type_or_decl, data_type, (void *)0);
*p = saved;
return reconcat (qualifiers_then_data_type,
- qualifiers_then_data_type, " ", p, NULL);
+ qualifiers_then_data_type, " ", p, (void *)0);
}
/* Given a tree node which represents some "function type", generate the
@@ -123,13 +123,13 @@ gen_formal_list_for_type (tree fntype, f
const char *this_type;
if (*formal_list)
- formal_list = concat (formal_list, ", ", NULL);
+ formal_list = concat (formal_list, ", ", (void *)0);
this_type = gen_type ("", TREE_VALUE (formal_type), ansi);
formal_list
= ((strlen (this_type))
- ? concat (formal_list, affix_data_type (this_type), NULL)
- : concat (formal_list, data_type, NULL));
+ ? concat (formal_list, affix_data_type (this_type), (void *)0)
+ : concat (formal_list, data_type, (void *)0));
formal_type = TREE_CHAIN (formal_type);
}
@@ -178,10 +178,10 @@ gen_formal_list_for_type (tree fntype, f
petered out to a NULL (i.e. without being terminated by a
void_type_node) then we need to tack on an ellipsis. */
if (!formal_type)
- formal_list = concat (formal_list, ", ...", NULL);
+ formal_list = concat (formal_list, ", ...", (void *)0);
}
- return concat (" (", formal_list, ")", NULL);
+ return concat (" (", formal_list, ")", (void *)0);
}
/* For the generation of an ANSI prototype for a function definition, we have
@@ -237,23 +237,23 @@ gen_formal_list_for_func_def (tree fndec
const char *this_formal;
if (*formal_list && ((style == ansi) || (style == k_and_r_names)))
- formal_list = concat (formal_list, ", ", NULL);
+ formal_list = concat (formal_list, ", ", (void *)0);
this_formal = gen_decl (formal_decl, 0, style);
if (style == k_and_r_decls)
- formal_list = concat (formal_list, this_formal, "; ", NULL);
+ formal_list = concat (formal_list, this_formal, "; ", (void *)0);
else
- formal_list = concat (formal_list, this_formal, NULL);
+ formal_list = concat (formal_list, this_formal, (void *)0);
formal_decl = TREE_CHAIN (formal_decl);
}
if (style == ansi)
{
if (!DECL_ARGUMENTS (fndecl))
- formal_list = concat (formal_list, "void", NULL);
+ formal_list = concat (formal_list, "void", (void *)0);
if (deserves_ellipsis (TREE_TYPE (fndecl)))
- formal_list = concat (formal_list, ", ...", NULL);
+ formal_list = concat (formal_list, ", ...", (void *)0);
}
if ((style == ansi) || (style == k_and_r_names))
- formal_list = concat (" (", formal_list, ")", NULL);
+ formal_list = concat (" (", formal_list, ")", (void *)0);
return formal_list;
}
@@ -312,14 +312,14 @@ gen_type (const char *ret_val, tree t, f
{
case POINTER_TYPE:
if (TYPE_READONLY (t))
- ret_val = concat ("const ", ret_val, NULL);
+ ret_val = concat ("const ", ret_val, (void *)0);
if (TYPE_VOLATILE (t))
- ret_val = concat ("volatile ", ret_val, NULL);
+ ret_val = concat ("volatile ", ret_val, (void *)0);
- ret_val = concat ("*", ret_val, NULL);
+ ret_val = concat ("*", ret_val, (void *)0);
if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE || TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE)
- ret_val = concat ("(", ret_val, ")", NULL);
+ ret_val = concat ("(", ret_val, ")", (void *)0);
ret_val = gen_type (ret_val, TREE_TYPE (t), style);
@@ -327,17 +327,17 @@ gen_type (const char *ret_val, tree t, f
case ARRAY_TYPE:
if (!COMPLETE_TYPE_P (t) || TREE_CODE (TYPE_SIZE (t)) != INTEGER_CST)
- ret_val = gen_type (concat (ret_val, "[]", NULL),
+ ret_val = gen_type (concat (ret_val, "[]", (void *)0),
TREE_TYPE (t), style);
else if (int_size_in_bytes (t) == 0)
- ret_val = gen_type (concat (ret_val, "[0]", NULL),
+ ret_val = gen_type (concat (ret_val, "[0]", (void *)0),
TREE_TYPE (t), style);
else
{
int size = (int_size_in_bytes (t) / int_size_in_bytes (TREE_TYPE (t)));
char buff[10];
sprintf (buff, "[%d]", size);
- ret_val = gen_type (concat (ret_val, buff, NULL),
+ ret_val = gen_type (concat (ret_val, buff, (void *)0),
TREE_TYPE (t), style);
}
break;
@@ -345,7 +345,7 @@ gen_type (const char *ret_val, tree t, f
case FUNCTION_TYPE:
ret_val = gen_type (concat (ret_val,
gen_formal_list_for_type (t, style),
- NULL),
+ (void *)0),
TREE_TYPE (t), style);
break;
@@ -374,13 +374,13 @@ gen_type (const char *ret_val, tree t, f
while (chain_p)
{
data_type = concat (data_type, gen_decl (chain_p, 0, ansi),
- NULL);
+ (void *)0);
chain_p = TREE_CHAIN (chain_p);
- data_type = concat (data_type, "; ", NULL);
+ data_type = concat (data_type, "; ", (void *)0);
}
- data_type = concat ("{ ", data_type, "}", NULL);
+ data_type = concat ("{ ", data_type, "}", (void *)0);
}
- data_type = concat ("struct ", data_type, NULL);
+ data_type = concat ("struct ", data_type, (void *)0);
break;
case UNION_TYPE:
@@ -393,13 +393,13 @@ gen_type (const char *ret_val, tree t, f
while (chain_p)
{
data_type = concat (data_type, gen_decl (chain_p, 0, ansi),
- NULL);
+ (void *)0);
chain_p = TREE_CHAIN (chain_p);
- data_type = concat (data_type, "; ", NULL);
+ data_type = concat (data_type, "; ", (void *)0);
}
- data_type = concat ("{ ", data_type, "}", NULL);
+ data_type = concat ("{ ", data_type, "}", (void *)0);
}
- data_type = concat ("union ", data_type, NULL);
+ data_type = concat ("union ", data_type, (void *)0);
break;
case ENUMERAL_TYPE:
@@ -412,14 +412,14 @@ gen_type (const char *ret_val, tree t, f
while (chain_p)
{
data_type = concat (data_type,
- IDENTIFIER_POINTER (TREE_PURPOSE (chain_p)), NULL);
+ IDENTIFIER_POINTER (TREE_PURPOSE (chain_p)), (void *)0);
chain_p = TREE_CHAIN (chain_p);
if (chain_p)
- data_type = concat (data_type, ", ", NULL);
+ data_type = concat (data_type, ", ", (void *)0);
}
- data_type = concat ("{ ", data_type, " }", NULL);
+ data_type = concat ("{ ", data_type, " }", (void *)0);
}
- data_type = concat ("enum ", data_type, NULL);
+ data_type = concat ("enum ", data_type, (void *)0);
break;
case TYPE_DECL:
@@ -431,7 +431,7 @@ gen_type (const char *ret_val, tree t, f
/* Normally, `unsigned' is part of the deal. Not so if it comes
with a type qualifier. */
if (TYPE_UNSIGNED (t) && TYPE_QUALS (t))
- data_type = concat ("unsigned ", data_type, NULL);
+ data_type = concat ("unsigned ", data_type, (void *)0);
break;
case REAL_TYPE:
@@ -451,11 +451,11 @@ gen_type (const char *ret_val, tree t, f
}
}
if (TYPE_READONLY (t))
- ret_val = concat ("const ", ret_val, NULL);
+ ret_val = concat ("const ", ret_val, (void *)0);
if (TYPE_VOLATILE (t))
- ret_val = concat ("volatile ", ret_val, NULL);
+ ret_val = concat ("volatile ", ret_val, (void *)0);
if (TYPE_RESTRICT (t))
- ret_val = concat ("restrict ", ret_val, NULL);
+ ret_val = concat ("restrict ", ret_val, (void *)0);
return ret_val;
}
@@ -494,9 +494,9 @@ gen_decl (tree decl, int is_func_definit
generate the qualifiers here. */
if (TREE_THIS_VOLATILE (decl))
- ret_val = concat ("volatile ", ret_val, NULL);
+ ret_val = concat ("volatile ", ret_val, (void *)0);
if (TREE_READONLY (decl))
- ret_val = concat ("const ", ret_val, NULL);
+ ret_val = concat ("const ", ret_val, (void *)0);
data_type = "";
@@ -515,7 +515,7 @@ gen_decl (tree decl, int is_func_definit
if (TREE_CODE (decl) == FUNCTION_DECL && is_func_definition)
{
ret_val = concat (ret_val, gen_formal_list_for_func_def (decl, ansi),
- NULL);
+ (void *)0);
/* Since we have already added in the formals list stuff, here we don't
add the whole "type" of the function we are considering (which
@@ -532,11 +532,11 @@ gen_decl (tree decl, int is_func_definit
ret_val = affix_data_type (ret_val);
if (TREE_CODE (decl) != FUNCTION_DECL && C_DECL_REGISTER (decl))
- ret_val = concat ("register ", ret_val, NULL);
+ ret_val = concat ("register ", ret_val, (void *)0);
if (TREE_PUBLIC (decl))
- ret_val = concat ("extern ", ret_val, NULL);
+ ret_val = concat ("extern ", ret_val, (void *)0);
if (TREE_CODE (decl) == FUNCTION_DECL && !TREE_PUBLIC (decl))
- ret_val = concat ("static ", ret_val, NULL);
+ ret_val = concat ("static ", ret_val, (void *)0);
return ret_val;
}

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-gcc_c-incpath_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/c-incpath.c.orig Tue Sep 14 08:48:54 2004
+++ gcc/c-incpath.c Tue Sep 14 08:49:15 2004
@@ -141,7 +141,7 @@ add_standard_paths (const char *sysroot,
continue;
if (!strncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
{
- char *str = concat (iprefix, p->fname + len, NULL);
+ char *str = concat (iprefix, p->fname + len, (void *)0);
add_path (str, SYSTEM, p->cxx_aware, false);
}
}
@@ -156,7 +156,7 @@ add_standard_paths (const char *sysroot,
/* Should this directory start with the sysroot? */
if (sysroot && p->add_sysroot)
- str = concat (sysroot, p->fname, NULL);
+ str = concat (sysroot, p->fname, (void *)0);
else
str = update_path (p->fname, p->component);

View File

@ -0,0 +1,76 @@
$OpenBSD: patch-gcc_collect2_c,v 1.1.1.1 2004/09/23 22:13:32 espie Exp $
--- gcc/collect2.c.orig Tue Sep 14 09:30:22 2004
+++ gcc/collect2.c Tue Sep 14 09:30:56 2004
@@ -783,19 +783,19 @@ main (int argc, char **argv)
qualify the program name with the target machine. */
const char *const full_ld_suffix =
- concat(target_machine, "-", ld_suffix, NULL);
+ concat(target_machine, "-", ld_suffix, (void *)0);
const char *const full_nm_suffix =
- concat (target_machine, "-", nm_suffix, NULL);
+ concat (target_machine, "-", nm_suffix, (void *)0);
const char *const full_gnm_suffix =
- concat (target_machine, "-", gnm_suffix, NULL);
+ concat (target_machine, "-", gnm_suffix, (void *)0);
#ifdef LDD_SUFFIX
const char *const full_ldd_suffix =
- concat (target_machine, "-", ldd_suffix, NULL);
+ concat (target_machine, "-", ldd_suffix, (void *)0);
#endif
const char *const full_strip_suffix =
- concat (target_machine, "-", strip_suffix, NULL);
+ concat (target_machine, "-", strip_suffix, (void *)0);
const char *const full_gstrip_suffix =
- concat (target_machine, "-", gstrip_suffix, NULL);
+ concat (target_machine, "-", gstrip_suffix, (void *)0);
#else
const char *const full_ld_suffix = ld_suffix;
const char *const full_nm_suffix = nm_suffix;
@@ -986,7 +986,7 @@ main (int argc, char **argv)
if (c_file_name == 0)
{
#ifdef CROSS_COMPILE
- c_file_name = concat (target_machine, "-gcc", NULL);
+ c_file_name = concat (target_machine, "-gcc", (void *)0);
#else
c_file_name = "gcc";
#endif
@@ -1256,7 +1256,7 @@ main (int argc, char **argv)
if (exports.first)
{
- char *buf = concat ("-bE:", export_file, NULL);
+ char *buf = concat ("-bE:", export_file, (void *)0);
*ld1++ = buf;
*ld2++ = buf;
@@ -1421,7 +1421,7 @@ main (int argc, char **argv)
/* Tell the linker that we have initializer and finalizer functions. */
#ifdef LD_INIT_SWITCH
#ifdef COLLECT_EXPORT_LIST
- *ld2++ = concat (LD_INIT_SWITCH, ":", initname, ":", fininame, NULL);
+ *ld2++ = concat (LD_INIT_SWITCH, ":", initname, ":", fininame, (void *)0);
#else
*ld2++ = LD_INIT_SWITCH;
*ld2++ = initname;
@@ -1436,7 +1436,7 @@ main (int argc, char **argv)
/* If we did not add export flag to link arguments before, add it to
second link phase now. No new exports should have been added. */
if (! exports.first)
- *ld2++ = concat ("-bE:", export_file, NULL);
+ *ld2++ = concat ("-bE:", export_file, (void *)0);
#ifndef LD_INIT_SWITCH
add_to_list (&exports, initname);
@@ -1843,8 +1843,8 @@ write_c_file_stat (FILE *stream, const c
notice ("\nwrite_c_file - output name is %s, prefix is %s\n",
output_file, prefix);
- initname = concat ("_GLOBAL__FI_", prefix, NULL);
- fininame = concat ("_GLOBAL__FD_", prefix, NULL);
+ initname = concat ("_GLOBAL__FI_", prefix, (void *)0);
+ fininame = concat ("_GLOBAL__FD_", prefix, (void *)0);
free (prefix);

View File

@ -0,0 +1,20 @@
$OpenBSD: patch-gcc_config_gcc,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/config.gcc.orig Tue Sep 7 21:39:05 2004
+++ gcc/config.gcc Tue Sep 14 01:21:22 2004
@@ -927,11 +927,11 @@ x86_64-*-netbsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
;;
i[34567]86-*-openbsd*)
- tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
- # needed to unconfuse gdb
- tmake_file="t-libc-ok t-openbsd i386/t-openbsd"
- # we need collect2 until our bug is fixed...
- use_collect2=yes
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
+ tm_file="${tm_file} openbsd.h i386/openbsdelf.h"
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
;;
i[34567]86-*-coff*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h"

View File

@ -0,0 +1,139 @@
$OpenBSD: patch-gcc_config_i386_openbsdelf_h,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/config/i386/openbsdelf.h.orig Mon Sep 13 14:37:10 2004
+++ gcc/config/i386/openbsdelf.h Mon Sep 13 14:27:40 2004
@@ -0,0 +1,135 @@
+
+/* Configuration for an OpenBSD i386 target.
+
+ Copyright (C) 1999 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. */
+
+/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
+ libraries compiled with the native cc, so undef it. */
+#undef NO_DOLLAR_IN_LABEL
+
+/* Override the default comment-starter of "/". */
+#undef ASM_COMMENT_START
+#define ASM_COMMENT_START "#"
+
+
+/* This goes away when the math-emulator is fixed */
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT \
+ (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
+
+/* Run-time target specifications */
+
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ OPENBSD_OS_CPP_BUILTINS_ELF(); \
+ } \
+ while (0)
+
+/* As an elf system, we need crtbegin/crtend stuff. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+
+/* Layout of source language data types. */
+
+/* This must 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_TYPE_SIZE
+#define WCHAR_TYPE_SIZE BITS_PER_WORD
+
+/* Assembler format: overall framework. */
+
+#undef ASM_APP_ON
+#define ASM_APP_ON "#APP\n"
+
+#undef ASM_APP_OFF
+#define ASM_APP_OFF "#NO_APP\n"
+
+#undef SET_ASM_OP
+#define SET_ASM_OP "\t.set\t"
+
+/* The following macros were originally stolen from i386v4.h.
+ These have to be defined to get PIC code correct. */
+
+/* Assembler format: dispatch tables. */
+
+/* Assembler format: sections. */
+
+/* Stack & calling: aggregate returns. */
+
+/* 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
+
+/* Assembler format: alignment output. */
+
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
+ if ((LOG) != 0) {\
+ if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+#endif
+
+/* Stack & calling: profiling. */
+
+/* OpenBSD's profiler recovers all information from the stack pointer.
+ The icky part is not here, but in machine/profile.h. */
+#undef FUNCTION_PROFILER
+#define FUNCTION_PROFILER(FILE, LABELNO) \
+ fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE);
+
+/* Assembler format: exception region output. */
+
+/* our configuration still doesn't handle dwarf2 correctly */
+#define DWARF2_UNWIND_INFO 0
+
+/* Assembler format: alignment output. */
+
+/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */
+
+/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
+ %{shared:-shared} %{R*} \
+ %{static:-Bstatic} \
+ %{!static:-Bdynamic} \
+ %{assert*} \
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
+
+#define OBSD_HAS_CORRECT_SPECS
+
+/* pick up defines for mprotect (used in TRANSFER_FROM_TRANPOLINE) */
+#include <sys/types.h>
+#include <sys/mman.h>

View File

@ -0,0 +1,103 @@
$OpenBSD: patch-gcc_config_openbsd_h,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/config/openbsd.h.orig Mon Jul 5 21:49:14 2004
+++ gcc/config/openbsd.h Tue Sep 14 20:23:47 2004
@@ -52,29 +52,60 @@ Boston, MA 02111-1307, USA. */
#ifdef OPENBSD_NATIVE
-#undef GCC_INCLUDE_DIR
-#define GCC_INCLUDE_DIR "/usr/include"
-
/* The compiler is configured with ONLY the gcc/g++ standard headers. */
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
- { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1 }, \
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1 }, \
+ { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0 }, \
{ 0, 0, 0, 0 } \
}
/* Under OpenBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
-#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
+#undef STANDARD_STARTFILE_PREFIX
+#define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
#endif
/* Controlling the compilation driver. */
+/* TARGET_OS_CPP_BUILTINS() common to all OpenBSD targets. */
+#define OPENBSD_OS_CPP_BUILTINS_COMMON() \
+ do \
+ { \
+ builtin_define ("__OpenBSD__"); \
+ builtin_define ("__unix__"); \
+ builtin_define ("__ANSI_COMPAT"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=bsd"); \
+ builtin_assert ("system=OpenBSD"); \
+ } \
+ while (0)
+/* TARGET_OS_CPP_BUILTINS() common to all OpenBSD ELF targets. */
+#define OPENBSD_OS_CPP_BUILTINS_ELF() \
+ do \
+ { \
+ OPENBSD_OS_CPP_BUILTINS_COMMON(); \
+ builtin_define ("__ELF__"); \
+ } \
+ while (0)
+
+/* TARGET_OS_CPP_BUILTINS() common to all LP64 OpenBSD targets. */
+#define OPENBSD_OS_CPP_BUILTINS_LP64() \
+ do \
+ { \
+ builtin_define ("_LP64"); \
+ builtin_define ("__LP64__"); \
+ } \
+ while (0)
+
+
/* CPP_SPEC appropriate for OpenBSD. We deal with -posix and -pthread.
- XXX the way threads are handling currently is not very satisfying,
+ XXX the way threads are handled currently is not very satisfying,
since all code must be compiled with -pthread to work.
This two-stage defines makes it easy to pick that for targets that
have subspecs. */
@@ -84,10 +115,9 @@ Boston, MA 02111-1307, USA. */
#define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
#endif
-/* LIB_SPEC appropriate for OpenBSD. Select the appropriate libc,
- depending on profiling and threads. Basically,
- -lc(_r)?(_p)?, select _r for threads, and _p for p or pg. */
-#define OBSD_LIB_SPEC "%{!shared:-lc%{pthread:_r}%{p:_p}%{!p:%{pg:_p}}}"
+/* LIB_SPEC appropriate for OpenBSD. Include -lpthread if -pthread is
+ specified on the command line. */
+#define OBSD_LIB_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
#ifndef OBSD_HAS_CORRECT_SPECS
@@ -275,3 +305,18 @@ do { \
as this depends on a few other details as well... */
#define HANDLE_SYSV_PRAGMA 1
+/* Stack is explicitly denied execution rights on OpenBSD platforms. */
+#define ENABLE_EXECUTE_STACK \
+extern void __enable_execute_stack (void *); \
+void \
+__enable_execute_stack (addr) \
+ void *addr; \
+{ \
+ long size = getpagesize (); \
+ long mask = ~(size-1); \
+ char *page = (char *) (((long) addr) & mask); \
+ char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \
+ \
+ if (mprotect (page, end - page, PROT_READ | PROT_WRITE | PROT_EXEC) < 0) \
+ perror ("mprotect of trampoline code"); \
+}

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_coverage_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/coverage.c.orig Tue Sep 14 08:58:02 2004
+++ gcc/coverage.c Tue Sep 14 08:58:09 2004
@@ -812,7 +812,7 @@ build_gcov_info (void)
fields = field;
filename = getpwd ();
filename = (filename && da_file_name[0] != '/'
- ? concat (filename, "/", da_file_name, NULL)
+ ? concat (filename, "/", da_file_name, (void *)0)
: da_file_name);
filename_len = strlen (filename);
filename_string = build_string (filename_len + 1, filename);

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-gcc_cp_call_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/cp/call.c.orig Tue Sep 14 09:21:29 2004
+++ gcc/cp/call.c Tue Sep 14 09:21:40 2004
@@ -5104,7 +5104,7 @@ name_as_c_string (tree name, tree type,
|| name == base_dtor_identifier
|| name == deleting_dtor_identifier)
{
- pretty_name = concat ("~", pretty_name, NULL);
+ pretty_name = concat ("~", pretty_name, (void *)0);
/* Remember that we need to free the memory allocated. */
*free_p = true;
}
@@ -5114,7 +5114,7 @@ name_as_c_string (tree name, tree type,
pretty_name = concat ("operator ",
type_as_string (TREE_TYPE (name),
TFF_PLAIN_IDENTIFIER),
- NULL);
+ (void *)0);
/* Remember that we need to free the memory allocated. */
*free_p = true;
}

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_cp_g++spec_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/cp/g++spec.c.orig Tue Sep 14 01:21:39 2004
+++ gcc/cp/g++spec.c Tue Sep 14 01:22:16 2004
@@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA. */
#endif
#ifndef LIBSTDCXX
-#define LIBSTDCXX "-lstdc++"
+#define LIBSTDCXX "-lestdc++"
#endif
#ifndef LIBSTDCXX_PROFILE
#define LIBSTDCXX_PROFILE LIBSTDCXX

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_cp_parser_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/cp/parser.c.orig Tue Sep 14 09:24:04 2004
+++ gcc/cp/parser.c Tue Sep 14 09:24:13 2004
@@ -15554,7 +15554,7 @@ cp_parser_require (cp_parser* parser,
/* Output the MESSAGE -- unless we're parsing tentatively. */
if (!cp_parser_simulate_error (parser))
{
- char *message = concat ("expected ", token_desc, NULL);
+ char *message = concat ("expected ", token_desc, (void *)0);
cp_parser_error (parser, message);
free (message);
}

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_dbxout_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/dbxout.c.orig Tue Sep 14 08:59:02 2004
+++ gcc/dbxout.c Tue Sep 14 08:59:13 2004
@@ -513,7 +513,7 @@ dbxout_init (const char *input_file_name
{
if (!cwd && (cwd = get_src_pwd ())
&& (!*cwd || cwd[strlen (cwd) - 1] != '/'))
- cwd = concat (cwd, FILE_NAME_JOINER, NULL);
+ cwd = concat (cwd, FILE_NAME_JOINER, (void *)0);
if (cwd)
{
#ifdef DBX_OUTPUT_MAIN_SOURCE_DIRECTORY

View File

@ -0,0 +1,201 @@
$OpenBSD: patch-gcc_gcc_c,v 1.1.1.1 2004/09/23 22:13:32 espie Exp $
--- gcc/gcc.c.orig Tue Sep 14 09:31:37 2004
+++ gcc/gcc.c Tue Sep 14 09:33:19 2004
@@ -1295,7 +1295,7 @@ translate_options (int *argcp, const cha
/* Store the translation as one argv elt or as two. */
if (arg != 0 && strchr (arginfo, 'j') != 0)
newv[newindex++] = concat (option_map[j].equivalent, arg,
- NULL);
+ (void *)0);
else if (arg != 0)
{
newv[newindex++] = option_map[j].equivalent;
@@ -1610,7 +1610,7 @@ init_gcc_specs (struct obstack *obstack,
shared_name,
#endif
#endif
- "}}}", NULL);
+ "}}}", (void *)0);
obstack_grow (obstack, buf, strlen (buf));
free (buf);
@@ -1813,7 +1813,7 @@ set_spec (const char *name, const char *
old_spec = *(sl->ptr_spec);
*(sl->ptr_spec) = ((spec[0] == '+' && ISSPACE ((unsigned char)spec[1]))
- ? concat (old_spec, spec + 1, NULL)
+ ? concat (old_spec, spec + 1, (void *)0)
: xstrdup (spec));
#ifdef DEBUG_SPECS
@@ -2471,10 +2471,10 @@ find_a_file (struct path_prefix *pprefix
len += len1 > len2 ? len1 : len2;
if (multilib_dir)
multilib_name = ACONCAT ((multilib_dir, dir_separator_str, name,
- NULL));
+ (void *)0));
if (strcmp (multilib_os_dir, ".") != 0)
multilib_os_name = ACONCAT ((multilib_os_dir, dir_separator_str, name,
- NULL));
+ (void *)0));
}
temp = xmalloc (len);
@@ -2633,8 +2633,8 @@ add_sysrooted_prefix (struct path_prefix
if (target_system_root)
{
if (target_sysroot_suffix)
- prefix = concat (target_sysroot_suffix, prefix, NULL);
- prefix = concat (target_system_root, prefix, NULL);
+ prefix = concat (target_sysroot_suffix, prefix, (void *)0);
+ prefix = concat (target_system_root, prefix, (void *)0);
/* We have to override this because GCC's notion of sysroot
moves along with GCC. */
@@ -3206,7 +3206,7 @@ process_command (int argc, const char **
break;
new_argv0 = xmemdup (progname, baselen,
baselen + concat_length (new_version, new_machine,
- "-gcc-", NULL) + 1);
+ "-gcc-", (void *)0) + 1);
strcpy (new_argv0 + baselen, new_machine);
strcat (new_argv0, "-gcc-");
strcat (new_argv0, new_version);
@@ -3233,7 +3233,7 @@ process_command (int argc, const char **
standard_bindir_prefix,
standard_libexec_prefix);
if (gcc_exec_prefix)
- putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL));
+ putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, (void *)0));
}
else
gcc_libexec_prefix = make_relative_prefix (gcc_exec_prefix,
@@ -3280,7 +3280,7 @@ process_command (int argc, const char **
{
strncpy (nstore, startp, endp - startp);
if (endp == startp)
- strcpy (nstore, concat (".", dir_separator_str, NULL));
+ strcpy (nstore, concat (".", dir_separator_str, (void *)0));
else if (!IS_DIR_SEPARATOR (endp[-1]))
{
nstore[endp - startp] = DIR_SEPARATOR;
@@ -3314,7 +3314,7 @@ process_command (int argc, const char **
{
strncpy (nstore, startp, endp - startp);
if (endp == startp)
- strcpy (nstore, concat (".", dir_separator_str, NULL));
+ strcpy (nstore, concat (".", dir_separator_str, (void *)0));
else if (!IS_DIR_SEPARATOR (endp[-1]))
{
nstore[endp - startp] = DIR_SEPARATOR;
@@ -3347,7 +3347,7 @@ process_command (int argc, const char **
{
strncpy (nstore, startp, endp - startp);
if (endp == startp)
- strcpy (nstore, concat (".", dir_separator_str, NULL));
+ strcpy (nstore, concat (".", dir_separator_str, (void *)0));
else if (!IS_DIR_SEPARATOR (endp[-1]))
{
nstore[endp - startp] = DIR_SEPARATOR;
@@ -3815,7 +3815,7 @@ warranty; not even for MERCHANTABILITY o
PREFIX_PRIORITY_LAST, 1, 0);
tooldir_prefix = concat (tooldir_base_prefix, spec_machine,
- dir_separator_str, NULL);
+ dir_separator_str, (void *)0);
/* If tooldir is relative, base it on exec_prefixes. A relative
tooldir lets us move the installed tree as a unit.
@@ -3830,28 +3830,28 @@ warranty; not even for MERCHANTABILITY o
{
char *gcc_exec_tooldir_prefix
= concat (gcc_exec_prefix, spec_machine, dir_separator_str,
- spec_version, dir_separator_str, tooldir_prefix, NULL);
+ spec_version, dir_separator_str, tooldir_prefix, (void *)0);
add_prefix (&exec_prefixes,
concat (gcc_exec_tooldir_prefix, "bin",
- dir_separator_str, NULL),
+ dir_separator_str, (void *)0),
NULL, PREFIX_PRIORITY_LAST, 0, 0);
add_prefix (&startfile_prefixes,
concat (gcc_exec_tooldir_prefix, "lib",
- dir_separator_str, NULL),
+ dir_separator_str, (void *)0),
NULL, PREFIX_PRIORITY_LAST, 0, 1);
}
tooldir_prefix = concat (standard_exec_prefix, spec_machine,
dir_separator_str, spec_version,
- dir_separator_str, tooldir_prefix, NULL);
+ dir_separator_str, tooldir_prefix, (void *)0);
}
add_prefix (&exec_prefixes,
- concat (tooldir_prefix, "bin", dir_separator_str, NULL),
+ concat (tooldir_prefix, "bin", dir_separator_str, (void *)0),
"BINUTILS", PREFIX_PRIORITY_LAST, 0, 0);
add_prefix (&startfile_prefixes,
- concat (tooldir_prefix, "lib", dir_separator_str, NULL),
+ concat (tooldir_prefix, "lib", dir_separator_str, (void *)0),
"BINUTILS", PREFIX_PRIORITY_LAST, 0, 1);
#if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS)
@@ -3974,7 +3974,7 @@ warranty; not even for MERCHANTABILITY o
{ /* POSIX allows separation of -l and the lib arg;
canonicalize by concatenating -l with its arg */
infiles[n_infiles].language = "*";
- infiles[n_infiles++].name = concat ("-l", argv[++i], NULL);
+ infiles[n_infiles++].name = concat ("-l", argv[++i], (void *)0);
}
else if (strncmp (argv[i], "-l", 2) == 0)
{
@@ -5927,11 +5927,11 @@ is_directory (const char *path1, const c
if (linker
&& ((cp - path == 6
&& strcmp (path, concat (dir_separator_str, "lib",
- dir_separator_str, ".", NULL)) == 0)
+ dir_separator_str, ".", (void *)0)) == 0)
|| (cp - path == 10
&& strcmp (path, concat (dir_separator_str, "usr",
dir_separator_str, "lib",
- dir_separator_str, ".", NULL)) == 0)))
+ dir_separator_str, ".", (void *)0)) == 0)))
return 0;
return (stat (path, &st) >= 0 && S_ISDIR (st.st_mode));
@@ -6115,8 +6115,8 @@ main (int argc, const char **argv)
/* Read specs from a file if there is one. */
machine_suffix = concat (spec_machine, dir_separator_str,
- spec_version, dir_separator_str, NULL);
- just_machine_suffix = concat (spec_machine, dir_separator_str, NULL);
+ spec_version, dir_separator_str, (void *)0);
+ just_machine_suffix = concat (spec_machine, dir_separator_str, (void *)0);
specs_file = find_a_file (&startfile_prefixes, "specs", R_OK, 0);
/* Read the specs file unless it is a default one. */
@@ -6221,12 +6221,12 @@ main (int argc, const char **argv)
if (gcc_exec_prefix)
add_prefix (&startfile_prefixes,
concat (gcc_exec_prefix, machine_suffix,
- standard_startfile_prefix, NULL),
+ standard_startfile_prefix, (void *)0),
NULL, PREFIX_PRIORITY_LAST, 0, 1);
add_prefix (&startfile_prefixes,
concat (standard_exec_prefix,
machine_suffix,
- standard_startfile_prefix, NULL),
+ standard_startfile_prefix, (void *)0),
NULL, PREFIX_PRIORITY_LAST, 0, 1);
}
@@ -6252,7 +6252,7 @@ main (int argc, const char **argv)
/* If we have a GCC_EXEC_PREFIX envvar, modify it for cpp's sake. */
if (gcc_exec_prefix)
gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str,
- spec_version, dir_separator_str, NULL);
+ spec_version, dir_separator_str, (void *)0);
/* Now we have the specs.
Set the `valid' bits for switches that match anything in any spec. */

View File

@ -0,0 +1,39 @@
$OpenBSD: patch-gcc_gensupport_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/gensupport.c.orig Tue Sep 14 08:37:56 2004
+++ gcc/gensupport.c Tue Sep 14 08:38:31 2004
@@ -215,7 +215,7 @@ process_include (rtx desc, int lineno)
{
static const char sep[2] = { DIR_SEPARATOR, '\0' };
- pathname = concat (stackp->fname, sep, filename, NULL);
+ pathname = concat (stackp->fname, sep, filename, (void *)0);
input_file = fopen (pathname, "r");
if (input_file != NULL)
goto success;
@@ -224,7 +224,7 @@ process_include (rtx desc, int lineno)
}
if (base_dir)
- pathname = concat (base_dir, filename, NULL);
+ pathname = concat (base_dir, filename, (void *)0);
else
pathname = xstrdup (filename);
input_file = fopen (pathname, "r");
@@ -310,7 +310,7 @@ process_rtx (rtx desc, int lineno)
insn condition to create the new split condition. */
split_cond = XSTR (desc, 4);
if (split_cond[0] == '&' && split_cond[1] == '&')
- split_cond = concat (XSTR (desc, 2), split_cond, NULL);
+ split_cond = concat (XSTR (desc, 2), split_cond, (void *)0);
XSTR (split, 1) = split_cond;
XVEC (split, 2) = XVEC (desc, 5);
XSTR (split, 3) = XSTR (desc, 6);
@@ -665,7 +665,7 @@ alter_test_for_insn (struct queue_elem *
if (!insn_test || *insn_test == '\0')
return ce_test;
- return concat ("(", ce_test, ") && (", insn_test, ")", NULL);
+ return concat ("(", ce_test, ") && (", insn_test, ")", (void *)0);
}
/* Adjust all of the operand numbers in SRC to match the shift they'll

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_objc_objc-act_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/objc/objc-act.c.orig Tue Sep 14 09:29:07 2004
+++ gcc/objc/objc-act.c Tue Sep 14 09:29:15 2004
@@ -542,7 +542,7 @@ objc_init (void)
/* If gen_declaration desired, open the output file. */
if (flag_gen_declaration)
{
- register char * const dumpname = concat (dump_base_name, ".decl", NULL);
+ register char * const dumpname = concat (dump_base_name, ".decl", (void *)0);
gen_declaration_file = fopen (dumpname, "w");
if (gen_declaration_file == 0)
fatal_error ("can't open %s: %m", dumpname);

View File

@ -0,0 +1,35 @@
$OpenBSD: patch-gcc_prefix_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/prefix.c.orig Tue Sep 14 08:49:46 2004
+++ gcc/prefix.c Tue Sep 14 08:50:06 2004
@@ -99,7 +99,7 @@ get_key_value (char *key)
#endif
if (prefix == 0)
- prefix = getenv (temp = concat (key, "_ROOT", NULL));
+ prefix = getenv (temp = concat (key, "_ROOT", (void *)0));
if (prefix == 0)
prefix = std_prefix;
@@ -219,7 +219,7 @@ translate_name (char *name)
together. */
old_name = name;
- name = concat (prefix, &name[keylen + 1], NULL);
+ name = concat (prefix, &name[keylen + 1], (void *)0);
free (old_name);
}
@@ -257,11 +257,11 @@ update_path (const char *path, const cha
if (key[0] != '$')
{
- key = concat ("@", key, NULL);
+ key = concat ("@", key, (void *)0);
free_key = true;
}
- result = concat (key, &path[len], NULL);
+ result = concat (key, &path[len], (void *)0);
if (free_key)
free ((char *) key);
result = translate_name (result);

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_tree-dump_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/tree-dump.c.orig Tue Sep 14 09:17:33 2004
+++ gcc/tree-dump.c Tue Sep 14 09:18:10 2004
@@ -820,7 +820,7 @@ get_dump_file_name (enum tree_dump_index
dump_id[0] = '\0';
}
- return concat (dump_base_name, dump_id, dfi->suffix, NULL);
+ return concat (dump_base_name, dump_id, dfi->suffix, (void *)0);
}
/* Begin a tree dump for PHASE. Stores any user supplied flag in

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_tree-mudflap_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/tree-mudflap.c.orig Tue Sep 14 08:50:49 2004
+++ gcc/tree-mudflap.c Tue Sep 14 08:51:00 2004
@@ -232,7 +232,7 @@ mf_file_function_line_tree (location_t l
else
op = name = cp = "";
- string = concat (file, colon, line, op, name, cp, NULL);
+ string = concat (file, colon, line, op, name, cp, (void *)0);
result = mf_build_string (string);
free (string);

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_tree-nested_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/tree-nested.c.orig Tue Sep 14 08:53:56 2004
+++ gcc/tree-nested.c Tue Sep 14 08:54:07 2004
@@ -201,7 +201,7 @@ get_frame_type (struct nesting_info *inf
name = concat ("FRAME.",
IDENTIFIER_POINTER (DECL_NAME (info->context)),
- NULL);
+ (void *)0);
TYPE_NAME (type) = get_identifier (name);
free (name);

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-gcc_tree-optimize_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/tree-optimize.c.orig Tue Sep 14 08:52:07 2004
+++ gcc/tree-optimize.c Tue Sep 14 08:52:21 2004
@@ -221,16 +221,16 @@ register_one_dump_file (struct tree_opt_
sprintf (num, "%d", ((int) pass->static_pass_number < 0
? 1 : pass->static_pass_number));
- dot_name = concat (".", pass->name, num, NULL);
+ dot_name = concat (".", pass->name, num, (void *)0);
if (pass->properties_provided & PROP_trees)
{
- flag_name = concat ("tree-", pass->name, num, NULL);
+ flag_name = concat ("tree-", pass->name, num, (void *)0);
pass->static_pass_number = dump_register (dot_name, flag_name,
TDF_TREE, n + TDI_tree_all, 0);
}
else
{
- flag_name = concat ("rtl-", pass->name, num, NULL);
+ flag_name = concat ("rtl-", pass->name, num, (void *)0);
pass->static_pass_number = dump_register (dot_name, flag_name,
TDF_RTL, n, pass->letter);
}

View File

@ -0,0 +1,103 @@
$OpenBSD: patch-gcc_tree-ssa-alias_c,v 1.1.1.1 2004/09/23 22:13:32 espie Exp $
--- gcc/tree-ssa-alias.c.orig Tue Sep 14 12:58:50 2004
+++ gcc/tree-ssa-alias.c Tue Sep 14 12:59:41 2004
@@ -1244,7 +1244,7 @@ setup_pointers_and_addressables (struct
because some TREE_ADDRESSABLE variables will be marked
non-addressable below and only pointers with unique type tags are
going to be added to POINTERS. */
- ai->addressable_vars = xcalloc (num_addressable_vars,
+ ai->addressable_vars = xcalloc (num_addressable_vars + num_pointers,
sizeof (struct alias_map_d *));
ai->pointers = xcalloc (num_pointers, sizeof (struct alias_map_d *));
ai->num_addressable_vars = 0;
@@ -1262,8 +1262,9 @@ setup_pointers_and_addressables (struct
/* Name memory tags already have flow-sensitive aliasing
information, so they need not be processed by
- compute_may_aliases. Similarly, type memory tags are already
- accounted for when we process their associated pointer. */
+ compute_flow_insensitive_aliasing. Similarly, type memory
+ tags are already accounted for when we process their
+ associated pointer. */
if (v_ann->mem_tag_kind != NOT_A_TAG)
continue;
@@ -1351,6 +1352,36 @@ setup_pointers_and_addressables (struct
VARRAY_UINT (ai->num_references, t_ann->uid)
+= VARRAY_UINT (ai->num_references, v_ann->uid);
+
+ /* FIXME. Compensate for the lack of field-sensitive
+ aliasing information. Since this analysis is based
+ exclusively on symbols, it fails to handle cases
+ where a pointer takes the address of a structure
+ field. Consider testsuite/gcc.dg/tree-ssa/20040319-1.c:
+
+ struct bar { int count; int *arr;};
+
+ void foo (struct bar *b)
+ {
+ b->count = 0;
+ *(b->arr) = 2;
+ if (b->count == 0)
+ abort ();
+ }
+
+ b->count and *(b->arr) could be aliased if b->arr ==
+ &b->count. But since there is no symbol that aliases
+ with both b->arr and b->count, we miss the
+ relationship.
+
+ So, if the pointed-to type is a structure, add TAG to
+ AI->ADDRESSABLE_VARS to be handled by
+ compute_flow_insensitive_aliasing. We only need to
+ do this for aggregate types because pointer of scalar
+ types will either share the same type tag or have a
+ symbol in common. */
+ if (AGGREGATE_TYPE_P (TREE_TYPE (tag)))
+ create_alias_map_for (tag, ai);
}
else
{
@@ -1365,41 +1396,6 @@ setup_pointers_and_addressables (struct
ann->type_mem_tag = NULL_TREE;
}
}
- }
- }
-
- /* If we found no addressable variables, but we have more than one
- pointer, we will need to check for conflicts between the
- pointers. Otherwise, we would miss alias relations as in
- testsuite/gcc.dg/tree-ssa/20040319-1.c:
-
- struct bar { int count; int *arr;};
-
- void foo (struct bar *b)
- {
- b->count = 0;
- *(b->arr) = 2;
- if (b->count == 0)
- abort ();
- }
-
- b->count and *(b->arr) could be aliased if b->arr == &b->count.
- To do this, we add all the memory tags for the pointers in
- AI->POINTERS to AI->ADDRESSABLE_VARS, so that
- compute_flow_insensitive_aliasing will naturally compare every
- pointer to every type tag. */
- if (ai->num_addressable_vars == 0
- && ai->num_pointers > 1)
- {
- free (ai->addressable_vars);
- ai->addressable_vars = xcalloc (ai->num_pointers,
- sizeof (struct alias_map_d *));
- ai->num_addressable_vars = 0;
- for (i = 0; i < ai->num_pointers; i++)
- {
- struct alias_map_d *p = ai->pointers[i];
- tree tag = var_ann (p->var)->type_mem_tag;
- create_alias_map_for (tag, ai);
}
}
}

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_tree-vectorizer_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/tree-vectorizer.c.orig Tue Sep 14 08:55:08 2004
+++ gcc/tree-vectorizer.c Tue Sep 14 08:55:18 2004
@@ -499,7 +499,7 @@ vect_get_new_vect_var (tree type, enum v
prefix_len = strlen (prefix);
if (name)
- new_vect_var = create_tmp_var (type, concat (prefix, name, NULL));
+ new_vect_var = create_tmp_var (type, concat (prefix, name, (void *)0));
else
new_vect_var = create_tmp_var (type, prefix);

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-gcc_varasm_c,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- gcc/varasm.c.orig Tue Sep 14 09:18:33 2004
+++ gcc/varasm.c Tue Sep 14 09:18:41 2004
@@ -1188,7 +1188,7 @@ assemble_start_function (tree decl, cons
unlikely_text_section_name = NULL;
unlikely_section_label = reconcat (unlikely_section_label,
- fnname, ".unlikely_section", NULL);
+ fnname, ".unlikely_section", (void *)0);
/* The following code does not need preprocessing in the assembler. */

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-libstdc++-v3_libsupc++_Makefile_in,v 1.1.1.1 2004/09/23 22:13:32 espie Exp $
--- libstdc++-v3/libsupc++/Makefile.in.orig Sat Sep 18 17:35:15 2004
+++ libstdc++-v3/libsupc++/Makefile.in Sat Sep 18 17:36:19 2004
@@ -296,7 +296,7 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
# Need this library to both be part of libstdc++.a, and installed
# separately too.
# 1) separate libsupc++.la
-toolexeclib_LTLIBRARIES = libsupc++.la
+toolexeclib_LTLIBRARIES = libesupc++.la
# 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
noinst_LTLIBRARIES = libsupc++convenience.la
headers = \
@@ -474,7 +474,7 @@ clean-toolexeclibLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libsupc++.la: $(libsupc___la_OBJECTS) $(libsupc___la_DEPENDENCIES)
+libesupc++.la: $(libsupc___la_OBJECTS) $(libsupc___la_DEPENDENCIES)
$(CXXLINK) -rpath $(toolexeclibdir) $(libsupc___la_LDFLAGS) $(libsupc___la_OBJECTS) $(libsupc___la_LIBADD) $(LIBS)
libsupc++convenience.la: $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_DEPENDENCIES)
$(CXXLINK) $(libsupc__convenience_la_LDFLAGS) $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_LIBADD) $(LIBS)

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-libstdc++-v3_src_Makefile_in,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- libstdc++-v3/src/Makefile.in.orig Tue Sep 14 01:22:33 2004
+++ libstdc++-v3/src/Makefile.in Tue Sep 14 01:23:14 2004
@@ -273,7 +273,7 @@ WARN_CXXFLAGS = \
AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
# Cross compiler support.
-toolexeclib_LTLIBRARIES = libstdc++.la
+toolexeclib_LTLIBRARIES = libestdc++.la
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
# Symbol versioning for shared libraries.
@@ -464,7 +464,7 @@ clean-toolexeclibLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
+libestdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
$(CXXLINK) -rpath $(toolexeclibdir) $(libstdc___la_LDFLAGS) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
mostlyclean-compile:

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-libtool_m4,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- libtool.m4.orig Tue May 18 12:11:24 2004
+++ libtool.m4 Tue Sep 14 01:24:01 2004
@@ -703,6 +703,10 @@ newsos6)
lt_cv_file_magic_test_file=/usr/lib/libnls.so
;;
+openbsd*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
osf3* | osf4* | osf5*)
# this will be overridden with pass_all, but let us keep it just in case
lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'

View File

@ -0,0 +1,19 @@
$OpenBSD: patch-ltcf-c_sh,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- ltcf-c.sh.orig Tue Apr 27 08:14:30 2004
+++ ltcf-c.sh Tue Sep 14 01:24:12 2004
@@ -509,10 +509,13 @@ else
;;
openbsd*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
+ archive_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ archive_expsym_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec='${wl}-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
+ remove_lgcc=yes
+ output_verbose_link_cmds='$CC $ac_cv_prog_cc_pic -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"'
;;
os2*)

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-ltcf-cxx_sh,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- ltcf-cxx.sh.orig Tue Aug 3 02:52:06 2004
+++ ltcf-cxx.sh Tue Sep 14 01:24:15 2004
@@ -452,6 +452,19 @@ case $host_os in
netbsd* | knetbsd*-gnu)
# NetBSD uses g++ - do we need to do anything?
;;
+ openbsd*)
+ if test "$with_gcc" = yes && test "$with_gnu_ld" = no; then
+ # MM: OpenBSD 2.7 uses G++, but not GNU ld
+ archive_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ archive_expsym_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ old_archive_cmds="$old_archive_cmds~"'$RANLIB $oldlib'
+ hardcode_libdir_flag_spec='${wl}-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ remove_lgcc=yes
+ output_verbose_link_cmds='$CC $ac_cv_prog_cc_pic -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"'
+ fi
+ ;;
osf3*)
case $cc_basename in
KCC)

View File

@ -0,0 +1,19 @@
$OpenBSD: patch-ltcf-gcj_sh,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- ltcf-gcj.sh.orig Tue Apr 27 08:14:30 2004
+++ ltcf-gcj.sh Tue Sep 14 01:24:24 2004
@@ -488,10 +488,13 @@ else
;;
openbsd*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
+ archive_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ archive_expsym_cmds='$CC $pic_flag -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec='${wl}-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
+ remove_lgcc=yes
+ output_verbose_link_cmds='$CC $ac_cv_prog_cc_pic -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"'
;;
os2*)

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-ltconfig,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
--- ltconfig.orig Tue Apr 27 08:14:30 2004
+++ ltconfig Tue Sep 14 01:24:29 2004
@@ -625,7 +625,12 @@ old_postuninstall_cmds=
if test -n "$RANLIB"; then
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds";;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds";;
+ esac
fi
# Source the script associated with the $tagname tag configuration.
@@ -1307,6 +1312,9 @@ openbsd*)
library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ deplib_check_method=pass_all
+ sys_lib_dlsearch_path_spec='/usr/lib /usr/local/lib /usr/X11R6/lib'
;;
os2*)

0
lang/gcc/4.0/pkg/DESCR Normal file
View File

View File

@ -0,0 +1,3 @@
@comment $OpenBSD: PFRAG.shared,v 1.1.1.1 2004/09/23 22:13:32 espie Exp $
@lib lib/libestdc++.so.6.2
@lib lib/libobjc.so.1.0

309
lang/gcc/4.0/pkg/PLIST Normal file
View File

@ -0,0 +1,309 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2004/09/23 22:13:32 espie Exp $
%%SHARED%%
bin/ec++
bin/ecpp
bin/eg++
bin/egcc
bin/egccbug
bin/egcov
bin/${CONFIG}-ec++
bin/${CONFIG}-eg++
bin/${CONFIG}-egcc
bin/${CONFIG}-gcc-${V}
include/c++/
include/c++/${V}/
include/c++/${V}/algorithm
include/c++/${V}/backward/
include/c++/${V}/backward/algo.h
include/c++/${V}/backward/algobase.h
include/c++/${V}/backward/alloc.h
include/c++/${V}/backward/backward_warning.h
include/c++/${V}/backward/bvector.h
include/c++/${V}/backward/complex.h
include/c++/${V}/backward/defalloc.h
include/c++/${V}/backward/deque.h
include/c++/${V}/backward/fstream.h
include/c++/${V}/backward/function.h
include/c++/${V}/backward/hash_map.h
include/c++/${V}/backward/hash_set.h
include/c++/${V}/backward/hashtable.h
include/c++/${V}/backward/heap.h
include/c++/${V}/backward/iomanip.h
include/c++/${V}/backward/iostream.h
include/c++/${V}/backward/istream.h
include/c++/${V}/backward/iterator.h
include/c++/${V}/backward/list.h
include/c++/${V}/backward/map.h
include/c++/${V}/backward/multimap.h
include/c++/${V}/backward/multiset.h
include/c++/${V}/backward/new.h
include/c++/${V}/backward/ostream.h
include/c++/${V}/backward/pair.h
include/c++/${V}/backward/queue.h
include/c++/${V}/backward/rope.h
include/c++/${V}/backward/set.h
include/c++/${V}/backward/slist.h
include/c++/${V}/backward/stack.h
include/c++/${V}/backward/stream.h
include/c++/${V}/backward/streambuf.h
include/c++/${V}/backward/strstream
include/c++/${V}/backward/tempbuf.h
include/c++/${V}/backward/tree.h
include/c++/${V}/backward/vector.h
include/c++/${V}/bits/
include/c++/${V}/bits/allocator.h
include/c++/${V}/bits/atomicity.h
include/c++/${V}/bits/basic_ios.h
include/c++/${V}/bits/basic_ios.tcc
include/c++/${V}/bits/basic_string.h
include/c++/${V}/bits/basic_string.tcc
include/c++/${V}/bits/boost_concept_check.h
include/c++/${V}/bits/char_traits.h
include/c++/${V}/bits/cmath.tcc
include/c++/${V}/bits/codecvt.h
include/c++/${V}/bits/concept_check.h
include/c++/${V}/bits/concurrence.h
include/c++/${V}/bits/cpp_type_traits.h
include/c++/${V}/bits/deque.tcc
include/c++/${V}/bits/fstream.tcc
include/c++/${V}/bits/functexcept.h
include/c++/${V}/bits/gslice.h
include/c++/${V}/bits/gslice_array.h
include/c++/${V}/bits/indirect_array.h
include/c++/${V}/bits/ios_base.h
include/c++/${V}/bits/istream.tcc
include/c++/${V}/bits/list.tcc
include/c++/${V}/bits/locale_classes.h
include/c++/${V}/bits/locale_facets.h
include/c++/${V}/bits/locale_facets.tcc
include/c++/${V}/bits/localefwd.h
include/c++/${V}/bits/mask_array.h
include/c++/${V}/bits/ostream.tcc
include/c++/${V}/bits/postypes.h
include/c++/${V}/bits/slice_array.h
include/c++/${V}/bits/sstream.tcc
include/c++/${V}/bits/stl_algo.h
include/c++/${V}/bits/stl_algobase.h
include/c++/${V}/bits/stl_bvector.h
include/c++/${V}/bits/stl_construct.h
include/c++/${V}/bits/stl_deque.h
include/c++/${V}/bits/stl_function.h
include/c++/${V}/bits/stl_heap.h
include/c++/${V}/bits/stl_iterator.h
include/c++/${V}/bits/stl_iterator_base_funcs.h
include/c++/${V}/bits/stl_iterator_base_types.h
include/c++/${V}/bits/stl_list.h
include/c++/${V}/bits/stl_map.h
include/c++/${V}/bits/stl_multimap.h
include/c++/${V}/bits/stl_multiset.h
include/c++/${V}/bits/stl_numeric.h
include/c++/${V}/bits/stl_pair.h
include/c++/${V}/bits/stl_queue.h
include/c++/${V}/bits/stl_raw_storage_iter.h
include/c++/${V}/bits/stl_relops.h
include/c++/${V}/bits/stl_set.h
include/c++/${V}/bits/stl_stack.h
include/c++/${V}/bits/stl_tempbuf.h
include/c++/${V}/bits/stl_tree.h
include/c++/${V}/bits/stl_uninitialized.h
include/c++/${V}/bits/stl_vector.h
include/c++/${V}/bits/stream_iterator.h
include/c++/${V}/bits/streambuf.tcc
include/c++/${V}/bits/streambuf_iterator.h
include/c++/${V}/bits/stringfwd.h
include/c++/${V}/bits/type_traits.h
include/c++/${V}/bits/valarray_after.h
include/c++/${V}/bits/valarray_array.h
include/c++/${V}/bits/valarray_array.tcc
include/c++/${V}/bits/valarray_before.h
include/c++/${V}/bits/vector.tcc
include/c++/${V}/bitset
include/c++/${V}/cassert
include/c++/${V}/cctype
include/c++/${V}/cerrno
include/c++/${V}/cfloat
include/c++/${V}/ciso646
include/c++/${V}/climits
include/c++/${V}/clocale
include/c++/${V}/cmath
include/c++/${V}/complex
include/c++/${V}/csetjmp
include/c++/${V}/csignal
include/c++/${V}/cstdarg
include/c++/${V}/cstddef
include/c++/${V}/cstdio
include/c++/${V}/cstdlib
include/c++/${V}/cstring
include/c++/${V}/ctime
include/c++/${V}/cwchar
include/c++/${V}/cwctype
include/c++/${V}/cxxabi.h
include/c++/${V}/debug/
include/c++/${V}/debug/bitset
include/c++/${V}/debug/debug.h
include/c++/${V}/debug/deque
include/c++/${V}/debug/formatter.h
include/c++/${V}/debug/hash_map
include/c++/${V}/debug/hash_map.h
include/c++/${V}/debug/hash_multimap.h
include/c++/${V}/debug/hash_multiset.h
include/c++/${V}/debug/hash_set
include/c++/${V}/debug/hash_set.h
include/c++/${V}/debug/list
include/c++/${V}/debug/map
include/c++/${V}/debug/map.h
include/c++/${V}/debug/multimap.h
include/c++/${V}/debug/multiset.h
include/c++/${V}/debug/safe_base.h
include/c++/${V}/debug/safe_iterator.h
include/c++/${V}/debug/safe_iterator.tcc
include/c++/${V}/debug/safe_sequence.h
include/c++/${V}/debug/set
include/c++/${V}/debug/set.h
include/c++/${V}/debug/string
include/c++/${V}/debug/vector
include/c++/${V}/deque
include/c++/${V}/exception
include/c++/${V}/exception_defines.h
include/c++/${V}/ext/
include/c++/${V}/ext/algorithm
include/c++/${V}/ext/bitmap_allocator.h
include/c++/${V}/ext/debug_allocator.h
include/c++/${V}/ext/enc_filebuf.h
include/c++/${V}/ext/functional
include/c++/${V}/ext/hash_fun.h
include/c++/${V}/ext/hash_map
include/c++/${V}/ext/hash_set
include/c++/${V}/ext/hashtable.h
include/c++/${V}/ext/iterator
include/c++/${V}/ext/malloc_allocator.h
include/c++/${V}/ext/memory
include/c++/${V}/ext/mt_allocator.h
include/c++/${V}/ext/new_allocator.h
include/c++/${V}/ext/numeric
include/c++/${V}/ext/pod_char_traits.h
include/c++/${V}/ext/pool_allocator.h
include/c++/${V}/ext/rb_tree
include/c++/${V}/ext/rope
include/c++/${V}/ext/ropeimpl.h
include/c++/${V}/ext/slist
include/c++/${V}/ext/stdio_filebuf.h
include/c++/${V}/ext/stdio_sync_filebuf.h
include/c++/${V}/fstream
include/c++/${V}/functional
include/c++/${V}/${CONFIG}/
include/c++/${V}/${CONFIG}/bits/
include/c++/${V}/${CONFIG}/bits/atomic_word.h
include/c++/${V}/${CONFIG}/bits/basic_file.h
include/c++/${V}/${CONFIG}/bits/c++allocator.h
include/c++/${V}/${CONFIG}/bits/c++config.h
include/c++/${V}/${CONFIG}/bits/c++io.h
include/c++/${V}/${CONFIG}/bits/c++locale.h
include/c++/${V}/${CONFIG}/bits/codecvt_specializations.h
include/c++/${V}/${CONFIG}/bits/ctype_base.h
include/c++/${V}/${CONFIG}/bits/ctype_inline.h
include/c++/${V}/${CONFIG}/bits/ctype_noninline.h
include/c++/${V}/${CONFIG}/bits/cxxabi_tweaks.h
include/c++/${V}/${CONFIG}/bits/gthr-default.h
include/c++/${V}/${CONFIG}/bits/gthr-posix.h
include/c++/${V}/${CONFIG}/bits/gthr-single.h
include/c++/${V}/${CONFIG}/bits/gthr.h
include/c++/${V}/${CONFIG}/bits/messages_members.h
include/c++/${V}/${CONFIG}/bits/os_defines.h
include/c++/${V}/${CONFIG}/bits/time_members.h
include/c++/${V}/iomanip
include/c++/${V}/ios
include/c++/${V}/iosfwd
include/c++/${V}/iostream
include/c++/${V}/istream
include/c++/${V}/iterator
include/c++/${V}/limits
include/c++/${V}/list
include/c++/${V}/locale
include/c++/${V}/map
include/c++/${V}/memory
include/c++/${V}/new
include/c++/${V}/numeric
include/c++/${V}/ostream
include/c++/${V}/queue
include/c++/${V}/set
include/c++/${V}/sstream
include/c++/${V}/stack
include/c++/${V}/stdexcept
include/c++/${V}/streambuf
include/c++/${V}/string
include/c++/${V}/typeinfo
include/c++/${V}/utility
include/c++/${V}/valarray
include/c++/${V}/vector
@info info/cpp.info
@info info/cppinternals.info
@info info/gcc.info
@info info/gccinstall.info
@info info/gccint.info
lib/gcc/
lib/gcc/${CONFIG}/
lib/gcc/${CONFIG}/${V}/
lib/gcc/${CONFIG}/${V}/include/
lib/gcc/${CONFIG}/${V}/include/README
lib/gcc/${CONFIG}/${V}/include/com_err.h
lib/gcc/${CONFIG}/${V}/include/limits.h
lib/gcc/${CONFIG}/${V}/include/math.h
lib/gcc/${CONFIG}/${V}/include/objc/
lib/gcc/${CONFIG}/${V}/include/objc/NXConstStr.h
lib/gcc/${CONFIG}/${V}/include/objc/Object.h
lib/gcc/${CONFIG}/${V}/include/objc/Protocol.h
lib/gcc/${CONFIG}/${V}/include/objc/encoding.h
lib/gcc/${CONFIG}/${V}/include/objc/hash.h
lib/gcc/${CONFIG}/${V}/include/objc/objc-api.h
lib/gcc/${CONFIG}/${V}/include/objc/objc-decls.h
lib/gcc/${CONFIG}/${V}/include/objc/objc-list.h
lib/gcc/${CONFIG}/${V}/include/objc/objc.h
lib/gcc/${CONFIG}/${V}/include/objc/sarray.h
lib/gcc/${CONFIG}/${V}/include/objc/thr.h
lib/gcc/${CONFIG}/${V}/include/objc/typedstream.h
lib/gcc/${CONFIG}/${V}/include/rpc/
lib/gcc/${CONFIG}/${V}/include/rpc/rpc_des.h
lib/gcc/${CONFIG}/${V}/include/rpc/svc.h
lib/gcc/${CONFIG}/${V}/include/stddef.h
lib/gcc/${CONFIG}/${V}/include/stdio.h
lib/gcc/${CONFIG}/${V}/include/stdlib.h
lib/gcc/${CONFIG}/${V}/include/sys/
lib/gcc/${CONFIG}/${V}/include/sys/limits.h
lib/gcc/${CONFIG}/${V}/include/sys/types.h
lib/gcc/${CONFIG}/${V}/include/syslimits.h
lib/gcc/${CONFIG}/${V}/include/unistd.h
lib/gcc/${CONFIG}/${V}/install-tools/
lib/gcc/${CONFIG}/${V}/install-tools/gsyslimits.h
lib/gcc/${CONFIG}/${V}/install-tools/include/
lib/gcc/${CONFIG}/${V}/install-tools/include/README
lib/gcc/${CONFIG}/${V}/install-tools/include/limits.h
lib/gcc/${CONFIG}/${V}/install-tools/mkheaders.conf
lib/gcc/${CONFIG}/${V}/libgcc.a
lib/gcc/${CONFIG}/${V}/libgcov.a
lib/gcc/${CONFIG}/${V}/specs
lib/libestdc++.a
lib/libestdc++.la
lib/libiberty.a
lib/libobjc.a
lib/libobjc.la
lib/libesupc++.a
lib/libesupc++.la
libexec/gcc/
libexec/gcc/${CONFIG}/
libexec/gcc/${CONFIG}/${V}/
libexec/gcc/${CONFIG}/${V}/cc1
libexec/gcc/${CONFIG}/${V}/cc1obj
libexec/gcc/${CONFIG}/${V}/cc1plus
libexec/gcc/${CONFIG}/${V}/collect2
libexec/gcc/${CONFIG}/${V}/install-tools/
libexec/gcc/${CONFIG}/${V}/install-tools/fixinc.sh
libexec/gcc/${CONFIG}/${V}/install-tools/fixincl
libexec/gcc/${CONFIG}/${V}/install-tools/mkheaders
@man man/man1/ecpp.1
@man man/man1/eg++.1
@man man/man1/egcc.1
@man man/man1/egcov.1
@man man/man7/fsf-funding.7
@man man/man7/gfdl.7
@man man/man7/gpl.7

78
lang/gcc/Makefile.inc Normal file
View File

@ -0,0 +1,78 @@
# $OpenBSD: Makefile.inc,v 1.1.1.1 2004/09/23 22:13:31 espie Exp $
# common stuff for all gcc ports
# we assume each one defines a V variable.
CATEGORIES= lang
PERMIT_PACKAGE_FTP=Yes
PERMIT_DISTFILES_FTP=Yes
PERMIT_PACKAGE_CDROM=Yes
PERMIT_DISTFILES_CDROM=Yes
COM= 'GNU compiler collection'
COMMENT= ${COM}: core C compiler
COMMENT-c++ = ${COM}: C++ compiler
COMMENT-estdc= ${COM}: C++ compiler library
COMMENT-g77= ${COM}: f77 compiler
COMMENT-f95= ${COM}: f95 compiler
COMMENT-java= ${COM}: java compiler
COMMENT-objc= ${COM}: obj C compiler
COMMENT-ada= ${COM}: Ada compiler
PKGNAME= gcc-${FULL_VERSION}
PKGNAME-c++ = g++-${FULL_VERSION}
PKGNAME-estdc = libstdc++-${FULL_VERSION}
PKGNAME-g77= g77-${FULL_VERSION}
PKGNAME-g95= g95-${FULL_VERSION}
PKGNAME-java= gcj-${FULL_VERSION}
PKGNAME-objc= gobjc-${FULL_VERSION}
PKGNAME-ada= gnat-${FULL_VERSION}
DIST_SUBDIR=gcc
CONFIG=${MACHINE_ARCH}-unknown-openbsd${OSREV}
SUBST_VARS+=CONFIG V
MASTER_SITE_GCC+= ftp://gcc.gnu.org/pub/gcc/
MASTER_SITE_GCC+= ftp://ftp.uvsq.fr/pub/gcc/
MASTER_SITE_GCC+= ftp://ftp.grolier.fr/pub/egcs/
MASTER_SITE_GCC+= ftp://gd.tuwien.ac.at/gnu/gcc/
MASTER_SITE_GCC+= ftp://chardonnay.elis.rug.ac.be/pub/mirrors/gcc.cygnus.com/pub/gcc/
MASTER_SITE_GCC+= ftp://gd.tuwien.ac.at/gnu/gcc/
MASTER_SITE_GCC+= ftp://egcs.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://ftp.goof.com/pub/pcg/egcs/
MASTER_SITE_GCC+= ftp://go.cygnus.com/pub/ftp.cygnus.com/egcs/
MASTER_SITE_GCC+= ftp://cambridge.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://sunsite.doc.ic.ac.uk/Mirrors/egcs.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://ftp.gts.cz/pub/MIRRORS/ftp.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://sunsite.auc.dk/pub/egcs/
MASTER_SITE_GCC+= ftp://ftp.fu-berlin.de/unix/languages/egcs/egcs/
MASTER_SITE_GCC+= ftp://ftp.gwdg.de/pub/cygnus/egcs/
MASTER_SITE_GCC+= ftp://ftp.mpi-sb.mpg.de/pub/gnu/mirror/egcs.cygnus.com/egcs/
MASTER_SITE_GCC+= ftp://ftp.uni-trier.de/pub/languages/c/implementation/egcs/
MASTER_SITE_GCC+= ftp://ftp.sunet.se/pub/gnu/egcs/
MASTER_SITE_GCC+= ftp://ftp.unicamp.br/pub/gnu/=EXTRA=/cygnus/egcs/
MASTER_SITE_GCC+= ftp://ftp.lbi.ro/mirrors/ftp.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://ftp.ntua.gr/pub/gnu/egcs/
MASTER_SITE_GCC+= ftp://ftp.nluug.nl/pub/languages/egcs/
MASTER_SITE_GCC+= ftp://ftp.dti.ad.jp/pub/lang/egcs/
MASTER_SITE_GCC+= ftp://ftp.win.or.jp/pub/lang/egcs/
MASTER_SITE_GCC+= ftp://ftp.telewaynet.ad.jp/pub/lang/egcs/
MASTER_SITE_GCC+= ftp://ftp.lab.kdd.co.jp/lang/egcs/
MASTER_SITE_GCC+= ftp://ftp.crc.ca/pub/packages/egcs/
MASTER_SITE_GCC+= ftp://ftp.nc.orc.ru/pub/egcs/
MASTER_SITE_GCC+= ftp://ftp.u-aizu.ac.jp/pub/lang/C/pcg/egcs/
MASTER_SITE_GCC+= ftp://ftp.maisel.int-evry.fr/pub/linux/pentium/egcs/
MASTER_SITE_GCC+= ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://unix.hensa.ac.uk/mirrors/egcs.cygnus.com/pub/egcs/
# Can't contact those, maybe they work ?
MASTER_SITE_GCC+= ftp://sunsite.mff.cuni.cz/pub/GNU/egcs/
MASTER_SITE_GCC+= ftp://sunsite.icm.edu.pl/pub/programming/egcs/
MASTER_SITE_GCC+= ftp://ftp.task.gda.pl/mirror/egcs.cygnus.com/pub/egcs/
MASTER_SITE_GCC+= ftp://ftp.lca.uevora.pt/pub/egcs/
MASTER_SITE_GCC+= ftp://cair-archive.kaist.ac.kr/pub/gnu/egcs/
MASTER_SITE_GCC+= ftp://linux.ihep.su/pub/cygnus/egcs/
MASTER_SITE_GCC+= ftp://linux.cis.nctu.edu.tw/pub/packages/pcg/egcs/
MASTER_SITE_GCC+= ftp://ftp.ninemoons.com/pub/mirrors/egcs/