diff options
28 files changed, 609 insertions, 325 deletions
diff --git a/gnu/gnu2bmake/gcc-2.6.1.patch b/gnu/gnu2bmake/gcc-2.6.1.patch index 2260b41..fb17501 100644 --- a/gnu/gnu2bmake/gcc-2.6.1.patch +++ b/gnu/gnu2bmake/gcc-2.6.1.patch @@ -1,178 +1,407 @@ -diff -u -r /freebsd/gcc-2.6.1/cccp.c ./cccp.c ---- /freebsd/gcc-2.6.1/cccp.c Tue Oct 25 15:37:44 1994 -+++ ./cccp.c Wed Nov 2 17:36:25 1994 -@@ -188,7 +188,7 @@ - #ifndef VMS - #ifndef HAVE_STRERROR - extern int sys_nerr; --#if defined(bsd4_4) || defined(__NetBSD__) -+#if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__) - extern const char *const sys_errlist[]; - #else - extern char *sys_errlist[]; +# this patch is good for 2.6.1 and 2.6.2 + +diff -r -c ../../scratch/gcc-2.6.1/cccp.1 ./cccp.1 +*** ../../scratch/gcc-2.6.1/cccp.1 Tue May 31 16:29:50 1994 +--- ./cccp.1 Mon Nov 14 19:42:44 1994 +*************** +*** 1,13 **** + .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation \-*-Text-*- + .\" See section COPYING for conditions for redistribution +! .TH cpp 1 "30apr1993" "GNU Tools" "GNU Tools" + .SH NAME +! cccp, cpp \- The GNU C-Compatible Compiler Preprocessor. + .SH SYNOPSIS + .hy 0 + .na + .TP +! .B cccp + .RB "[\|" \-$ "\|]" + .RB "[\|" \-A \c + .I predicate\c +--- 1,13 ---- + .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation \-*-Text-*- + .\" See section COPYING for conditions for redistribution +! .TH cpp 1 "30, April 1993" "FreeBSD" "GNU Tools" + .SH NAME +! cpp \- Compiler Preprocessor. + .SH SYNOPSIS + .hy 0 + .na + .TP +! .B cpp + .RB "[\|" \-$ "\|]" + .RB "[\|" \-A \c + .I predicate\c +*************** +*** 142,154 **** + Most often when you use the C preprocessor you will not have to invoke it + explicitly: the C compiler will do so automatically. However, the + preprocessor is sometimes useful individually. +- +- When you call the preprocessor individually, either name +- (\c +- .B cpp\c +- \& or \c +- .B cccp\c +- \&) will do\(em\&they are completely synonymous. + + The C preprocessor expects two file names as arguments, \c + .I infile\c +--- 142,147 ---- +Only in .: cccp.1.orig +diff -r -c ../../scratch/gcc-2.6.1/cccp.c ./cccp.c +*** ../../scratch/gcc-2.6.1/cccp.c Tue Oct 25 15:37:44 1994 +--- ./cccp.c Mon Nov 14 19:40:30 1994 +*************** +*** 188,194 **** + #ifndef VMS + #ifndef HAVE_STRERROR + extern int sys_nerr; +! #if defined(bsd4_4) || defined(__NetBSD__) + extern const char *const sys_errlist[]; + #else + extern char *sys_errlist[]; +--- 188,194 ---- + #ifndef VMS + #ifndef HAVE_STRERROR + extern int sys_nerr; +! #if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__) + extern const char *const sys_errlist[]; + #else + extern char *sys_errlist[]; Only in .: cccp.c.orig -Only in .: cccp.o -Only in .: cexp.o -diff -u -r /freebsd/gcc-2.6.1/collect2.c ./collect2.c ---- /freebsd/gcc-2.6.1/collect2.c Thu Oct 20 15:05:46 1994 -+++ ./collect2.c Wed Nov 2 17:36:25 1994 -@@ -41,7 +41,7 @@ - extern int errno; - #endif - --#if defined(bsd4_4) || defined(__NetBSD__) -+#if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__) - extern const char *const sys_errlist[]; - #else - extern char *sys_errlist[]; -Only in .: collect2.c.orig -diff -u -r /freebsd/gcc-2.6.1/config/i386/freebsd.h ./config/i386/freebsd.h ---- /freebsd/gcc-2.6.1/config/i386/freebsd.h Tue Oct 18 17:59:52 1994 -+++ ./config/i386/freebsd.h Wed Nov 2 17:36:37 1994 -@@ -33,11 +33,13 @@ - #undef CPP_PREDEFINES - #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)" - -+#if 0 - #define INCLUDE_DEFAULTS { \ - { "/usr/include", 0 }, \ - { "/usr/include/g++", 1 }, \ - { 0, 0} \ - } -+#endif - - /* Like the default, except no -lg. */ - #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" +Only in .: cccp.c.rej +diff -r -c ../../scratch/gcc-2.6.1/config/i386/freebsd.h ./config/i386/freebsd.h +*** ../../scratch/gcc-2.6.1/config/i386/freebsd.h Tue Oct 18 17:59:52 1994 +--- ./config/i386/freebsd.h Mon Nov 14 19:41:07 1994 +*************** +*** 19,27 **** + along with GNU CC; see the file COPYING. If not, write to + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +- /* This goes away when the math-emulator is fixed */ +- #define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ +- + /* This is tested by i386gas.h. */ + #define YES_UNDERSCORES + +--- 19,24 ---- +*************** +*** 31,37 **** + #include "i386/perform.h" + + #undef CPP_PREDEFINES +! #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -D__386BSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)" + + #define INCLUDE_DEFAULTS { \ + { "/usr/include", 0 }, \ +--- 28,34 ---- + #include "i386/perform.h" + + #undef CPP_PREDEFINES +! #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__=2 -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)" + + #define INCLUDE_DEFAULTS { \ + { "/usr/include", 0 }, \ +*************** +*** 39,47 **** +--- 36,54 ---- + { 0, 0} \ + } + ++ #define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k}" ++ + /* Like the default, except no -lg. */ + #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" + ++ #define LINK_SPEC \ ++ "%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} %{assert*} \ ++ %{p:-Bstatic} %{pg:-Bstatic} %{Z}" ++ ++ /* This goes away when the math emulator is fixed. */ ++ #undef TARGET_DEFAULT ++ #define TARGET_DEFAULT (MASK_NO_FANCY_MATH_387 | 0301) ++ + #undef SIZE_TYPE + #define SIZE_TYPE "unsigned int" + +*************** +*** 49,80 **** + #define PTRDIFF_TYPE "int" + + #undef WCHAR_TYPE +! #define WCHAR_TYPE "short unsigned int" + +! #define WCHAR_UNSIGNED 1 + + #undef WCHAR_TYPE_SIZE +! #define WCHAR_TYPE_SIZE 16 + + #define HAVE_ATEXIT + +! /* Redefine this to use %eax instead of %edx. */ + #undef FUNCTION_PROFILER + #define FUNCTION_PROFILER(FILE, LABELNO) \ + { \ + if (flag_pic) \ +! { \ +! fprintf (FILE, "\tleal %sP%d@GOTOFF(%%ebx),%%eax\n", \ +! LPREFIX, (LABELNO)); \ +! fprintf (FILE, "\tcall *mcount@GOT(%%ebx)\n"); \ +! } \ + else \ +! { \ +! fprintf (FILE, "\tmovl $%sP%d,%%eax\n", LPREFIX, (LABELNO)); \ +! fprintf (FILE, "\tcall mcount\n"); \ +! } \ + } + + /* There are conflicting reports about whether this system uses + a different assembler syntax. wilson@cygnus.com says # is right. */ + #undef COMMENT_BEGIN +--- 56,95 ---- + #define PTRDIFF_TYPE "int" + + #undef WCHAR_TYPE +! #define WCHAR_TYPE "int" + +! #define WCHAR_UNSIGNED 0 + + #undef WCHAR_TYPE_SIZE +! #define WCHAR_TYPE_SIZE BITS_PER_WORD + + #define HAVE_ATEXIT + +! /* Tell final.c that we don't need a label passed to mcount. */ +! +! #define NO_PROFILE_DATA +! +! /* Redefine this to not pass an unused label in %edx. */ +! + #undef FUNCTION_PROFILER + #define FUNCTION_PROFILER(FILE, LABELNO) \ + { \ + if (flag_pic) \ +! fprintf (FILE, "\tcall *mcount@GOT(%%ebx)\n"); \ + else \ +! fprintf (FILE, "\tcall mcount\n"); \ + } + ++ #if 0 /* not ready for this; it should be decided at compile time */ ++ #define FUNCTION_PROFILER_EPILOGUE(FILE) \ ++ { \ ++ if (flag_pic) \ ++ fprintf (FILE, "\tcall *mexitcount@GOT(%%ebx)\n"); \ ++ else \ ++ fprintf (FILE, "\tcall mexitcount\n"); \ ++ } ++ #endif ++ + /* There are conflicting reports about whether this system uses + a different assembler syntax. wilson@cygnus.com says # is right. */ + #undef COMMENT_BEGIN +*************** +*** 218,227 **** + putc ('\n', FILE); \ + } \ + } while (0) +- +- #define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k}" +- #define LINK_SPEC \ +- "%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} %{assert*}" + + /* This is defined when gcc is compiled in the BSD-directory-tree, and must + * make up for the gap to all the stuff done in the GNU-makefiles. +--- 233,238 ---- Only in ./config/i386: freebsd.h.orig -diff -u -r /freebsd/gcc-2.6.1/config/i386/x-freebsd ./config/i386/x-freebsd ---- /freebsd/gcc-2.6.1/config/i386/x-freebsd Mon Oct 31 04:52:41 1994 -+++ ./config/i386/x-freebsd Wed Nov 2 18:45:36 1994 -@@ -1,3 +1,6 @@ - # Don't run fixproto - STMP_FIXPROTO = --CLIB=-lgnumalloc -+CLIB = -lgnumalloc -+ -+# Find FreeBSD's includes before resorting to GCC's -+LIBGCC2_INCLUDES -I/usr/include -Only in .: config.h -Only in .: config.status -Only in ./cp: Makefile -diff -u -r /freebsd/gcc-2.6.1/cp/g++.c ./cp/g++.c ---- /freebsd/gcc-2.6.1/cp/g++.c Sat Oct 29 04:17:44 1994 -+++ ./cp/g++.c Wed Nov 2 17:36:42 1994 -@@ -84,7 +84,7 @@ - #endif - - extern int sys_nerr; --#if defined(bsd4_4) || defined(__NetBSD__) -+#if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__) - extern const char *const sys_errlist[]; - #else - extern char *sys_errlist[]; +diff -r -c ../../scratch/gcc-2.6.1/config/i386/i386.c ./config/i386/i386.c +*** ../../scratch/gcc-2.6.1/config/i386/i386.c Fri Oct 7 12:45:14 1994 +--- ./config/i386/i386.c Mon Nov 14 19:41:27 1994 +*************** +*** 1097,1103 **** + int limit; + rtx xops[4]; + int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +! || current_function_uses_const_pool); + + xops[0] = stack_pointer_rtx; + xops[1] = frame_pointer_rtx; +--- 1097,1104 ---- + int limit; + rtx xops[4]; + int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +! || current_function_uses_const_pool +! || profile_flag || profile_block_flag); + + xops[0] = stack_pointer_rtx; + xops[1] = frame_pointer_rtx; +*************** +*** 1158,1165 **** + int nregs = 0; + int reglimit = (frame_pointer_needed + ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); +! int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +! || current_function_uses_const_pool); + + #ifdef NON_SAVING_SETJMP + if (NON_SAVING_SETJMP && current_function_calls_setjmp) +--- 1159,1174 ---- + int nregs = 0; + int reglimit = (frame_pointer_needed + ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); +! +! #ifdef FUNCTION_PROFILER_EPILOGUE +! if (profile_flag) +! return 0; +! #endif +! +! if (flag_pic && (current_function_uses_pic_offset_table +! || current_function_uses_const_pool +! || profile_flag || profile_block_flag)) +! return 0; + + #ifdef NON_SAVING_SETJMP + if (NON_SAVING_SETJMP && current_function_calls_setjmp) +*************** +*** 1170,1177 **** + return 0; + + for (regno = reglimit - 1; regno >= 0; regno--) +! if ((regs_ever_live[regno] && ! call_used_regs[regno]) +! || (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used)) + nregs++; + + return nregs == 0 || ! frame_pointer_needed; +--- 1179,1185 ---- + return 0; + + for (regno = reglimit - 1; regno >= 0; regno--) +! if (regs_ever_live[regno] && ! call_used_regs[regno]) + nregs++; + + return nregs == 0 || ! frame_pointer_needed; +*************** +*** 1193,1198 **** +--- 1201,1211 ---- + rtx xops[3]; + int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table + || current_function_uses_const_pool); ++ ++ #ifdef FUNCTION_PROFILER_EPILOGUE ++ if (profile_flag) ++ FUNCTION_PROFILER_EPILOGUE (file); ++ #endif + + /* Compute the number of registers to pop */ + +Only in ./config/i386: i386.c.orig +diff -r -c ../../scratch/gcc-2.6.1/cp/g++.c ./cp/g++.c +*** ../../scratch/gcc-2.6.1/cp/g++.c Sat Oct 29 04:17:44 1994 +--- ./cp/g++.c Mon Nov 14 19:41:16 1994 +*************** +*** 84,90 **** + #endif + + extern int sys_nerr; +! #if defined(bsd4_4) || defined(__NetBSD__) + extern const char *const sys_errlist[]; + #else + extern char *sys_errlist[]; +--- 84,90 ---- + #endif + + extern int sys_nerr; +! #if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__) + extern const char *const sys_errlist[]; + #else + extern char *sys_errlist[]; Only in ./cp: g++.c.orig -Only in ./cp: include -Only in ./cp: stage1 -Only in ./cp: stage2 -Only in ./cp: stage3 -Only in ./cp: stage4 -Only in .: cpp -Only in .: float.h-nat -diff -u -r /freebsd/gcc-2.6.1/gcc.c ./gcc.c ---- /freebsd/gcc-2.6.1/gcc.c Thu Oct 27 15:49:58 1994 -+++ ./gcc.c Wed Nov 2 17:36:43 1994 -@@ -166,7 +166,7 @@ - #endif - - extern int sys_nerr; --#if defined(bsd4_4) || defined(__NetBSD__) -+#if defined(bsd4_4) || defined(__NetBSD__) || defined (__FreeBSD__) - extern const char *const sys_errlist[]; - #else - extern char *sys_errlist[]; +Only in ../../scratch/gcc-2.6.1: cpp.1 +Only in .: cpp.1.orig +Only in .: cpp.1.rej +Only in .: cpp.1.rej.orig +diff -r -c ../../scratch/gcc-2.6.1/final.c ./final.c +*** ../../scratch/gcc-2.6.1/final.c Tue Sep 20 17:05:03 1994 +--- ./final.c Mon Nov 14 19:40:32 1994 +*************** +*** 957,970 **** +--- 957,974 ---- + profile_function (file) + FILE *file; + { ++ #ifndef NO_PROFILE_DATA + int align = MIN (BIGGEST_ALIGNMENT, POINTER_SIZE); ++ #endif /* not NO_PROFILE_DATA */ + int sval = current_function_returns_struct; + int cxt = current_function_needs_context; + ++ #ifndef NO_PROFILE_DATA + data_section (); + ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT)); + ASM_OUTPUT_INTERNAL_LABEL (file, "LP", profile_label_no); + assemble_integer (const0_rtx, POINTER_SIZE / BITS_PER_UNIT, 1); ++ #endif /* not NO_PROFILE_DATA */ + + text_section (); + +Only in .: final.c.orig +Only in .: final.c.rej +diff -r -c ../../scratch/gcc-2.6.1/gcc.c ./gcc.c +*** ../../scratch/gcc-2.6.1/gcc.c Thu Oct 27 15:49:58 1994 +--- ./gcc.c Mon Nov 14 19:41:18 1994 +*************** +*** 166,172 **** + #endif + + extern int sys_nerr; +! #if defined(bsd4_4) || defined(__NetBSD__) + extern const char *const sys_errlist[]; + #else + extern char *sys_errlist[]; +--- 166,172 ---- + #endif + + extern int sys_nerr; +! #if defined(bsd4_4) || defined(__NetBSD__) || defined (__FreeBSD__) + extern const char *const sys_errlist[]; + #else + extern char *sys_errlist[]; +*************** +*** 711,716 **** +--- 711,745 ---- + %{!S:%{!gnatc:%{!gnats:as %{R} %{j} %{J} %{h} %{d2} %a %Y\ + %{c:%W{o*}%{!o*:-o %w%b.o}}\ + %{!c:-o %d%w%u.o} %{!pipe:%g.s} %A\n}}}}}} "}, ++ /***** ljo's Fortran rule *****/ ++ {".f", "@f2c"}, ++ {"@f2c", ++ "f2c %{checksubscripts:-C} %{I2} %{onetrip} %{honorcase:-U} %{u} %{w}\ ++ %{ANSIC:-A} %{a} %{C++}\ ++ %{c} %{E} %{ec} %{ext} %{f} %{72} %{g} %{h} %{i2} %{kr}\ ++ %{P} %{p} %{r} %{r8} %{s} %{w8} %{z} %{N*}\ ++ %i %{!pipe: -o %g.c} %{pipe:-o -}|\n", ++ "cpp -lang-c %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\ ++ %{C:%{!E:%eGNU C does not support -C without using -E}}\ ++ %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\ ++ -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\ ++ %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\ ++ %{!undef:%{!ansi:%p} %P} %{trigraphs} \ ++ %c %{O*:%{!O0:-D__OPTIMIZE__}} %{traditional} %{ftraditional:-traditional}\ ++ %{traditional-cpp:-traditional}\ ++ %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %C %{D*} %{U*} %{i*}\ ++ %{pipe:-} %{!pipe:%g.c} %{!M:%{!MM:%{!E:%{!pipe:%g.i}}}}%{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}} |\n", ++ "%{!M:%{!MM:%{!E:cc1 %{!pipe:%g.i} %1 \ ++ %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a}\ ++ %{g*} %{O*} %{W*} %{w} %{pedantic*} %{ansi} \ ++ %{traditional} %{v:-version} %{pg:-p} %{p} %{f*}\ ++ %{aux-info*}\ ++ %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ ++ %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\ ++ %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %Y\ ++ %{c:%W{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%u.o}\ ++ %{!pipe:%g.s} %A\n }}}}"}, ++ /***** End of ljo's Fortran rule *****/ + /* Mark end of table */ + {0, 0} + }; Only in .: gcc.c.orig -Only in .: gfloat.h -diff -u -r /freebsd/gcc-2.6.1/ginclude/stdarg.h ./ginclude/stdarg.h ---- /freebsd/gcc-2.6.1/ginclude/stdarg.h Fri Jul 8 19:04:27 1994 -+++ ./ginclude/stdarg.h Wed Nov 2 17:36:49 1994 -@@ -136,13 +136,13 @@ - But on BSD NET2 we must not test or define or undef it. - (Note that the comments in NET 2's ansi.h - are incorrect for _VA_LIST_--see stdio.h!) */ --#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) || defined (__FreeBSD__) -+#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) - /* The macro _VA_LIST is used in SCO Unix 3.2. */ - #ifndef _VA_LIST - /* The macro _VA_LIST_T_H is used in the Bull dpx2 */ - #ifndef _VA_LIST_T_H - #define _VA_LIST_T_H --#if !(defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) || defined (__FreeBSD__)) -+#if !(defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) - #define _VA_LIST_ - #endif - #define _VA_LIST -Only in ./ginclude: stdarg.h.orig -diff -u -r /freebsd/gcc-2.6.1/ginclude/stddef.h ./ginclude/stddef.h ---- /freebsd/gcc-2.6.1/ginclude/stddef.h Fri Oct 7 16:22:35 1994 -+++ ./ginclude/stddef.h Wed Nov 2 17:36:54 1994 -@@ -22,7 +22,7 @@ - - /* On 4.3bsd-net2, make sure ansi.h is included, so we have - one less case to deal with in the following. */ --#if defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__FreeBSD__) -+#if defined (__BSD_NET2__) || defined (____FreeBSD____) - #include <machine/ansi.h> - #endif - -Only in ./ginclude: stddef.h.orig -diff -u -r /freebsd/gcc-2.6.1/ginclude/varargs.h ./ginclude/varargs.h ---- /freebsd/gcc-2.6.1/ginclude/varargs.h Fri Jul 8 19:04:32 1994 -+++ ./ginclude/varargs.h Wed Nov 2 17:36:59 1994 -@@ -151,13 +151,13 @@ - /* Michael Eriksson <mer@sics.se> at Thu Sep 30 11:00:57 1993: - Sequent defines _VA_LIST_ in <machine/machtypes.h> to be the type to - use for va_list (``typedef _VA_LIST_ va_list'') */ --#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__) -+#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) || defined (__sequent__) - /* The macro _VA_LIST is used in SCO Unix 3.2. */ - #ifndef _VA_LIST - /* The macro _VA_LIST_T_H is used in the Bull dpx2 */ - #ifndef _VA_LIST_T_H - #define _VA_LIST_T_H --#if !(defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__)) -+#if !(defined (__BSD_NET2__) || defined (____FreeBSD____) || defined (__bsdi__) || defined (__sequent__) - #define _VA_LIST_ - #endif - #define _VA_LIST -Only in ./ginclude: varargs.h.orig -Only in .: hconfig.h -Only in .: include -Only in .: libgcc.a -Only in .: libgcc1.a -Only in .: libgcc2.a -Only in .: libgcc2.ready -Only in .: md -Only in .: multilib.h -Only in .: objc-headers -Only in .: obstack.o -diff -u -r /freebsd/gcc-2.6.1/protoize.c ./protoize.c ---- /freebsd/gcc-2.6.1/protoize.c Tue Oct 4 20:17:40 1994 -+++ ./protoize.c Wed Nov 2 17:37:00 1994 -@@ -79,7 +79,7 @@ - #undef getopt - - extern int errno; --#if defined(bsd4_4) || defined(__NetBSD__) -+#if defined(bsd4_4) || defined(__NetBSD__) || defined (__FreeBSD__) - extern const char *const sys_errlist[]; - #else - extern char *sys_errlist[]; -Only in .: protoize.c.orig -Only in .: stage1 -Only in .: stmp-fixinc -Only in .: stmp-headers -Only in .: stmp-int-hdrs -Only in .: tconfig.h -Only in .: tm.h -Only in .: version.o -Only in .: xlimits.h diff --git a/gnu/gnu2bmake/gcc-2.6.1.tcl b/gnu/gnu2bmake/gcc-2.6.1.tcl index 8b1ef7a..a56c804 100755 --- a/gnu/gnu2bmake/gcc-2.6.1.tcl +++ b/gnu/gnu2bmake/gcc-2.6.1.tcl @@ -7,16 +7,17 @@ # this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp # ---------------------------------------------------------------------------- # -# $FreeBSD$ +# $Id$ # +# Good for 2.6.1 and 2.6.2 source gnu2bmake.tcl ####################################################################### # Parameters to tweak ######## -set sdir /freebsd/A/gcc-2.6.1 -set ddir /freebsd/A/cc261 +set sdir /freebsd/gcc-2.6.2 +set ddir /freebsd/cc262 ####################################################################### # Do the stunt @@ -94,21 +95,37 @@ set target [makefile_macro target $sdir] sh "rm -rf $ddir" sh "mkdir $ddir" set f [open $ddir/Makefile.inc w] -puts $f "#\n# \$FreeBSD\$\n#\n" +puts $f "#\n# \$Id\$\n#\n" puts $f "CFLAGS+=\t-I\${.CURDIR} -I\${.CURDIR}/../include" puts $f "CFLAGS+=\t-Dbsd4_4" puts $f "CFLAGS+=\t-DGCC_INCLUDE_DIR=\\\"FOO\\\"" -puts $f "CFLAGS+=\t-DGPLUSPLUS_INCLUDE_DIR=\\\"FOO\\\"" puts $f "CFLAGS+=\t-DTOOL_INCLUDE_DIR=\\\"FOO\\\"" +puts $f "CFLAGS+=\t-DGPLUSPLUS_INCLUDE_DIR=\\\"FOO\\\"" puts $f "CFLAGS+=\t-DDEFAULT_TARGET_VERSION=\\\"$version\\\"" puts $f "CFLAGS+=\t-DDEFAULT_TARGET_MACHINE=\\\"$target\\\"" puts $f "CFLAGS+=\t-DMD_EXEC_PREFIX=\\\"/usr/libexec/\\\"" puts $f "CFLAGS+=\t-DSTANDARD_STARTFILE_PREFIX=\\\"/usr/lib\\\"" +puts $f "CFLAGS+=\t-DGCC_NAME=\\\"cc\\\"" +puts $f "" +puts $f ".if exists(\${.CURDIR}/../cc_int/obj)" +puts $f "LIBDESTDIR=\t\${.CURDIR}/../cc_int/obj" +puts $f ".else" +puts $f "LIBDESTDIR=\t\${.CURDIR}/../cc_int" +puts $f ".endif" +puts $f "" + +puts $f "# XXX LDDESTDIR isn't a directory and there is no standard name for the dir" +puts $f "LDDESTDIR=\t-L\${LIBDESTDIR}" +puts $f ".if defined(SHARED_LIBCC_INT)" +puts $f "LIBCC_INT=\t\${LIBDESTDIR}/libcc_int.so.262.0" +puts $f ".else" +puts $f "LIBCC_INT=\t\${LIBDESTDIR}/libcc_int.a" +puts $f ".endif" close $f set f [open $ddir/Makefile w] -puts $f "#\n# \$FreeBSD\$\n#\n" -puts $f "PGMDIR=\tcc_int cpp cc1 cc cc1plus c++ libgcc" +puts $f "#\n# \$Id\$\n#\n" +puts $f "PGMDIR=\tcc_int cpp cc1 cc cc1plus c++ f77 libgcc" puts $f "SUBDIR=\t\$(PGMDIR)" puts $f "\n.include <bsd.subdir.mk>" close $f @@ -118,7 +135,7 @@ sh "mkdir $ddir/legal" sh "cp $sdir/gen-*.c $sdir/md $ddir/legal" set f [open $ddir/README w] puts $f { -$FreeBSD$ +$Id$ This directory contains gcc in a form that uses "bmake" makefiles. This is not the place you want to start, if you want to hack gcc. @@ -137,11 +154,11 @@ Thankyou. # do ~/libgcc sh "mkdir $ddir/libgcc" set f [open $ddir/libgcc/Makefile w] -puts $f "#\n# \$FreeBSD\$\n#\n" +puts $f "#\n# \$Id\$\n#\n" puts $f "LIB=\tgcc" puts $f "INSTALL_PIC_ARCHIVE=\tyes" -puts $f "SHLIB_MAJOR=\t26" -puts $f "SHLIB_MINOR=\t1" +puts $f "SHLIB_MAJOR=\t261" +puts $f "SHLIB_MINOR=\t0" puts $f "" puts $f "LIB1OBJS=\t[add_suffix $l_libgcc1 .o]" puts $f "LIB2OBJS=\t[add_suffix $l_libgcc2 .o]" @@ -195,28 +212,31 @@ copy_l $sdir/config/i386 $ddir/include/i386 [add_suffix $l_include_i386 .h] # do ~/cc_int mk_lib $ddir cc_int [add_suffix $l_common .c] { - "NOPROFILE=\t1" + "NOPROFILE=\tyes" + ".if defined(SHARED_LIBCC_INT)" + "INTERNALLIB=" + "SHLIB_MAJOR=262" + "SHLIB_MINOR=0" + ".else" "\ninstall:\n\t@true" + ".endif" } copy_c $sdir $ddir/cc_int $l_common # do ~/cpp mk_prog $ddir cpp [add_suffix $l_cpp .c] { "BINDIR=\t/usr/libexec" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int/obj" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int" - "LDADD+=\t-lcc_int" + ".PATH:\t\${.CURDIR}/../cc_int" + "SRCS+=\tobstack.c version.c" } copy_c $sdir $ddir/cpp $l_cpp -cp $sdir/cpp.1 $ddir/cpp/cpp.1 +cp $sdir/cccp.1 $ddir/cpp/cpp.1 # do ~/c++ mk_prog $ddir c++ [add_suffix "$l_cplus $l_cplus_cp" .c] { "BINDIR=\t/usr/bin" + "LINKS=\t\${BINDIR}/c++ \${BINDIR}/g++" "NOMAN=\t1" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int/obj" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int" - "LDADD+=\t-lcc_int" } copy_c $sdir $ddir/c++ $l_cplus copy_c $sdir/cp $ddir/c++ $l_cplus_cp @@ -224,13 +244,9 @@ copy_c $sdir/cp $ddir/c++ $l_cplus_cp # do ~/cc mk_prog $ddir cc [add_suffix $l_cc .c] { "BINDIR=\t/usr/bin" - "MLINKS+=cc.1 gcc.1" - "MLINKS+=cc.1 c++.1" - "MLINKS+=cc.1 g++.1" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int/obj" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int" - "LDADD+=\t-lcc_int" - "\nafterinstall:\n\tcd \$(DESTDIR)\$(BINDIR) ; rm gcc ; ln -s cc gcc" + ".PATH: \${.CURDIR}/../cc_int" + "SRCS+=\tobstack.c version.c" + "LINKS=\t\${BINDIR}/cc \${BINDIR}/gcc" } copy_c $sdir $ddir/cc $l_cc cp $sdir/gcc.1 $ddir/cc/cc.1 @@ -239,9 +255,8 @@ cp $sdir/gcc.1 $ddir/cc/cc.1 mk_prog $ddir cc1 [add_suffix $l_cc1 .c] { "BINDIR=\t/usr/libexec" "NOMAN=\t1" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int/obj" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int" - "LDADD+=\t-lcc_int" + "DPADD+=\t\${LIBCC_INT} \${LIBGNUMALLOC}" + "LDADD+=\t-lcc_int -lgnumalloc" } copy_c $sdir $ddir/cc1 $l_cc1 @@ -249,9 +264,8 @@ copy_c $sdir $ddir/cc1 $l_cc1 mk_prog $ddir cc1plus [add_suffix "$l_cc1plus_cp $l_cc1plus" .c] { "BINDIR=\t/usr/libexec" "NOMAN=\t1" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int/obj" - "LDDESTDIR+=\t-L\${.CURDIR}/../cc_int" - "LDADD+=\t-lcc_int" + "DPADD+=\t\${LIBCC_INT} \${LIBGNUMALLOC}" + "LDADD+=\t-lcc_int -lgnumalloc" } copy_l $sdir/cp $ddir/cc1plus $l_cc1plus_x copy_c $sdir $ddir/cc1plus $l_cc1plus diff --git a/gnu/gnu2bmake/gnu2bmake.tcl b/gnu/gnu2bmake/gnu2bmake.tcl index 7422173..a99b1b3 100644 --- a/gnu/gnu2bmake/gnu2bmake.tcl +++ b/gnu/gnu2bmake/gnu2bmake.tcl @@ -7,7 +7,7 @@ # this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp # ---------------------------------------------------------------------------- # -# $FreeBSD$ +# $Id$ # ####################################################################### # Generic procedures usable in the process of gnu-to-bmake jobs. @@ -166,7 +166,7 @@ proc makefile_macro {macro dir {makefile Makefile}} { proc mk_prog {ddir name list {make ""}} { sh "mkdir $ddir/$name" set f [open $ddir/$name/Makefile w] - puts $f "#\n# \$FreeBSD\$\n#\n" + puts $f "#\n# \$Id\$\n#\n" puts $f "PROG =\t$name" puts $f "SRCS =\t[lsort $list]" foreach i $make {puts $f $i} @@ -184,7 +184,7 @@ proc mk_prog {ddir name list {make ""}} { proc mk_lib {ddir name list {make ""}} { sh "mkdir $ddir/$name" set f [open $ddir/$name/Makefile w] - puts $f "#\n# \$FreeBSD\$\n#\n" + puts $f "#\n# \$Id\$\n#\n" puts $f "SRCS =\t[lsort $list]" puts $f "LIB =\t$name" foreach i $make {puts $f $i} diff --git a/gnu/lib/libgcc/Makefile b/gnu/lib/libgcc/Makefile index e40c4b4..78e2809 100644 --- a/gnu/lib/libgcc/Makefile +++ b/gnu/lib/libgcc/Makefile @@ -1,5 +1,5 @@ # -# $FreeBSD$ +# $Id$ # LIB= gcc diff --git a/gnu/usr.bin/cc/Makefile b/gnu/usr.bin/cc/Makefile index 344b60c..608c9b1 100644 --- a/gnu/usr.bin/cc/Makefile +++ b/gnu/usr.bin/cc/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile,v 1.2 1994/09/18 22:35:35 wollman Exp $ +# $Id$ # PGMDIR= cc_int cpp cc1 cc cc1plus c++ f77 libgcc diff --git a/gnu/usr.bin/cc/Makefile.inc b/gnu/usr.bin/cc/Makefile.inc index caadf00..fb95937 100644 --- a/gnu/usr.bin/cc/Makefile.inc +++ b/gnu/usr.bin/cc/Makefile.inc @@ -1,5 +1,5 @@ # -# $Id: Makefile.inc,v 1.8 1994/11/03 20:37:05 phk Exp $ +# $Id$ # CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../include @@ -7,7 +7,7 @@ CFLAGS+= -Dbsd4_4 CFLAGS+= -DGCC_INCLUDE_DIR=\"FOO\" CFLAGS+= -DTOOL_INCLUDE_DIR=\"FOO\" CFLAGS+= -DGPLUSPLUS_INCLUDE_DIR=\"FOO\" -CFLAGS+= -DDEFAULT_TARGET_VERSION=\"2.6.1\" +CFLAGS+= -DDEFAULT_TARGET_VERSION=\"2.6.2\" CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"i386--freebsd\" CFLAGS+= -DMD_EXEC_PREFIX=\"/usr/libexec/\" CFLAGS+= -DSTANDARD_STARTFILE_PREFIX=\"/usr/lib\" @@ -22,7 +22,7 @@ LIBDESTDIR= ${.CURDIR}/../cc_int # XXX LDDESTDIR isn't a directory and there is no standard name for the dir LDDESTDIR= -L${LIBDESTDIR} .if defined(SHARED_LIBCC_INT) -LIBCC_INT= ${LIBDESTDIR}/libcc_int.so.261.0 +LIBCC_INT= ${LIBDESTDIR}/libcc_int.so.262.0 .else LIBCC_INT= ${LIBDESTDIR}/libcc_int.a .endif diff --git a/gnu/usr.bin/cc/c++/Makefile b/gnu/usr.bin/cc/c++/Makefile index 8eee9cd..5557c62 100644 --- a/gnu/usr.bin/cc/c++/Makefile +++ b/gnu/usr.bin/cc/c++/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile,v 1.3 1994/09/18 22:35:43 wollman Exp $ +# $Id$ # PROG = c++ diff --git a/gnu/usr.bin/cc/cc/Makefile b/gnu/usr.bin/cc/cc/Makefile index 9c50ab9..8da044c 100644 --- a/gnu/usr.bin/cc/cc/Makefile +++ b/gnu/usr.bin/cc/cc/Makefile @@ -1,12 +1,12 @@ # -# $Id: Makefile,v 1.5 1994/09/18 22:35:46 wollman Exp $ +# $Id$ # -.PATH: ${.CURDIR}/../cc_int PROG = cc -SRCS = gcc.c obstack.c version.c +SRCS = gcc.c BINDIR= /usr/bin - -LINKS= ${BINDIR}/cc ${BINDIR}/gcc +.PATH: ${.CURDIR}/../cc_int +SRCS+= obstack.c version.c +LINKS= ${BINDIR}/cc ${BINDIR}/gcc .include <bsd.prog.mk> diff --git a/gnu/usr.bin/cc/cc/gcc.c b/gnu/usr.bin/cc/cc/gcc.c index 595f594..cafd0e4 100644 --- a/gnu/usr.bin/cc/cc/gcc.c +++ b/gnu/usr.bin/cc/cc/gcc.c @@ -2438,7 +2438,7 @@ process_command (argc, argv) } temp = getenv ("LIBRARY_PATH"); - if (temp) + if (temp && ! cross_compile) { char *startp, *endp; char *nstore = (char *) alloca (strlen (temp) + 3); @@ -2470,7 +2470,7 @@ process_command (argc, argv) /* Use LPATH like LIBRARY_PATH (for the CMU build program). */ temp = getenv ("LPATH"); - if (temp) + if (temp && ! cross_compile) { char *startp, *endp; char *nstore = (char *) alloca (strlen (temp) + 3); diff --git a/gnu/usr.bin/cc/cc1/c-decl.c b/gnu/usr.bin/cc/cc1/c-decl.c index 995009a..427ff3a 100644 --- a/gnu/usr.bin/cc/cc1/c-decl.c +++ b/gnu/usr.bin/cc/cc1/c-decl.c @@ -1698,11 +1698,16 @@ duplicate_decls (newdecl, olddecl) make_var_volatile (newdecl); } - /* Keep source location of definition rather than declaration. */ - if (DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0) + /* Keep source location of definition rather than declaration. + Likewise, keep decl at outer scope. */ + if ((DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0) + || (DECL_CONTEXT (newdecl) != 0 && DECL_CONTEXT (olddecl) == 0)) { DECL_SOURCE_LINE (newdecl) = DECL_SOURCE_LINE (olddecl); DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl); + + if (DECL_CONTEXT (olddecl) == 0) + DECL_CONTEXT (newdecl) = 0; } /* Merge the unused-warning information. */ diff --git a/gnu/usr.bin/cc/cc_int/Makefile b/gnu/usr.bin/cc/cc_int/Makefile index 8250850..29c6615 100644 --- a/gnu/usr.bin/cc/cc_int/Makefile +++ b/gnu/usr.bin/cc/cc_int/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile,v 1.5 1994/10/25 07:02:23 davidg Exp $ +# $Id$ # SRCS = aux-output.c bc-emit.c bc-optab.c c-common.c caller-save.c calls.c combine.c convert.c cse.c dbxout.c dwarfout.c emit-rtl.c explow.c expmed.c expr.c final.c flow.c fold-const.c function.c getpwd.c global.c insn-attrtab.c insn-emit.c insn-extract.c insn-opinit.c insn-output.c insn-peep.c insn-recog.c integrate.c jump.c local-alloc.c loop.c obstack.c optabs.c print-rtl.c print-tree.c real.c recog.c reg-stack.c regclass.c reload.c reload1.c reorg.c rtl.c rtlanal.c sched.c sdbout.c stmt.c stor-layout.c stupid.c toplev.c tree.c unroll.c varasm.c version.c xcoffout.c @@ -7,7 +7,7 @@ LIB = cc_int NOPROFILE= yes .if defined(SHARED_LIBCC_INT) INTERNALLIB= -SHLIB_MAJOR=261 +SHLIB_MAJOR=262 SHLIB_MINOR=0 .else diff --git a/gnu/usr.bin/cc/cc_int/aux-output.c b/gnu/usr.bin/cc/cc_int/aux-output.c index de569b6..17dd9db 100644 --- a/gnu/usr.bin/cc/cc_int/aux-output.c +++ b/gnu/usr.bin/cc/cc_int/aux-output.c @@ -2819,7 +2819,7 @@ save_386_machine_status (p) struct function *p; { p->machine = (struct machine_function *) xmalloc (sizeof i386_stack_locals); - bcopy (i386_stack_locals, p->machine->i386_stack_locals, + bcopy ((char *) i386_stack_locals, (char *) p->machine->i386_stack_locals, sizeof i386_stack_locals); } @@ -2827,7 +2827,7 @@ void restore_386_machine_status (p) struct function *p; { - bcopy (p->machine->i386_stack_locals, i386_stack_locals, + bcopy ((char *) p->machine->i386_stack_locals, (char *) i386_stack_locals, sizeof i386_stack_locals); free (p->machine); } diff --git a/gnu/usr.bin/cc/cc_int/bc-emit.c b/gnu/usr.bin/cc/cc_int/bc-emit.c index 55e4fe4..c8d50bb 100644 --- a/gnu/usr.bin/cc/cc_int/bc-emit.c +++ b/gnu/usr.bin/cc/cc_int/bc-emit.c @@ -867,7 +867,7 @@ bc_emit_bytecode (bytecode) char byte; static int prev_lineno = -1; - byte = bytecode; + byte = (char) bytecode; #ifdef BCDEBUG_PRINT_CODE if (lineno != prev_lineno) diff --git a/gnu/usr.bin/cc/cc_int/c-common.c b/gnu/usr.bin/cc/cc_int/c-common.c index efc5fcb..6735b5a 100644 --- a/gnu/usr.bin/cc/cc_int/c-common.c +++ b/gnu/usr.bin/cc/cc_int/c-common.c @@ -215,7 +215,8 @@ decl_attributes (decl, attributes) for (a = attributes; a; a = TREE_CHAIN (a)) if (!(name = TREE_VALUE (a))) continue; - else if (name == get_identifier ("packed")) + else if (name == get_identifier ("packed") + || name == get_identifier ("__packed__")) { if (TREE_CODE (decl) == FIELD_DECL) DECL_PACKED (decl) = 1; @@ -226,7 +227,9 @@ decl_attributes (decl, attributes) } else if (TREE_VALUE (a) == get_identifier ("noreturn") - || TREE_VALUE (a) == get_identifier ("volatile")) + || TREE_VALUE (a) == get_identifier ("__noreturn__") + || TREE_VALUE (a) == get_identifier ("volatile") + || TREE_VALUE (a) == get_identifier ("__volatile__")) { if (TREE_CODE (decl) == FUNCTION_DECL) TREE_THIS_VOLATILE (decl) = 1; @@ -240,7 +243,8 @@ decl_attributes (decl, attributes) warning_with_decl (decl, "`%s' attribute ignored", IDENTIFIER_POINTER (TREE_VALUE (a))); } - else if (TREE_VALUE (a) == get_identifier ("const")) + else if (TREE_VALUE (a) == get_identifier ("const") + || TREE_VALUE (a) == get_identifier ("__const__")) { if (TREE_CODE (decl) == FUNCTION_DECL) TREE_READONLY (decl) = 1; @@ -253,7 +257,8 @@ decl_attributes (decl, attributes) else warning_with_decl (decl, "`const' attribute ignored"); } - else if (TREE_VALUE (a) == get_identifier ("transparent_union")) + else if (TREE_VALUE (a) == get_identifier ("transparent_union") + || TREE_VALUE (a) == get_identifier ("__transparent_union__")) { if (TREE_CODE (decl) == PARM_DECL && TREE_CODE (type) == UNION_TYPE @@ -286,7 +291,8 @@ found_attr:; IDENTIFIER_POINTER (name)); } else if ( args = TREE_CHAIN(name), - !strcmp (IDENTIFIER_POINTER (name = TREE_PURPOSE (name)), "mode") + (!strcmp (IDENTIFIER_POINTER (name = TREE_PURPOSE (name)), "mode") + || !strcmp (IDENTIFIER_POINTER (name), "__mode__")) && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE) { @@ -313,7 +319,8 @@ found_attr:; if (i == NUM_MACHINE_MODES) error_with_decl (decl, "unknown machine mode `%s'", specified_name); } - else if (!strcmp (IDENTIFIER_POINTER (name), "section") + else if ((!strcmp (IDENTIFIER_POINTER (name), "section") + || !strcmp (IDENTIFIER_POINTER (name), "__section__")) && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == STRING_CST) { @@ -340,7 +347,8 @@ found_attr:; error_with_decl (decl, "section attributes are not supported for this target"); #endif } - else if (!strcmp (IDENTIFIER_POINTER (name), "aligned") + else if ((!strcmp (IDENTIFIER_POINTER (name), "aligned") + || !strcmp (IDENTIFIER_POINTER (name), "__aligned__")) && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == INTEGER_CST) { @@ -372,7 +380,8 @@ found_attr:; else DECL_ALIGN (decl) = align; } - else if (!strcmp (IDENTIFIER_POINTER (name), "format") + else if ((!strcmp (IDENTIFIER_POINTER (name), "format") + || !strcmp (IDENTIFIER_POINTER (name), "__format__")) && list_length (args) == 3 && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE && TREE_CODE (TREE_VALUE (TREE_CHAIN (args))) == INTEGER_CST @@ -394,9 +403,11 @@ found_attr:; continue; } - if (!strcmp (IDENTIFIER_POINTER (format_type), "printf")) + if (!strcmp (IDENTIFIER_POINTER (format_type), "printf") + || !strcmp (IDENTIFIER_POINTER (format_type), "__printf__")) is_scan = 0; - else if (!strcmp (IDENTIFIER_POINTER (format_type), "scanf")) + else if (!strcmp (IDENTIFIER_POINTER (format_type), "scanf") + || !strcmp (IDENTIFIER_POINTER (format_type), "__scanf__")) is_scan = 1; else { @@ -508,7 +519,7 @@ typedef struct { /* Type of argument if length modifier `l' is used. If NULL, then this modifier is not allowed. */ tree *llen; - /* Type of argument if length modifier `q' is used. + /* Type of argument if length modifier `q' or `ll' is used. If NULL, then this modifier is not allowed. */ tree *qlen; /* Type of argument if length modifier `L' is used. @@ -519,8 +530,8 @@ typedef struct { } format_char_info; static format_char_info print_char_table[] = { - { "di", 0, T_I, T_I, T_L, T_LL, NULL, "-wp0 +" }, - { "oxX", 0, T_UI, T_UI, T_UL, T_ULL, NULL, "-wp0#" }, + { "di", 0, T_I, T_I, T_L, T_LL, T_LL, "-wp0 +" }, + { "oxX", 0, T_UI, T_UI, T_UL, T_ULL, T_ULL, "-wp0#" }, { "u", 0, T_UI, T_UI, T_UL, T_ULL, NULL, "-wp0" }, /* Two GNU extensions. */ { "Z", 0, T_ST, NULL, NULL, NULL, NULL, "-wp0" }, @@ -536,8 +547,8 @@ static format_char_info print_char_table[] = { }; static format_char_info scan_char_table[] = { - { "di", 1, T_I, T_S, T_L, T_LL, NULL, "*" }, - { "ouxX", 1, T_UI, T_US, T_UL, T_ULL, NULL, "*" }, + { "di", 1, T_I, T_S, T_L, T_LL, T_LL, "*" }, + { "ouxX", 1, T_UI, T_US, T_UL, T_ULL, T_ULL, "*" }, { "efgEG", 1, T_F, NULL, T_D, NULL, T_LD, "*" }, { "sc", 1, T_C, NULL, T_W, NULL, NULL, "*a" }, { "[", 1, T_C, NULL, NULL, NULL, NULL, "*a" }, @@ -895,6 +906,8 @@ check_format_info (info, params) length_char = *format_chars++; else length_char = 0; + if (length_char == 'l' && *format_chars == 'l') + length_char = 'q', format_chars++; aflag = 0; if (*format_chars == 'a') { diff --git a/gnu/usr.bin/cc/cc_int/calls.c b/gnu/usr.bin/cc/cc_int/calls.c index 2002322..2d58770 100644 --- a/gnu/usr.bin/cc/cc_int/calls.c +++ b/gnu/usr.bin/cc/cc_int/calls.c @@ -3065,7 +3065,10 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, fndecl, but PCC has one, so this will avoid some problems. */ emit_queue (); - /* Free any temporary slots made in processing this argument. */ + /* Free any temporary slots made in processing this argument. Show + that we might have taken the address of something and pushed that + as an operand. */ + preserve_temp_slots (NULL_RTX); free_temp_slots (); pop_temp_slots (); diff --git a/gnu/usr.bin/cc/cc_int/combine.c b/gnu/usr.bin/cc/cc_int/combine.c index 4399bb0..8ab1547 100644 --- a/gnu/usr.bin/cc/cc_int/combine.c +++ b/gnu/usr.bin/cc/cc_int/combine.c @@ -1835,8 +1835,13 @@ try_combine (i3, i2, i1) if (split_code == MULT && GET_CODE (XEXP (*split, 1)) == CONST_INT && (i = exact_log2 (INTVAL (XEXP (*split, 1)))) >= 0) - SUBST (*split, gen_rtx_combine (ASHIFT, split_mode, - XEXP (*split, 0), GEN_INT (i))); + { + SUBST (*split, gen_rtx_combine (ASHIFT, split_mode, + XEXP (*split, 0), GEN_INT (i))); + /* Update split_code because we may not have a multiply + anymore. */ + split_code = GET_CODE (*split); + } #ifdef INSN_SCHEDULING /* If *SPLIT is a paradoxical SUBREG, when we split it, it should diff --git a/gnu/usr.bin/cc/cc_int/expmed.c b/gnu/usr.bin/cc/cc_int/expmed.c index b5c19aa..5961123 100644 --- a/gnu/usr.bin/cc/cc_int/expmed.c +++ b/gnu/usr.bin/cc/cc_int/expmed.c @@ -2740,7 +2740,9 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) case TRUNC_DIV_EXPR: if (op1_is_constant && HOST_BITS_PER_WIDE_INT >= size) { - if (unsignedp) + if (unsignedp + || (INTVAL (op1) + == (HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (compute_mode) - 1))) { unsigned HOST_WIDE_INT mh, ml; int pre_shift, post_shift; @@ -2901,6 +2903,8 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) tquotient, 0); } + /* We have computed OP0 / abs(OP1). If OP1 is negative, negate + the quotient. */ if (d < 0) { insn = get_last_insn (); diff --git a/gnu/usr.bin/cc/cc_int/function.c b/gnu/usr.bin/cc/cc_int/function.c index 821d61a..844af83 100644 --- a/gnu/usr.bin/cc/cc_int/function.c +++ b/gnu/usr.bin/cc/cc_int/function.c @@ -839,6 +839,7 @@ assign_stack_temp (mode, size, keep) plus_constant (XEXP (best_p->slot, 0), rounded_size)); p->address = 0; + p->rtl_expr = 0; p->next = temp_slots; temp_slots = p; @@ -1098,14 +1099,14 @@ preserve_rtl_expr_result (x) if (x == 0 || GET_CODE (x) != MEM || CONSTANT_P (XEXP (x, 0))) return; - /* If we can find a match, move it to our level. */ - for (p = temp_slots; p; p = p->next) - if (p->in_use && rtx_equal_p (x, p->slot)) - { - p->level = temp_slot_level; - p->rtl_expr = 0; - return; - } + /* If we can find a match, move it to our level unless it is already at + an upper level. */ + p = find_temp_slot_from_address (XEXP (x, 0)); + if (p != 0) + { + p->level = MIN (p->level, temp_slot_level); + p->rtl_expr = 0; + } return; } diff --git a/gnu/usr.bin/cc/cc_int/real.c b/gnu/usr.bin/cc/cc_int/real.c index cad4343..f3e22a7 100644 --- a/gnu/usr.bin/cc/cc_int/real.c +++ b/gnu/usr.bin/cc/cc_int/real.c @@ -246,15 +246,15 @@ unknown arithmetic type #define NE 6 #define MAXDECEXP 4932 #define MINDECEXP -4956 -#define GET_REAL(r,e) bcopy (r, e, 2*NE) -#define PUT_REAL(e,r) bcopy (e, r, 2*NE) +#define GET_REAL(r,e) bcopy ((char *) r, (char *) e, 2*NE) +#define PUT_REAL(e,r) bcopy ((char *) e, (char *) r, 2*NE) #else /* no XFmode */ #if LONG_DOUBLE_TYPE_SIZE == 128 #define NE 10 #define MAXDECEXP 4932 #define MINDECEXP -4977 -#define GET_REAL(r,e) bcopy (r, e, 2*NE) -#define PUT_REAL(e,r) bcopy (e, r, 2*NE) +#define GET_REAL(r,e) bcopy ((char *) r, (char *) e, 2*NE) +#define PUT_REAL(e,r) bcopy ((char *) e, (char *) r, 2*NE) #else #define NE 6 #define MAXDECEXP 4932 diff --git a/gnu/usr.bin/cc/cc_int/reg-stack.c b/gnu/usr.bin/cc/cc_int/reg-stack.c index f52b288..df45dd4 100644 --- a/gnu/usr.bin/cc/cc_int/reg-stack.c +++ b/gnu/usr.bin/cc/cc_int/reg-stack.c @@ -225,9 +225,8 @@ static rtx FP_mode_reg[FIRST_PSEUDO_REGISTER][(int) MAX_MACHINE_MODE]; definition are validity of this information. */ #define BLOCK_NUM(INSN) \ - (((INSN_UID (INSN) > max_uid) \ - ? (int *)(abort() , 0) \ - : block_number)[INSN_UID (INSN)]) + ((INSN_UID (INSN) > max_uid) \ + ? (abort() , -1) : block_number[INSN_UID (INSN)]) extern rtx forced_labels; extern rtx gen_jump (); @@ -368,8 +367,8 @@ reg_to_stack (first, file) block_stack_in = (stack) alloca (blocks * sizeof (struct stack_def)); block_out_reg_set = (HARD_REG_SET *) alloca (blocks * sizeof (HARD_REG_SET)); - bzero (block_stack_in, blocks * sizeof (struct stack_def)); - bzero (block_out_reg_set, blocks * sizeof (HARD_REG_SET)); + bzero ((char *) block_stack_in, blocks * sizeof (struct stack_def)); + bzero ((char *) block_out_reg_set, blocks * sizeof (HARD_REG_SET)); block_number = (int *) alloca ((max_uid + 1) * sizeof (int)); @@ -819,7 +818,7 @@ record_asm_reg_life (insn, regstack, operands, constraints, Also enforce rule #5: Output operands must start at the top of the reg-stack: output operands may not "skip" a reg. */ - bzero (reg_used_as_output, sizeof (reg_used_as_output)); + bzero ((char *) reg_used_as_output, sizeof (reg_used_as_output)); for (i = 0; i < n_outputs; i++) if (STACK_REG_P (operands[i])) if (reg_class_size[(int) operand_class[i]] != 1) @@ -852,7 +851,7 @@ record_asm_reg_life (insn, regstack, operands, constraints, to the top of the reg-stack than any input that is not implicitly popped. */ - bzero (implicitly_dies, sizeof (implicitly_dies)); + bzero ((char *) implicitly_dies, sizeof (implicitly_dies)); for (i = first_input; i < first_input + n_inputs; i++) if (STACK_REG_P (operands[i])) { @@ -1216,7 +1215,7 @@ find_blocks (first) label_value_list); } - BLOCK_NUM (insn) = block; + block_number[INSN_UID (insn)] = block; if (code != NOTE) prev_code = code; @@ -2342,7 +2341,7 @@ subst_asm_stack_regs (insn, regstack, operands, operands_loc, constraints, } } - bcopy (regstack, &temp_stack, sizeof (temp_stack)); + bcopy ((char *) regstack, (char *) &temp_stack, sizeof (temp_stack)); /* Put the input regs into the desired place in TEMP_STACK. */ diff --git a/gnu/usr.bin/cc/cc_int/reload1.c b/gnu/usr.bin/cc/cc_int/reload1.c index d6dadf2..49a1811 100644 --- a/gnu/usr.bin/cc/cc_int/reload1.c +++ b/gnu/usr.bin/cc/cc_int/reload1.c @@ -1329,10 +1329,10 @@ reload (first, global, dumpfile) need only in the smallest class in which it is required. */ - bcopy (insn_needs.other.regs[0], basic_needs, - sizeof basic_needs); - bcopy (insn_needs.other.groups, basic_groups, - sizeof basic_groups); + bcopy ((char *) insn_needs.other.regs[0], + (char *) basic_needs, sizeof basic_needs); + bcopy ((char *) insn_needs.other.groups, + (char *) basic_groups, sizeof basic_groups); for (i = 0; i < N_REG_CLASSES; i++) { diff --git a/gnu/usr.bin/cc/cc_int/version.c b/gnu/usr.bin/cc/cc_int/version.c index 1c3fd1b..5928315 100644 --- a/gnu/usr.bin/cc/cc_int/version.c +++ b/gnu/usr.bin/cc/cc_int/version.c @@ -1 +1 @@ -char *version_string = "2.6.1"; +char *version_string = "2.6.2"; diff --git a/gnu/usr.bin/cc/cccp/Makefile b/gnu/usr.bin/cc/cccp/Makefile index 0bbc198..43ec78c 100644 --- a/gnu/usr.bin/cc/cccp/Makefile +++ b/gnu/usr.bin/cc/cccp/Makefile @@ -2,9 +2,10 @@ # $Id$ # -.PATH: ${.CURDIR}/../cc_int PROG = cpp -SRCS = cccp.c cexp.c obstack.c version.c +SRCS = cccp.c cexp.c BINDIR= /usr/libexec +.PATH: ${.CURDIR}/../cc_int +SRCS+= obstack.c version.c .include <bsd.prog.mk> diff --git a/gnu/usr.bin/cc/cpp/Makefile b/gnu/usr.bin/cc/cpp/Makefile index 0bbc198..43ec78c 100644 --- a/gnu/usr.bin/cc/cpp/Makefile +++ b/gnu/usr.bin/cc/cpp/Makefile @@ -2,9 +2,10 @@ # $Id$ # -.PATH: ${.CURDIR}/../cc_int PROG = cpp -SRCS = cccp.c cexp.c obstack.c version.c +SRCS = cccp.c cexp.c BINDIR= /usr/libexec +.PATH: ${.CURDIR}/../cc_int +SRCS+= obstack.c version.c .include <bsd.prog.mk> diff --git a/gnu/usr.bin/cc/cpp/cccp.c b/gnu/usr.bin/cc/cpp/cccp.c index d514466..609249b 100644 --- a/gnu/usr.bin/cc/cpp/cccp.c +++ b/gnu/usr.bin/cc/cpp/cccp.c @@ -604,14 +604,14 @@ static struct default_include { automatically in Makefile.in. */ { CROSS_INCLUDE_DIR, 0, 0 }, /* This is another place that the target system's headers might be. */ - { TOOL_INCLUDE_DIR, 0, 1 }, + { TOOL_INCLUDE_DIR, 0, 0 }, #else /* not CROSS_COMPILE */ /* This should be /usr/local/include and should come before the fixincludes-fixed header files. */ { LOCAL_INCLUDE_DIR, 0, 1 }, /* This is here ahead of GCC_INCLUDE_DIR because assert.h goes here. Likewise, behind LOCAL_INCLUDE_DIR, where glibc puts its assert.h. */ - { TOOL_INCLUDE_DIR, 0, 1 }, + { TOOL_INCLUDE_DIR, 0, 0 }, /* This is the dir for fixincludes. Put it just before the files that we fix. */ { GCC_INCLUDE_DIR, 0, 0 }, @@ -3275,10 +3275,10 @@ startagain: /* This is now known to be a macro call. Discard the macro name from the output, along with any following whitespace just copied, - but preserve newlines at the top level since this + but preserve newlines if not outputting marks since this is more likely to do the right thing with line numbers. */ obp = op->buf + obufp_before_macroname; - if (ip->macro != 0) + if (output_marks) op->lineno = op_lineno_before_macroname; else { int newlines = op->lineno - op_lineno_before_macroname; @@ -9031,16 +9031,18 @@ dump_single_macro (hp, of) concat = 0; for (ap = defn->pattern; ap != NULL; ap = ap->next) { dump_defn_1 (defn->expansion, offset, ap->nchars, of); - if (ap->nchars != 0) - concat = 0; offset += ap->nchars; - if (ap->stringify) - fprintf (of, " #"); - if (ap->raw_before && !concat) - fprintf (of, " ## "); - concat = 0; + if (!traditional) { + if (ap->nchars != 0) + concat = 0; + if (ap->stringify) + fprintf (of, " #"); + if (ap->raw_before && !concat) + fprintf (of, " ## "); + concat = 0; + } dump_arg_n (defn, ap->argno, of); - if (ap->raw_after) { + if (!traditional && ap->raw_after) { fprintf (of, " ## "); concat = 1; } @@ -9069,7 +9071,7 @@ dump_all_macros () /* Output to OF a substring of a macro definition. BASE is the beginning of the definition. Output characters START thru LENGTH. - Discard newlines outside of strings, thus + Unless traditional, discard newlines outside of strings, thus converting funny-space markers to ordinary spaces. */ static void @@ -9082,16 +9084,20 @@ dump_defn_1 (base, start, length, of) U_CHAR *p = base + start; U_CHAR *limit = base + start + length; - while (p < limit) { - if (*p == '\"' || *p =='\'') { - U_CHAR *p1 = skip_quoted_string (p, limit, 0, NULL_PTR, - NULL_PTR, NULL_PTR); - fwrite (p, p1 - p, 1, of); - p = p1; - } else { - if (*p != '\n') - putc (*p, of); - p++; + if (traditional) + fwrite (p, sizeof (*p), length, of); + else { + while (p < limit) { + if (*p == '\"' || *p =='\'') { + U_CHAR *p1 = skip_quoted_string (p, limit, 0, NULL_PTR, + NULL_PTR, NULL_PTR); + fwrite (p, sizeof (*p), p1 - p, of); + p = p1; + } else { + if (*p != '\n') + putc (*p, of); + p++; + } } } } diff --git a/gnu/usr.bin/cc/include/bc-arity.h b/gnu/usr.bin/cc/include/bc-arity.h index d311745..c75c040 100644 --- a/gnu/usr.bin/cc/include/bc-arity.h +++ b/gnu/usr.bin/cc/include/bc-arity.h @@ -2,16 +2,16 @@ { 1, 0, 0, {0}}, { 1, 2, 0, {0}}, { 1, 2, 0, {0}}, -{ 0, 0, 1, {SIcode, }}, -{ 0, 0, 1, {SIcode, }}, -{ 0, 1, 1, {QIcode, }}, -{ 0, 1, 1, {HIcode, }}, -{ 0, 1, 1, {SIcode, }}, -{ 0, 1, 1, {DIcode, }}, -{ 0, 1, 1, {SFcode, }}, -{ 0, 1, 1, {DFcode, }}, -{ 0, 1, 1, {XFcode, }}, -{ 0, 1, 1, {Pcode, }}, +{ 0, 0, 1, {(char) SIcode, }}, +{ 0, 0, 1, {(char) SIcode, }}, +{ 0, 1, 1, {(char) QIcode, }}, +{ 0, 1, 1, {(char) HIcode, }}, +{ 0, 1, 1, {(char) SIcode, }}, +{ 0, 1, 1, {(char) DIcode, }}, +{ 0, 1, 1, {(char) SFcode, }}, +{ 0, 1, 1, {(char) DFcode, }}, +{ 0, 1, 1, {(char) XFcode, }}, +{ 0, 1, 1, {(char) Pcode, }}, { 1, 1, 0, {0}}, { 1, 1, 0, {0}}, { 1, 1, 0, {0}}, @@ -30,10 +30,10 @@ { 2, 0, 0, {0}}, { 3, 0, 0, {0}}, { 2, 0, 0, {0}}, -{ 1, 1, 1, {SIcode, }}, +{ 1, 1, 1, {(char) SIcode, }}, { 1, 1, 0, {0}}, -{ 0, 1, 1, {SIcode, }}, -{ 0, 1, 1, {SIcode, }}, +{ 0, 1, 1, {(char) SIcode, }}, +{ 0, 1, 1, {(char) SIcode, }}, { 1, 1, 0, {0}}, { 1, 1, 0, {0}}, { 1, 1, 0, {0}}, @@ -218,15 +218,15 @@ { 2, 1, 0, {0}}, { 2, 1, 0, {0}}, { 4, 1, 0, {0}}, -{ 1, 0, 1, {SIcode, }}, -{ 1, 0, 1, {SIcode, }}, -{ 0, 0, 1, {SIcode, }}, +{ 1, 0, 1, {(char) SIcode, }}, +{ 1, 0, 1, {(char) SIcode, }}, +{ 0, 0, 1, {(char) SIcode, }}, { 0, 0, 0, {0}}, -{ 1, 0, 3, {SIcode, SIcode, SIcode, }}, -{ 1, 0, 3, {SIcode, SIcode, SIcode, }}, -{ 1, 0, 3, {SIcode, SIcode, SIcode, }}, -{ 1, 0, 3, {SIcode, SIcode, SIcode, }}, +{ 1, 0, 3, {(char) SIcode, (char) SIcode, (char) SIcode, }}, +{ 1, 0, 3, {(char) SIcode, (char) SIcode, (char) SIcode, }}, +{ 1, 0, 3, {(char) SIcode, (char) SIcode, (char) SIcode, }}, +{ 1, 0, 3, {(char) SIcode, (char) SIcode, (char) SIcode, }}, { 3, 0, 0, {0}}, { 0, 1, 0, {0}}, { 0, 0, 0, {0}}, -{ 0, 0, 1, {SIcode, }}, +{ 0, 0, 1, {(char) SIcode, }}, diff --git a/gnu/usr.bin/cc/include/obstack.h b/gnu/usr.bin/cc/include/obstack.h index a5db1a0..28bcd44 100644 --- a/gnu/usr.bin/cc/include/obstack.h +++ b/gnu/usr.bin/cc/include/obstack.h @@ -268,8 +268,11 @@ int obstack_chunk_size (struct obstack *obstack); #define obstack_blank_fast(h,n) ((h)->next_free += (n)) -#if defined (__GNUC__) && defined (__STDC__) -#if __GNUC__ < 2 +#if defined (__GNUC__) && defined (__STDC__) && __STDC__ +/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and + does not implement __extension__. But that compiler doesn't define + __GNUC_MINOR__. */ +#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) #define __extension__ #endif diff --git a/gnu/usr.bin/cc/libgcc/Makefile b/gnu/usr.bin/cc/libgcc/Makefile index e40c4b4..78e2809 100644 --- a/gnu/usr.bin/cc/libgcc/Makefile +++ b/gnu/usr.bin/cc/libgcc/Makefile @@ -1,5 +1,5 @@ # -# $FreeBSD$ +# $Id$ # LIB= gcc |