diff options
Diffstat (limited to 'lang')
162 files changed, 1548 insertions, 4986 deletions
diff --git a/lang/gcc-devel/Makefile b/lang/gcc-devel/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc-devel/Makefile +++ b/lang/gcc-devel/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc-devel/distinfo b/lang/gcc-devel/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc-devel/distinfo +++ b/lang/gcc-devel/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc-devel/files/alpha-freebsd.h b/lang/gcc-devel/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc-devel/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc-devel/files/patch-ad b/lang/gcc-devel/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc-devel/files/patch-ad +++ b/lang/gcc-devel/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc-devel/files/patch-af b/lang/gcc-devel/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc-devel/files/patch-af +++ b/lang/gcc-devel/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc-devel/files/patch-ak b/lang/gcc-devel/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc-devel/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc-devel/files/patch-al b/lang/gcc-devel/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc-devel/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc-devel/files/patch-fa b/lang/gcc-devel/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc-devel/files/patch-fa +++ b/lang/gcc-devel/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc-devel/files/patch-va b/lang/gcc-devel/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc-devel/files/patch-va +++ b/lang/gcc-devel/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc-ooo/Makefile b/lang/gcc-ooo/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc-ooo/Makefile +++ b/lang/gcc-ooo/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc-ooo/distinfo b/lang/gcc-ooo/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc-ooo/distinfo +++ b/lang/gcc-ooo/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc-ooo/files/alpha-freebsd.h b/lang/gcc-ooo/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc-ooo/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc-ooo/files/patch-ad b/lang/gcc-ooo/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc-ooo/files/patch-ad +++ b/lang/gcc-ooo/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc-ooo/files/patch-af b/lang/gcc-ooo/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc-ooo/files/patch-af +++ b/lang/gcc-ooo/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc-ooo/files/patch-ak b/lang/gcc-ooo/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc-ooo/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc-ooo/files/patch-al b/lang/gcc-ooo/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc-ooo/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc-ooo/files/patch-fa b/lang/gcc-ooo/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc-ooo/files/patch-fa +++ b/lang/gcc-ooo/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc-ooo/files/patch-va b/lang/gcc-ooo/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc-ooo/files/patch-va +++ b/lang/gcc-ooo/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc/Makefile +++ b/lang/gcc/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc/distinfo +++ b/lang/gcc/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc/files/alpha-freebsd.h b/lang/gcc/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc/files/patch-ad b/lang/gcc/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc/files/patch-ad +++ b/lang/gcc/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc/files/patch-af b/lang/gcc/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc/files/patch-af +++ b/lang/gcc/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc/files/patch-ak b/lang/gcc/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc/files/patch-al b/lang/gcc/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc/files/patch-fa b/lang/gcc/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc/files/patch-fa +++ b/lang/gcc/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc/files/patch-va b/lang/gcc/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc/files/patch-va +++ b/lang/gcc/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc30/Makefile b/lang/gcc30/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc30/Makefile +++ b/lang/gcc30/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc30/distinfo b/lang/gcc30/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc30/distinfo +++ b/lang/gcc30/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc30/files/alpha-freebsd.h b/lang/gcc30/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc30/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc30/files/patch-ad b/lang/gcc30/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc30/files/patch-ad +++ b/lang/gcc30/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc30/files/patch-af b/lang/gcc30/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc30/files/patch-af +++ b/lang/gcc30/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc30/files/patch-ak b/lang/gcc30/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc30/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc30/files/patch-al b/lang/gcc30/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc30/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc30/files/patch-fa b/lang/gcc30/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc30/files/patch-fa +++ b/lang/gcc30/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc30/files/patch-va b/lang/gcc30/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc30/files/patch-va +++ b/lang/gcc30/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc31/Makefile b/lang/gcc31/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc31/Makefile +++ b/lang/gcc31/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc31/distinfo b/lang/gcc31/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc31/distinfo +++ b/lang/gcc31/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc31/files/alpha-freebsd.h b/lang/gcc31/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc31/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc31/files/patch-ad b/lang/gcc31/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc31/files/patch-ad +++ b/lang/gcc31/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc31/files/patch-af b/lang/gcc31/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc31/files/patch-af +++ b/lang/gcc31/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc31/files/patch-ak b/lang/gcc31/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc31/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc31/files/patch-al b/lang/gcc31/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc31/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc31/files/patch-fa b/lang/gcc31/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc31/files/patch-fa +++ b/lang/gcc31/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc31/files/patch-va b/lang/gcc31/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc31/files/patch-va +++ b/lang/gcc31/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc32/Makefile b/lang/gcc32/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc32/Makefile +++ b/lang/gcc32/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc32/distinfo b/lang/gcc32/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc32/distinfo +++ b/lang/gcc32/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc32/files/alpha-freebsd.h b/lang/gcc32/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc32/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc32/files/patch-ad b/lang/gcc32/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc32/files/patch-ad +++ b/lang/gcc32/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc32/files/patch-af b/lang/gcc32/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc32/files/patch-af +++ b/lang/gcc32/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc32/files/patch-ak b/lang/gcc32/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc32/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc32/files/patch-al b/lang/gcc32/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc32/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc32/files/patch-fa b/lang/gcc32/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc32/files/patch-fa +++ b/lang/gcc32/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc32/files/patch-va b/lang/gcc32/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc32/files/patch-va +++ b/lang/gcc32/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc33/Makefile b/lang/gcc33/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc33/Makefile +++ b/lang/gcc33/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc33/distinfo b/lang/gcc33/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc33/distinfo +++ b/lang/gcc33/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc33/files/alpha-freebsd.h b/lang/gcc33/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc33/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc33/files/patch-ad b/lang/gcc33/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc33/files/patch-ad +++ b/lang/gcc33/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc33/files/patch-af b/lang/gcc33/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc33/files/patch-af +++ b/lang/gcc33/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc33/files/patch-ak b/lang/gcc33/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc33/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc33/files/patch-al b/lang/gcc33/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc33/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc33/files/patch-fa b/lang/gcc33/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc33/files/patch-fa +++ b/lang/gcc33/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc33/files/patch-va b/lang/gcc33/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc33/files/patch-va +++ b/lang/gcc33/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc34/Makefile b/lang/gcc34/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc34/Makefile +++ b/lang/gcc34/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc34/distinfo b/lang/gcc34/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc34/distinfo +++ b/lang/gcc34/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc34/files/alpha-freebsd.h b/lang/gcc34/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc34/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc34/files/patch-ad b/lang/gcc34/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc34/files/patch-ad +++ b/lang/gcc34/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc34/files/patch-af b/lang/gcc34/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc34/files/patch-af +++ b/lang/gcc34/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc34/files/patch-ak b/lang/gcc34/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc34/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc34/files/patch-al b/lang/gcc34/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc34/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc34/files/patch-fa b/lang/gcc34/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc34/files/patch-fa +++ b/lang/gcc34/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc34/files/patch-va b/lang/gcc34/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc34/files/patch-va +++ b/lang/gcc34/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc35/Makefile b/lang/gcc35/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc35/Makefile +++ b/lang/gcc35/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc35/distinfo b/lang/gcc35/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc35/distinfo +++ b/lang/gcc35/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc35/files/alpha-freebsd.h b/lang/gcc35/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc35/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc35/files/patch-ad b/lang/gcc35/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc35/files/patch-ad +++ b/lang/gcc35/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc35/files/patch-af b/lang/gcc35/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc35/files/patch-af +++ b/lang/gcc35/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc35/files/patch-ak b/lang/gcc35/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc35/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc35/files/patch-al b/lang/gcc35/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc35/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc35/files/patch-fa b/lang/gcc35/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc35/files/patch-fa +++ b/lang/gcc35/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc35/files/patch-va b/lang/gcc35/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc35/files/patch-va +++ b/lang/gcc35/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc40/Makefile b/lang/gcc40/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc40/Makefile +++ b/lang/gcc40/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc40/distinfo b/lang/gcc40/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc40/distinfo +++ b/lang/gcc40/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc40/files/alpha-freebsd.h b/lang/gcc40/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc40/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc40/files/patch-ad b/lang/gcc40/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc40/files/patch-ad +++ b/lang/gcc40/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc40/files/patch-af b/lang/gcc40/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc40/files/patch-af +++ b/lang/gcc40/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc40/files/patch-ak b/lang/gcc40/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc40/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc40/files/patch-al b/lang/gcc40/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc40/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc40/files/patch-fa b/lang/gcc40/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc40/files/patch-fa +++ b/lang/gcc40/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc40/files/patch-va b/lang/gcc40/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc40/files/patch-va +++ b/lang/gcc40/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc41/Makefile b/lang/gcc41/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc41/Makefile +++ b/lang/gcc41/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc41/distinfo b/lang/gcc41/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc41/distinfo +++ b/lang/gcc41/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc41/files/alpha-freebsd.h b/lang/gcc41/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc41/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc41/files/patch-ad b/lang/gcc41/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc41/files/patch-ad +++ b/lang/gcc41/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc41/files/patch-af b/lang/gcc41/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc41/files/patch-af +++ b/lang/gcc41/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc41/files/patch-ak b/lang/gcc41/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc41/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc41/files/patch-al b/lang/gcc41/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc41/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc41/files/patch-fa b/lang/gcc41/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc41/files/patch-fa +++ b/lang/gcc41/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc41/files/patch-va b/lang/gcc41/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc41/files/patch-va +++ b/lang/gcc41/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc42/Makefile b/lang/gcc42/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc42/Makefile +++ b/lang/gcc42/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc42/distinfo b/lang/gcc42/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc42/distinfo +++ b/lang/gcc42/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc42/files/alpha-freebsd.h b/lang/gcc42/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc42/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc42/files/patch-ad b/lang/gcc42/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc42/files/patch-ad +++ b/lang/gcc42/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc42/files/patch-af b/lang/gcc42/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc42/files/patch-af +++ b/lang/gcc42/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc42/files/patch-ak b/lang/gcc42/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc42/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc42/files/patch-al b/lang/gcc42/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc42/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc42/files/patch-fa b/lang/gcc42/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc42/files/patch-fa +++ b/lang/gcc42/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc42/files/patch-va b/lang/gcc42/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc42/files/patch-va +++ b/lang/gcc42/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc43/Makefile b/lang/gcc43/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc43/Makefile +++ b/lang/gcc43/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc43/distinfo b/lang/gcc43/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc43/distinfo +++ b/lang/gcc43/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc43/files/alpha-freebsd.h b/lang/gcc43/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc43/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc43/files/patch-ad b/lang/gcc43/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc43/files/patch-ad +++ b/lang/gcc43/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc43/files/patch-af b/lang/gcc43/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc43/files/patch-af +++ b/lang/gcc43/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc43/files/patch-ak b/lang/gcc43/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc43/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc43/files/patch-al b/lang/gcc43/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc43/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc43/files/patch-fa b/lang/gcc43/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc43/files/patch-fa +++ b/lang/gcc43/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc43/files/patch-va b/lang/gcc43/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc43/files/patch-va +++ b/lang/gcc43/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc44/Makefile b/lang/gcc44/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc44/Makefile +++ b/lang/gcc44/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc44/distinfo b/lang/gcc44/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc44/distinfo +++ b/lang/gcc44/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc44/files/alpha-freebsd.h b/lang/gcc44/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc44/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc44/files/patch-ad b/lang/gcc44/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc44/files/patch-ad +++ b/lang/gcc44/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc44/files/patch-af b/lang/gcc44/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc44/files/patch-af +++ b/lang/gcc44/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc44/files/patch-ak b/lang/gcc44/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc44/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc44/files/patch-al b/lang/gcc44/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc44/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc44/files/patch-fa b/lang/gcc44/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc44/files/patch-fa +++ b/lang/gcc44/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc44/files/patch-va b/lang/gcc44/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc44/files/patch-va +++ b/lang/gcc44/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc45/Makefile b/lang/gcc45/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc45/Makefile +++ b/lang/gcc45/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc45/distinfo b/lang/gcc45/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc45/distinfo +++ b/lang/gcc45/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc45/files/alpha-freebsd.h b/lang/gcc45/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc45/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc45/files/patch-ad b/lang/gcc45/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc45/files/patch-ad +++ b/lang/gcc45/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc45/files/patch-af b/lang/gcc45/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc45/files/patch-af +++ b/lang/gcc45/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc45/files/patch-ak b/lang/gcc45/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc45/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc45/files/patch-al b/lang/gcc45/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc45/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc45/files/patch-fa b/lang/gcc45/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc45/files/patch-fa +++ b/lang/gcc45/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc45/files/patch-va b/lang/gcc45/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc45/files/patch-va +++ b/lang/gcc45/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc46/Makefile b/lang/gcc46/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc46/Makefile +++ b/lang/gcc46/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc46/distinfo b/lang/gcc46/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc46/distinfo +++ b/lang/gcc46/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc46/files/alpha-freebsd.h b/lang/gcc46/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc46/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc46/files/patch-ad b/lang/gcc46/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc46/files/patch-ad +++ b/lang/gcc46/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc46/files/patch-af b/lang/gcc46/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc46/files/patch-af +++ b/lang/gcc46/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc46/files/patch-ak b/lang/gcc46/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc46/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc46/files/patch-al b/lang/gcc46/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc46/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc46/files/patch-fa b/lang/gcc46/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc46/files/patch-fa +++ b/lang/gcc46/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc46/files/patch-va b/lang/gcc46/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc46/files/patch-va +++ b/lang/gcc46/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc47/Makefile +++ b/lang/gcc47/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc47/distinfo +++ b/lang/gcc47/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc47/files/alpha-freebsd.h b/lang/gcc47/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc47/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc47/files/patch-ad b/lang/gcc47/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc47/files/patch-ad +++ b/lang/gcc47/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc47/files/patch-af b/lang/gcc47/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc47/files/patch-af +++ b/lang/gcc47/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc47/files/patch-ak b/lang/gcc47/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc47/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc47/files/patch-al b/lang/gcc47/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc47/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc47/files/patch-fa b/lang/gcc47/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc47/files/patch-fa +++ b/lang/gcc47/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc47/files/patch-va b/lang/gcc47/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc47/files/patch-va +++ b/lang/gcc47/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile index 2e1cc84f07b..41832fb0d06 100644 --- a/lang/gcc48/Makefile +++ b/lang/gcc48/Makefile @@ -6,7 +6,7 @@ # $FreeBSD$ # -SNAPDATE= 2000-10-02 +SNAPDATE= 2000-11-20 SNAPVER= ${SNAPDATE:S/-//g} PORTNAME= gcc-devel @@ -18,25 +18,30 @@ MASTER_SITES= ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ -DISTFILES= egcs-core-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g++-${SNAPVER}${EXTRACT_SUFX} \ - egcs-g77-${SNAPVER}${EXTRACT_SUFX} \ - egcs-java-${SNAPVER}${EXTRACT_SUFX} \ - egcs-objc-${SNAPVER}${EXTRACT_SUFX} +DISTFILES= gcc-core-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g++-${SNAPVER}${EXTRACT_SUFX} \ + gcc-g77-${SNAPVER}${EXTRACT_SUFX} \ + gcc-java-${SNAPVER}${EXTRACT_SUFX} \ + gcc-objc-${SNAPVER}${EXTRACT_SUFX} MAINTAINER= obrien@FreeBSD.org NO_CDROM= 'dated material' +##WRKSRC= ${WRKDIR}/gcc-${SNAPVER} +##CONFIGURE_WRKSRC= ${WRKDIR}/build +##BUILD_WRKSRC= ${WRKDIR}/build +##INSTALL_WRKSRC= ${WRKDIR}/build +##CONFIGURE_SCRIPT= ${WRKSRC}/configure EGCS_REV= 2.97 LIBSTDCPP_REV= 4 -SRCDIR= ${WRKDIR}/egcs-${SNAPVER} +SRCDIR= ${WRKDIR}/gcc-${SNAPVER} WRKSRC= ${WRKDIR}/build PATCH_ARGS= -d ${SRCDIR} -E ${PATCH_STRIP} .if !defined(PATCH_DEBUG) PATCH_ARGS+= --forward --quiet .endif -CONFIGURE_SCRIPT= ../egcs-${SNAPVER}/configure +CONFIGURE_SCRIPT= ../gcc-${SNAPVER}/configure .include <bsd.port.pre.mk> @@ -68,9 +73,10 @@ pre-configure: @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \ ${SRCDIR}/gcc/config/freebsd.h ) - @${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h @# Keep from running `autoconf' and `autoheader' since we modified @# configure.in by patching it. + ##@touch ${WRKSRC}/gcc/configure + ##@touch ${WRKSRC}/gcc/cstamp-h.in @touch ${SRCDIR}/gcc/configure @touch ${SRCDIR}/gcc/cstamp-h.in @${MKDIR} ${CONFIGURE_WRKSRC} diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo index ae27d54cace..498df7e9635 100644 --- a/lang/gcc48/distinfo +++ b/lang/gcc48/distinfo @@ -1,5 +1,5 @@ -MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3 -MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9 -MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432 -MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48 -MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73 +MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee +MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd +MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6 +MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190 +MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a diff --git a/lang/gcc48/files/alpha-freebsd.h b/lang/gcc48/files/alpha-freebsd.h deleted file mode 100644 index a227b9444b9..00000000000 --- a/lang/gcc48/files/alpha-freebsd.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format - Copyright (C) 2000 Free Software Foundation, Inc. - Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org> - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES \ - "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" - -/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with - the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must - deal with the Alpha's FP issues. */ - -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE} \ - %{mieee:-D_IEEE_FP} \ - %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}" - -#undef LINK_SPEC -#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{p:%e`-p' not supported; use `-pg' and gprof(1)} \ - %{Wl,*:%*} \ - %{assert*} %{R*} %{rpath*} %{defsym*} \ - %{shared:-Bshareable %{h*} %{soname*}} \ - %{symbolic:-Bsymbolic} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ - %{static:-Bstatic}}" - -/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target. This differs - from the generic FreeBSD ASM_SPEC in that no special handling of PIC is - necessary on the Alpha. */ -/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch' - directive in the assembly file. alpha/elf.h gives us this in - "ASM_FILE_START". -#undef ASM_SPEC -#define ASM_SPEC " %| %{mcpu=*:-m%*}" -*/ - -/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h - definition. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ - "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the - magical crtend.o file which provides part of the support for - getting C++ file-scope static object constructed before entering - `main'. */ -/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h - definition. */ - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c, - c-common.c, and config/<arch>/<arch>.h. */ - -/* alpha.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ -#undef WCHAR_TYPE - -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits - machines (Alpha in this case). */ - -#if defined(__i386__) -#undef HOST_BITS_PER_LONG -#define HOST_BITS_PER_LONG 32 -#undef HOST_WIDE_INT -#define HOST_WIDE_INT long long -#undef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT 64 -#endif - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)"); - -#define TARGET_ELF 1 - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS) - -#undef HAS_INIT_SECTION - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. Under FreeBSD/Alpha, the assembler does - nothing special with -pg. */ - -#undef FUNCTION_PROFILER -#define FUNCTION_PROFILER(FILE, LABELNO) \ - fputs ("\tjsr $28,_mcount\n", (FILE)) - -/* Show that we need a GP when profiling. */ -#undef TARGET_PROFILING_NEEDS_GP -#define TARGET_PROFILING_NEEDS_GP 1 - -/* This is the char to use for continuation (in case we need to turn - continuation back on). */ - -#undef DBX_CONTIN_CHAR -#define DBX_CONTIN_CHAR '?' diff --git a/lang/gcc48/files/patch-ad b/lang/gcc48/files/patch-ad index 53927df8859..d11c865f10f 100644 --- a/lang/gcc48/files/patch-ad +++ b/lang/gcc48/files/patch-ad @@ -1,20 +1,18 @@ ---- gcc/config/i386/freebsd-aout.h.orig Mon Sep 25 06:03:18 2000 -+++ gcc/config/i386/freebsd-aout.h Tue Sep 26 12:23:26 2000 -@@ -31,12 +31,7 @@ +--- gcc/config/i386/freebsd-aout.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd-aout.h Mon Nov 27 01:45:04 2000 +@@ -31,8 +31,11 @@ /* 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) -- --#undef CPP_PREDEFINES --#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" ++/* + #define TARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) ++*/ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}" -@@ -84,14 +79,6 @@ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\ +@@ -84,14 +87,6 @@ necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 @@ -29,7 +27,7 @@ /* i386 freebsd still uses old binutils that don't insert nops by default when the .align directive demands to insert extra space in the text -@@ -102,19 +89,18 @@ +@@ -102,19 +97,18 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -52,7 +50,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -132,6 +118,7 @@ +@@ -132,6 +126,7 @@ #define TYPE_ASM_OP "\t.type\t" #define SIZE_ASM_OP "\t.size\t" @@ -60,7 +58,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -141,6 +128,12 @@ +@@ -141,6 +136,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -73,7 +71,7 @@ /* 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. */ -@@ -242,6 +235,8 @@ +@@ -242,6 +243,8 @@ #define STARTFILE_SPEC \ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" diff --git a/lang/gcc48/files/patch-af b/lang/gcc48/files/patch-af index f1058d4e21e..3941ebdce31 100644 --- a/lang/gcc48/files/patch-af +++ b/lang/gcc48/files/patch-af @@ -1,26 +1,15 @@ ---- gcc/config/i386/freebsd.h.orig Sun Jan 30 23:28:05 2000 -+++ gcc/config/i386/freebsd.h Fri Feb 4 05:22:36 2000 -@@ -52,6 +52,10 @@ - #undef DBX_REGISTER_NUMBER - #define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] - -+/* Don't use EGCS's normal profiling code -- we have our own fine-grained -+ basic block profiling. */ -+#define NO_PROFILE_COUNTERS -+ - /* Tell final.c that we don't need a label passed to mcount. */ - - #undef FUNCTION_PROFILER -@@ -73,11 +77,15 @@ +--- gcc/config/i386/freebsd.h.orig Thu Nov 2 15:29:09 2000 ++++ gcc/config/i386/freebsd.h Mon Nov 27 01:52:39 2000 +@@ -76,11 +76,15 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD - -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\ -- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)" +- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -+#undef CC1_SPEC ++#undef CC1_SPEC +#define CC1_SPEC "\ + %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \ + %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}" @@ -31,7 +20,7 @@ /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add the magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed -@@ -85,11 +93,11 @@ +@@ -88,11 +92,11 @@ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ @@ -48,7 +37,7 @@ /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on the magical crtend.o file (see crtstuff.c) which provides part of -@@ -99,7 +107,7 @@ +@@ -102,7 +106,7 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/lang/gcc48/files/patch-ak b/lang/gcc48/files/patch-ak deleted file mode 100644 index 98c373d4e98..00000000000 --- a/lang/gcc48/files/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure Mon Oct 9 18:55:44 2000 -@@ -3910,6 +3910,23 @@ - thread_file='posix' - fi - ;; -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" - target_cpu_default="MASK_GAS" diff --git a/lang/gcc48/files/patch-al b/lang/gcc48/files/patch-al deleted file mode 100644 index e2760943566..00000000000 --- a/lang/gcc48/files/patch-al +++ /dev/null @@ -1,26 +0,0 @@ ---- gcc/configure.in.orig Sun Oct 1 23:50:51 2000 -+++ gcc/configure.in Mon Oct 9 18:56:34 2000 -@@ -786,6 +786,23 @@ - if test x$enable_threads = xyes; then - thread_file='posix' - fi -+ alpha*-*-freebsd*) -+ tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h" -+ xm_file="${xm_file} xm-freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ xmake_file=none -+ fixincludes=fixinc.wrap -+ gas=yes gnu_ld=yes -+ stabs=yes -+ case x${enable_threads} in -+ xyes | xpthreads | xposix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ ;; -+ esac -+ ;; - ;; - alpha*-*-netbsd*) - tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" diff --git a/lang/gcc48/files/patch-fa b/lang/gcc48/files/patch-fa index d6b90e4ba86..d04530ab526 100644 --- a/lang/gcc48/files/patch-fa +++ b/lang/gcc48/files/patch-fa @@ -1,6 +1,6 @@ ---- gcc/c-common.c.orig Mon Sep 25 10:04:45 2000 -+++ gcc/c-common.c Mon Oct 9 02:51:14 2000 -@@ -171,7 +171,7 @@ +--- gcc/c-common.c.orig Thu Nov 16 22:05:12 2000 ++++ gcc/c-common.c Mon Nov 27 02:25:55 2000 +@@ -193,7 +193,7 @@ int, int, int)); static void init_attributes PARAMS ((void)); static void record_function_format PARAMS ((tree, tree, enum format_type, @@ -9,7 +9,7 @@ static void record_international_format PARAMS ((tree, tree, int)); static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -@@ -862,6 +862,7 @@ +@@ -888,6 +888,7 @@ enum format_type format_type; tree argument; unsigned int arg_num; @@ -17,7 +17,7 @@ if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -872,7 +873,7 @@ +@@ -898,7 +899,7 @@ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) { @@ -26,7 +26,7 @@ continue; } else -@@ -880,12 +881,26 @@ +@@ -906,12 +907,26 @@ const char *p = IDENTIFIER_POINTER (format_type_id); if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) @@ -52,8 +52,8 @@ + } else { - status_warning (status, "`%s' is an unrecognized format function type", p); -@@ -958,7 +973,8 @@ + warning ("`%s' is an unrecognized format function type", p); +@@ -990,7 +1005,8 @@ record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), @@ -63,7 +63,7 @@ break; } -@@ -1441,6 +1457,13 @@ +@@ -1654,6 +1670,13 @@ static const format_char_info print_char_table[] = { @@ -75,9 +75,9 @@ +#define unextended_print_char_table (print_char_table + 3) +#endif /* C89 conversion specifiers. */ - { "di", 0, STD_C89, { T89_I, T99_I, T89_I, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, - { "oxX", 0, STD_C89, { T89_UI, T99_UI, T89_UI, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, -@@ -1526,6 +1549,7 @@ + { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T99_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" }, + { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T99_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" }, +@@ -1752,6 +1775,7 @@ enum format_type format_type; /* type of format (printf, scanf, etc.) */ int format_num; /* number of format argument */ int first_arg_num; /* number of first arg (zero for varargs) */ @@ -85,7 +85,7 @@ } function_format_info; static function_format_info *function_format_list = NULL; -@@ -1570,42 +1594,42 @@ +@@ -1837,42 +1861,42 @@ { /* Functions from ISO/IEC 9899:1990. */ record_function_format (get_identifier ("printf"), NULL_TREE, @@ -144,7 +144,7 @@ } if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1630,12 +1654,13 @@ +@@ -1895,12 +1919,13 @@ static void record_function_format (name, assembler_name, format_type, @@ -159,7 +159,7 @@ { function_format_info *info; -@@ -1659,6 +1684,7 @@ +@@ -1924,6 +1949,7 @@ info->format_type = format_type; info->format_num = format_num; info->first_arg_num = first_arg_num; @@ -167,17 +167,17 @@ } /* Record information for the names of function that modify the format -@@ -2019,7 +2045,7 @@ - - if (integer_zerop (format_tree)) - { +@@ -2415,7 +2441,7 @@ + specially if info == NULL and add a res->number_null entry for + that case, or maybe add a function pointer to be called at + the end instead of hardcoding check_format_info_main. */ - status_warning (status, "null format string"); + if (!info->null_format_ok) status_warning (status, "null format string"); - return; - } - if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -2340,6 +2366,54 @@ - } + + /* Skip to first argument to check, so we can see if this format + has any arguments (it shouldn't). */ +@@ -2611,6 +2637,54 @@ + main_arg_num = opnum + info->first_arg_num - 1; } } + if (*format_chars == 'b') @@ -229,14 +229,14 @@ + } + } - aflag = 0; - -@@ -2441,7 +2515,7 @@ - status_warning (status, "width used with `%c' format", format_char); - if (index (fci->flags2, '3') != 0 - || (format_char == 'y' && index (flag_chars, 'E'))) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (index (fci->flags2, '2') != 0) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); + /* Read any format flags, but do not yet validate them beyond removing + duplicates, since in general validation depends on the rest of +@@ -2984,7 +3058,7 @@ + else if (strchr (fci->flags2, '2') != 0) + y2k_level = 2; + if (y2k_level == 3) +- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", ++ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", + format_char); + else if (y2k_level == 2) + status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc48/files/patch-va b/lang/gcc48/files/patch-va index 48040ffa6e9..9b046ee019f 100644 --- a/lang/gcc48/files/patch-va +++ b/lang/gcc48/files/patch-va @@ -1,20 +1,20 @@ ---- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999 -+++ gcc/Makefile.in Mon Mar 1 04:36:40 1999 -@@ -793,7 +793,7 @@ +--- gcc/Makefile.in.orig Sat Nov 18 16:30:05 2000 ++++ gcc/Makefile.in Mon Nov 27 02:29:50 2000 +@@ -863,7 +863,7 @@ rm -f config.run $(srcdir)/configure: $(srcdir)/configure.in -- cd $(srcdir); autoconf -+ cd $(srcdir); echo "wants to run autoconf" +- (cd $(srcdir) && autoconf) ++ (cd $(srcdir) && echo "wants to run autoconf") - # cstamp-h.in controls rebuilding of config.in. - # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -@@ -806,7 +806,7 @@ + gccbug: $(srcdir)/gccbug.in + CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status +@@ -882,7 +882,7 @@ # ??? Newer versions have a maintainer mode that may be useful here. $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -- cd $(srcdir) && autoheader -+ cd $(srcdir) && echo "want to run autoheader" +- (cd $(srcdir) && autoheader) ++ (cd $(srcdir) && echo "wants to run autoheader") @rm -f $(srcdir)/cstamp-h.in echo timestamp > $(srcdir)/cstamp-h.in auto-host.h: cstamp-h ; @true |