Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jun 1995 06:08:51 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, rgrimes@gndrsh.aac.dev.com
Cc:        CVS-commiters@freefall.cdrom.com, ache@astral.msk.su, cvs-usrbin@freefall.cdrom.com, joerg@freefall.cdrom.com
Subject:   Re: cvs commit: src/usr.bin/at at.man parsetime.c
Message-ID:  <199506242008.GAA00060@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> I have been working on gcc-2.7.0.  The FreeBSD diffs (-c2) for
>> 2.6.3 are over 600K, only 29K of which is for non-whitespace
>> diffs.

>Would you please submit the ``white space'' diff that is the 600k-29k
>back to the gcc maintainers please. 

It's not suitable for the gcc maintainers and will change for gcc-2.7.0.
Here are my current 2.6.3 _and_ 2.7.0 diffs for reference (what is the
right mailing list for this?).

Notes:
- The 'Only in' junk is there so I can see which files we deleted.  To
  get this diff I had to move all our files to the same subdirectory and
  name as they have in the gcc distribution.

- cccp.1 was edited too much when references to cccp were removed.

- phk's path-searching optimizations in gcc.c (and in cccp.c?) break
  the standalone build of gcc.  The gcc maintainers won't want these
  optimizations.  We're supposed to do things like this be changing
  the default paths, but I think there are too many default paths
  for this to work.  Does gcc repeat the search for duplicated paths?

- ljo's Fortran rule should have gone away when the non-shell-script
  version of f77 was introduced.

Bruce

---
gcc-2.6.3.freebsd.dif
---
Only in gcc-2.6.3: .gdbinit
Only in gcc-2.6.3: COPYING
Only in gcc-2.6.3: COPYING.LIB
Only in gcc-2.6.3: ChangeLog
Only in gcc-2.6.3: ChangeLog.0
Only in gcc-2.6.3: ChangeLog.1
Only in gcc-2.6.3: ChangeLog.2
Only in gcc-2.6.3: ChangeLog.3
Only in gcc-2.6.3: ChangeLog.4
Only in gcc-2.6.3: ChangeLog.5
Only in gcc-2.6.3: ChangeLog.6
Only in gcc-2.6.3: ChangeLog.7
Only in gcc-2.6.3: ChangeLog.8
Only in gcc-2.6.3: INSTALL
Only in gcc-2.6.3: Makefile.in
Only in gcc-2.6.3: NEWS
Only in gcc-2.6.3: PROBLEMS
Only in gcc-2.6.3: PROJECTS
Only in gcc-2.6.3: README
Only in gcc-2.6.3: README-fixinc
Only in gcc-2.6.3: README.ACORN
Only in gcc-2.6.3: README.ALTOS
Only in gcc-2.6.3: README.APOLLO
Only in gcc-2.6.3: README.DWARF
Only in gcc-2.6.3: README.FRESCO
Only in gcc-2.6.3: README.NS32K
Only in gcc-2.6.3: README.RS6000
Only in gcc-2.6.3: README.TRAD
Only in gcc-2.6.3: README.X11
Only in gcc-2.6.3: SERVICE
Only in gcc-2.6.3: TAGS
Only in gcc-2.6.3: TESTS.FLUNK
Only in gcc-2.6.3: alloca.c
Only in gcc-2.6.3: assert.h
Only in gcc-2.6.3: bi-arity.c
Only in gcc-2.6.3: bi-defs.h
Only in gcc-2.6.3: bi-lexer.c
Only in gcc-2.6.3: bi-opcode.c
Only in gcc-2.6.3: bi-opname.c
Only in gcc-2.6.3: bi-parser.c
Only in gcc-2.6.3: bi-parser.h
Only in gcc-2.6.3: bi-parser.y
Only in gcc-2.6.3: bi-reverse.c
Only in gcc-2.6.3: build-make
Only in gcc-2.6.3: bytecode.def
Only in gcc-2.6.3: c-parse.gperf
Only in gcc-2.6.3: c-parse.in
Only in gcc-2.6.3: c-parse.y
diff -wrc2 gcc-2.6.3/cccp.1 gcc-2.6.3.freebsd/cccp.1
*** gcc-2.6.3/cccp.1	Wed Jun  1 09:29:50 1994
--- gcc-2.6.3.freebsd/cccp.1	Wed Nov  2 19:18:25 1994
***************
*** 1,12 ****
  .\" 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
--- 1,12 ----
  .\" 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
***************
*** 143,153 ****
  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
--- 143,146 ----
diff -wrc2 gcc-2.6.3/cccp.c gcc-2.6.3.freebsd/cccp.c
*** gcc-2.6.3/cccp.c	Thu Jun 22 14:04:19 1995
--- gcc-2.6.3.freebsd/cccp.c	Wed May 31 18:33:12 1995
***************
*** 189,193 ****
  #ifndef HAVE_STRERROR
  extern int sys_nerr;
! #if defined(bsd4_4) || defined(__NetBSD__)
  extern const char *const sys_errlist[];
  #else
--- 189,193 ----
  #ifndef HAVE_STRERROR
  extern int sys_nerr;
! #if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__)
  extern const char *const sys_errlist[];
  #else
***************
*** 4652,4655 ****
--- 4652,4656 ----
    char *p, *dir;
  
+ #if 0
    if (searchptr && ! searchptr->got_name_map)
      {
***************
*** 4674,4678 ****
  	}
      }
! 
    /* Try to find a mapping file for the particular directory we are
       looking in.  Thus #include <sys/types.h> will look up sys/types.h
--- 4675,4679 ----
  	}
      }
! #endif
    /* Try to find a mapping file for the particular directory we are
       looking in.  Thus #include <sys/types.h> will look up sys/types.h
***************
*** 4703,4709 ****
--- 4704,4712 ----
        from = p + 1;
      }
+ #if 0
    for (map = read_name_map (dir); map; map = map->map_next)
      if (! strcmp (map->map_from, from))
        return open (map->map_to, O_RDONLY, 0666);
+ #endif
  
    return open (filename, O_RDONLY, 0666);
Only in gcc-2.6.3: cexp.c
Only in gcc-2.6.3: cexp.y
Only in gcc-2.6.3: collect2.c
Only in gcc-2.6.3/config: 1750a
Only in gcc-2.6.3/config: README
Only in gcc-2.6.3/config: a29k
Only in gcc-2.6.3/config: alpha
Only in gcc-2.6.3/config: aoutos.h
Only in gcc-2.6.3/config: arm
Only in gcc-2.6.3/config: clipper
Only in gcc-2.6.3/config: convex
Only in gcc-2.6.3/config: dsp16xx
Only in gcc-2.6.3/config: elxsi
Only in gcc-2.6.3/config: fp-bit.c
Only in gcc-2.6.3/config: fx80
Only in gcc-2.6.3/config: gmicro
Only in gcc-2.6.3/config: h8300
Only in gcc-2.6.3/config: i370
Only in gcc-2.6.3/config/i386: 386bsd.h
Only in gcc-2.6.3/config/i386: aix386.h
Only in gcc-2.6.3/config/i386: aix386ng.h
Only in gcc-2.6.3/config/i386: att.h
diff -wrc2 gcc-2.6.3/config/i386/bsd.h gcc-2.6.3.freebsd/config/i386/bsd.h
*** gcc-2.6.3/config/i386/bsd.h	Mon Oct  4 09:50:23 1993
--- gcc-2.6.3.freebsd/config/i386/bsd.h	Thu Nov 17 01:02:42 1994
***************
*** 23,26 ****
--- 23,29 ----
  #include "i386/unix.h"
  
+ /* Don't assume anything about the header files. */
+ #define NO_IMPLICIT_EXTERN_C
+ 
  /* Use the Sequent Symmetry assembler syntax.  */
  
Only in gcc-2.6.3/config/i386: bsd386.h
Only in gcc-2.6.3/config/i386: config-nt.bat
Only in gcc-2.6.3/config/i386: config-nt.sed
diff -wrc2 gcc-2.6.3/config/i386/freebsd.h gcc-2.6.3.freebsd/config/i386/freebsd.h
*** gcc-2.6.3/config/i386/freebsd.h	Thu Jun 22 14:04:22 1995
--- gcc-2.6.3.freebsd/config/i386/freebsd.h	Mon Mar 13 02:37:13 1995
***************
*** 20,32 ****
  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
  
- /* Don't assume anything about the header files. */
- #define NO_IMPLICIT_EXTERN_C
- 
  #include "i386/gstabs.h"
  
--- 20,26 ----
***************
*** 35,43 ****
  
  #undef CPP_PREDEFINES
! #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -D__386BSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
  
  /* Like the default, except no -lg.  */
  #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
  
  #undef SIZE_TYPE
  #define SIZE_TYPE "unsigned int"
--- 29,53 ----
  
  #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 }, \
! 	{ "/usr/include/g++", 1 }, \
! 	{ 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"
***************
*** 47,63 ****
  
  #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
  
! /* There are conflicting reports about whether this system uses
!    a different assembler syntax.  wilson@cygnus.com says # is right.  */
! #undef COMMENT_BEGIN
! #define COMMENT_BEGIN "#"
  
  #undef ASM_APP_ON
--- 57,98 ----
  
  #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
! 
! /* Override the default comment-starter of "/".  */
! 
! #undef ASM_COMMENT_START
! #define ASM_COMMENT_START "#"
  
  #undef ASM_APP_ON
***************
*** 87,109 ****
  #define DEFAULT_PCC_STRUCT_RETURN 0
  
- /* Profiling routines, partially copied from i386/osfrose.h.  */
- 
- /* Redefine this to use %eax instead of %edx.  */
- #undef FUNCTION_PROFILER
- #define FUNCTION_PROFILER(FILE, LABELNO)  \
- {									\
-   if (flag_pic)								\
-     {									\
-       fprintf (FILE, "\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");				\
-     }									\
- }
- 
  /*
   * Some imports from svr4.h in support of shared libraries.
--- 122,125 ----
***************
*** 111,114 ****
--- 127,132 ----
   */
  
+ #define HANDLE_SYSV_PRAGMA
+ 
  /* Define the strings used for the special svr4 .type and .size directives.
     These strings generally do not vary from one system running svr4 to
***************
*** 120,123 ****
--- 138,142 ----
  #define SIZE_ASM_OP	".size"
  #define WEAK_ASM_OP	".weak"
+ #define SET_ASM_OP	".set"
  
  /* The following macro defines the format used to output the second
***************
*** 218,250 ****
        }									\
    } 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.
-  */
- 
- #ifdef FREEBSD_NATIVE
- 
- #define INCLUDE_DEFAULTS { \
- 	{ "/usr/include", 0 }, \
- 	{ "/usr/include/g++", 1 }, \
- 	{ 0, 0} \
- 	}
- 
- #undef MD_EXEC_PREFIX
- #define MD_EXEC_PREFIX "/usr/libexec/"
- 
- #undef STANDARD_STARTFILE_PREFIX
- #define STANDARD_STARTFILE_PREFIX "/usr/lib"
- 
- #if 0 /* This is very wrong!!! */
- #define DEFAULT_TARGET_MACHINE "i386-unknown-freebsd_1.0"
- #define GPLUSPLUS_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include"
- #define TOOL_INCLUDE_DIR "/usr/local/i386-unknown-freebsd_1.0/include"
- #define GCC_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include"
- #endif
- 
- #endif /* FREEBSD_NATIVE */
--- 237,238 ----
Only in gcc-2.6.3/config/i386: gnu.h
Only in gcc-2.6.3/config/i386: go32.h
diff -wrc2 gcc-2.6.3/config/i386/i386.c gcc-2.6.3.freebsd/config/i386/i386.c
*** gcc-2.6.3/config/i386/i386.c	Mon Nov 14 04:16:45 1994
--- gcc-2.6.3.freebsd/config/i386/i386.c	Wed May 31 18:32:35 1995
***************
*** 1098,1102 ****
    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;
--- 1098,1103 ----
    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;
***************
*** 1159,1164 ****
    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
--- 1160,1173 ----
    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
***************
*** 1171,1176 ****
  
    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++;
  
--- 1180,1184 ----
  
    for (regno = reglimit - 1; regno >= 0; regno--)
!     if (regs_ever_live[regno] && ! call_used_regs[regno])
        nregs++;
  
***************
*** 1195,1198 ****
--- 1203,1211 ----
  				  || 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 gcc-2.6.3/config/i386: i386iscgas.h
Only in gcc-2.6.3/config/i386: isc.h
Only in gcc-2.6.3/config/i386: isccoff.h
Only in gcc-2.6.3/config/i386: iscdbx.h
Only in gcc-2.6.3/config/i386: linux.h
Only in gcc-2.6.3/config/i386: linuxelf.h
Only in gcc-2.6.3/config/i386: lynx-ng.h
Only in gcc-2.6.3/config/i386: lynx.h
Only in gcc-2.6.3/config/i386: mach.h
Only in gcc-2.6.3/config/i386: netbsd-i386.h
Only in gcc-2.6.3/config/i386: next.c
Only in gcc-2.6.3/config/i386: next.h
Only in gcc-2.6.3/config/i386: os2.h
Only in gcc-2.6.3/config/i386: osfelf.h
Only in gcc-2.6.3/config/i386: osfrose.h
Only in gcc-2.6.3/config/i386: sco.h
Only in gcc-2.6.3/config/i386: sco4.h
Only in gcc-2.6.3/config/i386: sco4dbx.h
Only in gcc-2.6.3/config/i386: scodbx.h
Only in gcc-2.6.3/config/i386: seq-gas.h
Only in gcc-2.6.3/config/i386: seq-sysv3.h
Only in gcc-2.6.3/config/i386: seq2-sysv3.h
Only in gcc-2.6.3/config/i386: sequent.h
Only in gcc-2.6.3/config/i386: sol2-c1.asm
Only in gcc-2.6.3/config/i386: sol2-ci.asm
Only in gcc-2.6.3/config/i386: sol2-cn.asm
Only in gcc-2.6.3/config/i386: sol2.h
Only in gcc-2.6.3/config/i386: sun.h
Only in gcc-2.6.3/config/i386: sun386.h
Only in gcc-2.6.3/config/i386: svr3.ifile
Only in gcc-2.6.3/config/i386: svr3dbx.h
Only in gcc-2.6.3/config/i386: svr3gas.h
Only in gcc-2.6.3/config/i386: svr3z.ifile
Only in gcc-2.6.3/config/i386: sysv3.h
Only in gcc-2.6.3/config/i386: sysv4.h
Only in gcc-2.6.3/config/i386: sysv4gdb.h
Only in gcc-2.6.3/config/i386: t-iscscodbx
Only in gcc-2.6.3/config/i386: t-next
Only in gcc-2.6.3/config/i386: t-sol2
Only in gcc-2.6.3/config/i386: t-svr3dbx
diff -wrc2 gcc-2.6.3/config/i386/unix.h gcc-2.6.3.freebsd/config/i386/unix.h
*** gcc-2.6.3/config/i386/unix.h	Sat Oct  1 07:31:32 1994
--- gcc-2.6.3.freebsd/config/i386/unix.h	Wed May 31 18:23:34 1995
***************
*** 99,103 ****
  
  #define ASM_COMMENT_START "/"
- #define COMMENT_BEGIN "/"
  
  /* Output to assembler file text saying following lines
--- 99,102 ----
Only in gcc-2.6.3/config/i386: v3gas.h
Only in gcc-2.6.3/config/i386: winnt.h
Only in gcc-2.6.3/config/i386: x-aix
Only in gcc-2.6.3/config/i386: x-freebsd
Only in gcc-2.6.3/config/i386: x-isc
Only in gcc-2.6.3/config/i386: x-isc3
Only in gcc-2.6.3/config/i386: x-linux
Only in gcc-2.6.3/config/i386: x-ncr3000
Only in gcc-2.6.3/config/i386: x-next
Only in gcc-2.6.3/config/i386: x-osfrose
Only in gcc-2.6.3/config/i386: x-sco
Only in gcc-2.6.3/config/i386: x-sco4
Only in gcc-2.6.3/config/i386: x-sysv3
Only in gcc-2.6.3/config/i386: x-winnt
Only in gcc-2.6.3/config/i386: xm-aix.h
Only in gcc-2.6.3/config/i386: xm-dos.h
Only in gcc-2.6.3/config/i386: xm-gnu.h
Only in gcc-2.6.3/config/i386: xm-isc.h
Only in gcc-2.6.3/config/i386: xm-linux.h
Only in gcc-2.6.3/config/i386: xm-next.h
Only in gcc-2.6.3/config/i386: xm-os2.h
Only in gcc-2.6.3/config/i386: xm-osf.h
Only in gcc-2.6.3/config/i386: xm-sco.h
Only in gcc-2.6.3/config/i386: xm-sun.h
Only in gcc-2.6.3/config/i386: xm-sysv3.h
Only in gcc-2.6.3/config/i386: xm-sysv4.h
Only in gcc-2.6.3/config/i386: xm-winnt.h
Only in gcc-2.6.3/config: i860
Only in gcc-2.6.3/config: i960
Only in gcc-2.6.3/config: lynx-ng.h
Only in gcc-2.6.3/config: lynx.h
Only in gcc-2.6.3/config: m68k
Only in gcc-2.6.3/config: m88k
Only in gcc-2.6.3/config: mips
Only in gcc-2.6.3/config: msdos
Only in gcc-2.6.3/config: netbsd.h
Only in gcc-2.6.3/config: nextstep.c
Only in gcc-2.6.3/config: nextstep.h
Only in gcc-2.6.3/config: nextstep21.h
Only in gcc-2.6.3/config: ns32k
Only in gcc-2.6.3/config: pa
Only in gcc-2.6.3/config: pdp11
Only in gcc-2.6.3/config: pyr
Only in gcc-2.6.3/config: romp
Only in gcc-2.6.3/config: rs6000
Only in gcc-2.6.3/config: sh
Only in gcc-2.6.3/config: sparc
Only in gcc-2.6.3/config: spur
Only in gcc-2.6.3/config: svr3.h
Only in gcc-2.6.3/config: svr4.h
Only in gcc-2.6.3/config: t-libc-ok
Only in gcc-2.6.3/config: t-svr3
Only in gcc-2.6.3/config: t-svr4
Only in gcc-2.6.3/config: tahoe
Only in gcc-2.6.3/config: vax
Only in gcc-2.6.3/config: we32k
Only in gcc-2.6.3/config: winnt
Only in gcc-2.6.3/config: x-lynx
Only in gcc-2.6.3/config: x-netbsd
Only in gcc-2.6.3/config: x-svr4
Only in gcc-2.6.3/config: xm-gnu.h
Only in gcc-2.6.3/config: xm-lynx.h
Only in gcc-2.6.3/config: xm-svr3.h
Only in gcc-2.6.3/config: xm-svr4.h
Only in gcc-2.6.3: config.guess
Only in gcc-2.6.3: config.sub
Only in gcc-2.6.3: configure
Only in gcc-2.6.3: configure.bat
Only in gcc-2.6.3/cp: ChangeLog
Only in gcc-2.6.3/cp: Make-lang.in
Only in gcc-2.6.3/cp: Makefile.in
Only in gcc-2.6.3/cp: config-lang.in
Only in gcc-2.6.3/cp: g++.1
diff -wrc2 gcc-2.6.3/cp/g++.c gcc-2.6.3.freebsd/cp/g++.c
*** gcc-2.6.3/cp/g++.c	Sat Oct 29 21:17:44 1994
--- gcc-2.6.3.freebsd/cp/g++.c	Wed May 31 18:32:02 1995
***************
*** 85,89 ****
  
  extern int sys_nerr;
! #if defined(bsd4_4) || defined(__NetBSD__)
  extern const char *const sys_errlist[];
  #else
--- 85,89 ----
  
  extern int sys_nerr;
! #if defined(bsd4_4) || defined(__NetBSD__) || defined(__FreeBSD__)
  extern const char *const sys_errlist[];
  #else
***************
*** 379,383 ****
  
    if (argc == 1)
!     fatal ("No input files specified.\n");
  
  #ifndef __MSDOS__
--- 379,383 ----
  
    if (argc == 1)
!     fatal ("No input files specified");
  
  #ifndef __MSDOS__
Only in gcc-2.6.3/cp: gxx.gperf
Only in gcc-2.6.3/cp: parse.c
Only in gcc-2.6.3/cp: parse.h
diff -wrc2 gcc-2.6.3/cp/pt.c gcc-2.6.3.freebsd/cp/pt.c
*** gcc-2.6.3/cp/pt.c	Thu Jun 22 14:04:29 1995
--- gcc-2.6.3.freebsd/cp/pt.c	Wed May 31 18:32:27 1995
***************
*** 2303,2306 ****
--- 2303,2310 ----
  	DECIDE (0);
  
+       if (i->interface == 1)
+         /* OK, it was an implicit instantiation.  */
+         TREE_PUBLIC (t) = 0;
+ 
        /* If it's a method, let the class type decide it.
  	 @@ What if the method template is in a separate file?
Only in gcc-2.6.3: cpp.1
Only in gcc-2.6.3: cpp.aux
Only in gcc-2.6.3: cpp.cps
Only in gcc-2.6.3: cpp.fns
Only in gcc-2.6.3: cpp.info
Only in gcc-2.6.3: cpp.info-1
Only in gcc-2.6.3: cpp.info-2
Only in gcc-2.6.3: cpp.info-3
Only in gcc-2.6.3: cross-make
Only in gcc-2.6.3: cross-test.c
Only in gcc-2.6.3: crtstuff.c
Only in gcc-2.6.3: dbxstclass.h
Only in gcc-2.6.3: doschk.c
Only in gcc-2.6.3: dostage2
Only in gcc-2.6.3: dostage3
Only in gcc-2.6.3: dwarf.h
Only in gcc-2.6.3: enquire.c
diff -wrc2 gcc-2.6.3/final.c gcc-2.6.3.freebsd/final.c
*** gcc-2.6.3/final.c	Wed Sep 21 10:05:03 1994
--- gcc-2.6.3.freebsd/final.c	Wed May 31 18:32:45 1995
***************
*** 334,337 ****
--- 334,339 ----
        ASM_OUTPUT_ALIGN (asm_out_file, align);
  
+       fprintf(asm_out_file,".stabs \"bbset\", 25, 0, 0, LPBX0\n");
+ 
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LPBX", 0);
        /* zero word */
***************
*** 903,906 ****
--- 905,910 ----
    /* The Sun386i and perhaps other machines don't work right
       if the profiling code comes after the prologue.  */
+   if (profile_block_flag)
+     add_bb (file);
  #ifdef PROFILE_BEFORE_PROLOGUE
    if (profile_flag)
***************
*** 958,969 ****
--- 962,977 ----
       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 ();
***************
*** 1052,1055 ****
--- 1060,1066 ----
    FUNCTION_EPILOGUE (file, get_frame_size ());
  #endif
+   if (profile_block_flag)
+     add_bb (file);
+ 
  
  #ifdef SDB_DEBUGGING_INFO
Only in gcc-2.6.3: fix-header.c
Only in gcc-2.6.3: fixcpp
Only in gcc-2.6.3: fixinc.dgux
Only in gcc-2.6.3: fixinc.ptx
Only in gcc-2.6.3: fixinc.sco
Only in gcc-2.6.3: fixinc.svr4
Only in gcc-2.6.3: fixincludes
Only in gcc-2.6.3: fixlimits.h
Only in gcc-2.6.3: fixproto
Only in gcc-2.6.3: floatlib.c
Only in gcc-2.6.3: future.options
diff -wrc2 gcc-2.6.3/gcc.1 gcc-2.6.3.freebsd/gcc.1
*** gcc-2.6.3/gcc.1	Tue Jul 12 08:32:32 1994
--- gcc-2.6.3.freebsd/gcc.1	Tue Nov 15 15:51:29 1994
***************
*** 21,25 ****
  .if t .sp 0.4
  ..
! .Id $Id: gcc.1,v 1.4 1993/10/13 23:19:12 pesch Exp $
  .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools"
  .SH NAME
--- 21,25 ----
  .if t .sp 0.4
  ..
! .Id $Id: cc.1,v 1.2 1994/11/15 04:51:29 phk Exp $
  .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools"
  .SH NAME
Only in gcc-2.6.3: gcc.aux
diff -wrc2 gcc-2.6.3/gcc.c gcc-2.6.3.freebsd/gcc.c
*** gcc-2.6.3/gcc.c	Mon Nov 14 04:11:12 1994
--- gcc-2.6.3.freebsd/gcc.c	Wed May 31 18:32:04 1995
***************
*** 32,35 ****
--- 32,36 ----
  
  #include <sys/types.h>
+ #include <sys/wait.h>
  #include <ctype.h>
  #include <signal.h>
***************
*** 51,54 ****
--- 52,58 ----
  #endif
  #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
  
  /* Include multi-lib information.  */
***************
*** 167,171 ****
  
  extern int sys_nerr;
! #if defined(bsd4_4) || defined(__NetBSD__)
  extern const char *const sys_errlist[];
  #else
--- 171,175 ----
  
  extern int sys_nerr;
! #if defined(bsd4_4) || defined(__NetBSD__) || defined (__FreeBSD__)
  extern const char *const sys_errlist[];
  #else
***************
*** 712,715 ****
--- 716,748 ----
  					      %{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}
***************
*** 1610,1614 ****
    int num_envs = 0;
    int name_len = 1;
-   int str_len = strlen (str);
    char *p = str;
    int ch;
--- 1643,1646 ----
***************
*** 2703,2713 ****
    /* Use 2 as fourth arg meaning try just the machine as a suffix,
       as well as trying the machine and the version.  */
! #ifndef OS2
!   add_prefix (&exec_prefixes, standard_exec_prefix, 0, 2, NULL_PTR);
!   add_prefix (&exec_prefixes, standard_exec_prefix_1, 0, 2, NULL_PTR);
! #endif
! 
!   add_prefix (&startfile_prefixes, standard_exec_prefix, 0, 1, NULL_PTR);
!   add_prefix (&startfile_prefixes, standard_exec_prefix_1, 0, 1, NULL_PTR);
  
    tooldir_prefix = concat3 (tooldir_base_prefix, spec_machine, 
--- 2735,2740 ----
    /* Use 2 as fourth arg meaning try just the machine as a suffix,
       as well as trying the machine and the version.  */
!   add_prefix (&exec_prefixes, "/usr/libexec/", 0, 0, NULL_PTR);
!   add_prefix (&exec_prefixes, "/usr/bin/", 0, 0, NULL_PTR);
  
    tooldir_prefix = concat3 (tooldir_base_prefix, spec_machine,
***************
*** 2744,2754 ****
      }
  
-   add_prefix (&exec_prefixes, 
-               concat3 (tooldir_prefix, "bin", dir_separator_str),
- 	      0, 0, NULL_PTR);
-   add_prefix (&startfile_prefixes,
- 	      concat3 (tooldir_prefix, "lib", dir_separator_str),
- 	      0, 0, NULL_PTR);
- 
    /* More prefixes are enabled in main, after we read the specs file
       and determine whether this is cross-compilation or not.  */
--- 2771,2774 ----
***************
*** 3756,3760 ****
  	      int c1 = *p++;  /* Select first or second version number.  */
  	      char *v = compiler_version;
! 	      char *q, *copy;
  	      /* If desired, advance to second version number.  */
  	      if (c1 == '2')
--- 3776,3780 ----
  	      int c1 = *p++;  /* Select first or second version number.  */
  	      char *v = compiler_version;
! 	      char *q;
  	      /* If desired, advance to second version number.  */
  	      if (c1 == '2')
***************
*** 4247,4254 ****
    /* Read specs from a file if there is one.  */
  
-   machine_suffix = concat4 (spec_machine, dir_separator_str,
-                             spec_version, dir_separator_str);
-   just_machine_suffix = concat (spec_machine, dir_separator_str);
- 
    specs_file = find_a_file (&startfile_prefixes, "specs", R_OK);
    /* Read the specs file unless it is a default one.  */
--- 4267,4270 ----
***************
*** 4296,4306 ****
  	}		       
  
-       add_prefix (&startfile_prefixes, standard_startfile_prefix_1, 0, 0,
- 		  NULL_PTR);
-       add_prefix (&startfile_prefixes, standard_startfile_prefix_2, 0, 0,
- 		  NULL_PTR);
- #if 0 /* Can cause surprises, and one can use -B./ instead.  */
-       add_prefix (&startfile_prefixes, "./", 0, 1, NULL_PTR);
- #endif
      }
  
--- 4312,4315 ----
***************
*** 4358,4362 ****
  
    if (n_infiles == 0)
!     fatal ("No input files");
  
    /* Make a place to record the compiler output file names
--- 4367,4371 ----
  
    if (n_infiles == 0)
!     fatal ("No input files specified");
  
    /* Make a place to record the compiler output file names
Only in gcc-2.6.3: gcc.cps
Only in gcc-2.6.3: gcc.hlp
Only in gcc-2.6.3: gcc.info
Only in gcc-2.6.3: gcc.info-1
Only in gcc-2.6.3: gcc.info-10
Only in gcc-2.6.3: gcc.info-11
Only in gcc-2.6.3: gcc.info-12
Only in gcc-2.6.3: gcc.info-13
Only in gcc-2.6.3: gcc.info-14
Only in gcc-2.6.3: gcc.info-15
Only in gcc-2.6.3: gcc.info-16
Only in gcc-2.6.3: gcc.info-17
Only in gcc-2.6.3: gcc.info-18
Only in gcc-2.6.3: gcc.info-19
Only in gcc-2.6.3: gcc.info-2
Only in gcc-2.6.3: gcc.info-20
Only in gcc-2.6.3: gcc.info-21
Only in gcc-2.6.3: gcc.info-22
Only in gcc-2.6.3: gcc.info-23
Only in gcc-2.6.3: gcc.info-24
Only in gcc-2.6.3: gcc.info-3
Only in gcc-2.6.3: gcc.info-4
Only in gcc-2.6.3: gcc.info-5
Only in gcc-2.6.3: gcc.info-6
Only in gcc-2.6.3: gcc.info-7
Only in gcc-2.6.3: gcc.info-8
Only in gcc-2.6.3: gcc.info-9
Only in gcc-2.6.3: gcc.ps
Only in gcc-2.6.3: genattr.c
Only in gcc-2.6.3: genattrtab.c
Only in gcc-2.6.3: gencodes.c
Only in gcc-2.6.3: genconfig.c
Only in gcc-2.6.3: genemit.c
Only in gcc-2.6.3: genextract.c
Only in gcc-2.6.3: genflags.c
Only in gcc-2.6.3: genmultilib
Only in gcc-2.6.3: genopinit.c
Only in gcc-2.6.3: genoutput.c
Only in gcc-2.6.3: genpeep.c
Only in gcc-2.6.3: genrecog.c
Only in gcc-2.6.3: getopt.c
Only in gcc-2.6.3: getopt.h
Only in gcc-2.6.3: getopt1.c
Only in gcc-2.6.3: ginclude
Only in gcc-2.6.3: gmon.c
Only in gcc-2.6.3: gstab.h
Only in gcc-2.6.3: gsyms.h
Only in gcc-2.6.3: gsyslimits.h
Only in gcc-2.6.3: halfpic.c
Only in gcc-2.6.3: halfpic.h
Only in gcc-2.6.3: install.sh
Only in gcc-2.6.3: just-fixinc
Only in gcc-2.6.3: limitx.h
Only in gcc-2.6.3: limity.h
Only in gcc-2.6.3: listing
Only in gcc-2.6.3: make-cc1.com
Only in gcc-2.6.3: make-cccp.com
Only in gcc-2.6.3: make-gcc.com
Only in gcc-2.6.3: make-l2.com
Only in gcc-2.6.3: mips-tdump.c
Only in gcc-2.6.3: mips-tfile.c
Only in gcc-2.6.3: move-if-change
Only in gcc-2.6.3: objc
Only in gcc-2.6.3: objc-act.c
Only in gcc-2.6.3: objc-act.h
Only in gcc-2.6.3: objc-parse.c
Only in gcc-2.6.3: objc-parse.y
Only in gcc-2.6.3: objc-tree.def
Only in gcc-2.6.3: orig
Only in gcc-2.6.3: protoize.c
Only in gcc-2.6.3: pself.c
Only in gcc-2.6.3: pself1.c
Only in gcc-2.6.3: pself2.c
Only in gcc-2.6.3: pself3.c
Only in gcc-2.6.3: scan-decls.c
Only in gcc-2.6.3: scan-types.sh
Only in gcc-2.6.3: scan.c
Only in gcc-2.6.3: scan.h
Only in gcc-2.6.3: sort-protos
Only in gcc-2.6.3: stab.def
Only in gcc-2.6.3: sys-protos.h
Only in gcc-2.6.3: sys-types.h
Only in gcc-2.6.3: texinfo.tex
Only in gcc-2.6.3: unprotoize.c
Only in gcc-2.6.3: vmsconfig.com
Only in gcc-2.6.3: xcoffout.h

---
gcc-2.7.0.dif
---
diff -c2 gcc-2.7.0/config/i386/freebsd.h~ gcc-2.7.0/config/i386/freebsd.h
*** gcc-2.7.0/config/i386/freebsd.h~	Thu Jun 15 23:44:56 1995
--- gcc-2.7.0/config/i386/freebsd.h	Fri Jun 23 02:05:20 1995
***************
*** 21,27 ****
  Boston, MA 02111-1307, 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
--- 21,24 ----
***************
*** 34,44 ****
  /* Get perform_* macros to build libgcc.a.  */
  #include "i386/perform.h"
  
  #undef CPP_PREDEFINES
! #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -D__386BSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
  
  /* Like the default, except no -lg.  */
  #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
  
  #undef SIZE_TYPE
  #define SIZE_TYPE "unsigned int"
--- 31,92 ----
  /* Get perform_* macros to build libgcc.a.  */
  #include "i386/perform.h"
+ 
+ /* This is cloned from ../netbsd.h.  It and several other things in
+    this file should be in ../freebsd.h.  */
+ /* FREEBSD_NATIVE is defined when gcc is integrated into the FreeBSD
+    source tree so it can be configured appropriately without using
+    the GNU configure/build mechanism. */
+ 
+ #ifdef FREEBSD_NATIVE
+ 
+ /* Look for the include files in the system-defined places.  */
+ 
+ #undef GPLUSPLUS_INCLUDE_DIR
+ #define GPLUSPLUS_INCLUDE_DIR		"/usr/include/g++"
+ 
+ #undef GCC_INCLUDE_DIR
+ #define GCC_INCLUDE_DIR			"/usr/include"
+ 
+ /* FreeBSD has GCC_INCLUDE_DIR first.  */
+ #undef INCLUDE_DEFAULTS
+ #define INCLUDE_DEFAULTS		\
+   {					\
+     { GCC_INCLUDE_DIR, 0, 0 },		\
+     { GPLUSPLUS_INCLUDE_DIR, 1, 1 },	\
+     { 0, 0, 0 }				\
+   }
+ 
+ /* Under FreeBSD, the normal location of the compiler back ends is the
+    /usr/libexec directory.  */
+ 
+ #undef STANDARD_EXEC_PREFIX
+ #define STANDARD_EXEC_PREFIX		"/usr/libexec/"
+ 
+ /* Under FreeBSD, the normal location of the various *crt*.o files is the
+    /usr/lib directory.  */
+ 
+ #undef STANDARD_STARTFILE_PREFIX
+ #define STANDARD_STARTFILE_PREFIX	"/usr/lib/"
  
+ #endif /* FREEBSD_NATIVE */
+ 
  #undef CPP_PREDEFINES
! #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__=2 -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
! 
! #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}"
+ 
+ #define LINK_LIBGCC_SPECIAL_1	1
+ 
+ /* 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"
***************
*** 48,64 ****
  
  #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
  
! /* There are conflicting reports about whether this system uses
!    a different assembler syntax.  wilson@cygnus.com says # is right.  */
! #undef COMMENT_BEGIN
! #define COMMENT_BEGIN "#"
  
  #undef ASM_APP_ON
--- 96,112 ----
  
  #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
  
! /* Override the default comment-starter of "/".  */
! 
! #undef ASM_COMMENT_START
! #define ASM_COMMENT_START "#"
  
  #undef ASM_APP_ON
***************
*** 87,110 ****
     we want to retain compatibility with older gcc versions.  */
  #define DEFAULT_PCC_STRUCT_RETURN 0
- 
- /* Profiling routines, partially copied from i386/osfrose.h.  */
  
! /* Redefine this to use %eax instead of %edx.  */
  #undef FUNCTION_PROFILER
  #define FUNCTION_PROFILER(FILE, LABELNO)  \
  {									\
    if (flag_pic)								\
!     {									\
!       fprintf (FILE, "\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");				\
!     }									\
  }
  
  /*
   * Some imports from svr4.h in support of shared libraries.
--- 135,164 ----
     we want to retain compatibility with older gcc versions.  */
  #define DEFAULT_PCC_STRUCT_RETURN 0
  
! /* 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
+ 
  /*
   * Some imports from svr4.h in support of shared libraries.
***************
*** 112,115 ****
--- 166,171 ----
   */
  
+ #define HANDLE_SYSV_PRAGMA
+ 
  /* Define the strings used for the special svr4 .type and .size directives.
     These strings generally do not vary from one system running svr4 to
***************
*** 120,129 ****
--- 176,188 ----
  #define TYPE_ASM_OP	".type"
  #define SIZE_ASM_OP	".size"
+ #define SET_ASM_OP	".set"
  
  /* This is how we tell the assembler that a symbol is weak.  */
  
+ #if 0 /* not ready for this */
  #define ASM_WEAKEN_LABEL(FILE,NAME) \
    do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
         fputc ('\n', FILE); } while (0)
+ #endif
  
  /* The following macro defines the format used to output the second
***************
*** 224,256 ****
        }									\
    } 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.
-  */
- 
- #ifdef FREEBSD_NATIVE
- 
- #define INCLUDE_DEFAULTS { \
- 	{ "/usr/include", 0 }, \
- 	{ "/usr/include/g++", 1 }, \
- 	{ 0, 0} \
- 	}
- 
- #undef MD_EXEC_PREFIX
- #define MD_EXEC_PREFIX "/usr/libexec/"
- 
- #undef STANDARD_STARTFILE_PREFIX
- #define STANDARD_STARTFILE_PREFIX "/usr/lib"
- 
- #if 0 /* This is very wrong!!! */
- #define DEFAULT_TARGET_MACHINE "i386-unknown-freebsd_1.0"
- #define GPLUSPLUS_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include"
- #define TOOL_INCLUDE_DIR "/usr/local/i386-unknown-freebsd_1.0/include"
- #define GCC_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include"
- #endif
- 
- #endif /* FREEBSD_NATIVE */
--- 283,284 ----
diff -c2 gcc-2.7.0/config/i386/unix.h~ gcc-2.7.0/config/i386/unix.h
*** gcc-2.7.0/config/i386/unix.h~	Thu Jun 15 23:54:19 1995
--- gcc-2.7.0/config/i386/unix.h	Fri Jun 23 00:24:53 1995
***************
*** 100,104 ****
  
  #define ASM_COMMENT_START "/"
- #define COMMENT_BEGIN "/"
  
  /* Output to assembler file text saying following lines
--- 100,103 ----
diff -c2 gcc-2.7.0/config/i386/i386.c~ gcc-2.7.0/config/i386/i386.c
*** gcc-2.7.0/config/i386/i386.c~	Thu Jun 15 23:46:11 1995
--- gcc-2.7.0/config/i386/i386.c	Thu Jun 22 12:28:29 1995
***************
*** 1445,1449 ****
    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;
--- 1445,1450 ----
    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;
***************
*** 1506,1511 ****
    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
--- 1507,1520 ----
    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
***************
*** 1518,1523 ****
  
    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++;
  
--- 1527,1531 ----
  
    for (regno = reglimit - 1; regno >= 0; regno--)
!     if (regs_ever_live[regno] && ! call_used_regs[regno])
        nregs++;
  
***************
*** 1541,1544 ****
--- 1549,1557 ----
    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 */
diff -c2 gcc-2.7.0/config/xm-freebsd.h~ gcc-2.7.0/config/xm-freebsd.h
*** gcc-2.7.0/config/xm-freebsd.h~	Thu Jun 15 22:53:32 1995
--- gcc-2.7.0/config/xm-freebsd.h	Fri Jun 23 01:57:41 1995
***************
*** 24,27 ****
--- 24,30 ----
     CPU/xm-CPU.h and this file xm-freebsd.h.  */
     
+ /* FreeBSD has putenv.  */
+ #define HAVE_PUTENV
+ 
  /* FreeBSD has strerror.  */
  #define HAVE_STRERROR
diff -c2 gcc-2.7.0/ginclude/stdarg.h~ gcc-2.7.0/ginclude/stdarg.h
*** gcc-2.7.0/ginclude/stdarg.h~	Sun Apr 30 22:10:28 1995
--- gcc-2.7.0/ginclude/stdarg.h	Thu Jun 22 12:28:28 1995
***************
*** 44,47 ****
--- 44,56 ----
  #ifndef __GNUC_VA_LIST
  #define __GNUC_VA_LIST
+ #if defined (__FreeBSD__)
+ /* This is the correct way to handle all BSD NET2 and BSD 4.4 systems.  */
+ #include <machine/ansi.h>
+ #ifdef _BSD_VA_LIST_
+ typedef _BSD_VA_LIST_ __gnuc_va_list;
+ #else
+ typedef _VA_LIST_ __gnuc_va_list;
+ #endif
+ #else
  #if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX)
  typedef char *__gnuc_va_list;
***************
*** 50,53 ****
--- 59,63 ----
  #endif
  #endif
+ #endif
  
  /* Define the standard macros for the user,
***************
*** 113,118 ****
--- 123,133 ----
  #endif
  
+ #if 0
+ /* BSD 4.4 actually spells the name _BSD_VA_LIST_ and requires it to be
+  * defined and usable in place of va_list when the latter name is not
+  * allowed (e.g., in stdio.h - see above).  */
  #ifdef _BSD_VA_LIST
  #undef _BSD_VA_LIST
+ #endif
  #endif
  
diff -c2 gcc-2.7.0/ginclude/varargs.h~ gcc-2.7.0/ginclude/varargs.h
*** gcc-2.7.0/ginclude/varargs.h~	Sun Apr 30 22:10:30 1995
--- gcc-2.7.0/ginclude/varargs.h	Thu Jun 22 12:28:28 1995
***************
*** 76,79 ****
--- 76,88 ----
  #ifndef __GNUC_VA_LIST
  #define __GNUC_VA_LIST
+ #if defined (__FreeBSD__)
+ /* This is the correct way to handle all BSD NET2 and BSD 4.4 systems.  */
+ #include <machine/ansi.h>
+ #ifdef _BSD_VA_LIST_
+ typedef _BSD_VA_LIST_ __gnuc_va_list;
+ #else
+ typedef _VA_LIST_ __gnuc_va_list;
+ #endif
+ #else
  #if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX)
  typedef char *__gnuc_va_list;
***************
*** 82,85 ****
--- 91,95 ----
  #endif
  #endif
+ #endif
  
  #define va_start(AP)  AP=(char *) &__builtin_va_alist
***************
*** 182,186 ****
--- 192,201 ----
  /* The next BSD release (if there is one) wants this symbol to be
     undefined instead of _VA_LIST_.  */
+ #if 0
+ /* BSD 4.4 actually spells the name _BSD_VA_LIST_ and requires it to be
+  * defined and usable in place of va_list when the latter name is not
+  * allowed (e.g., in stdio.h - see ginclude/stdarg.h).  */
  #ifdef _BSD_VA_LIST
  #undef _BSD_VA_LIST
+ #endif
  #endif
diff -c2 gcc-2.7.0/cp/g++.c~ gcc-2.7.0/cp/g++.c
*** gcc-2.7.0/cp/g++.c~	Thu Jun 15 22:23:15 1995
--- gcc-2.7.0/cp/g++.c	Fri Jun 23 00:32:35 1995
***************
*** 419,423 ****
  
    if (argc == 1)
!     fatal ("No input files specified.\n");
  
  #ifndef __MSDOS__
--- 419,423 ----
  
    if (argc == 1)
!     fatal ("No input files specified");
  
  #ifndef __MSDOS__
diff -c2 gcc-2.7.0/Makefile.in~ gcc-2.7.0/Makefile.in
*** gcc-2.7.0/Makefile.in~	Thu Jun 15 21:01:43 1995
--- gcc-2.7.0/Makefile.in	Thu Jun 22 13:02:48 1995
***************
*** 230,234 ****
  # we use this here because that should be enough, and also
  # so that -g1 will be tested.
! LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -g1
  
  # Additional options to use when compiling libgcc2.a.
--- 230,234 ----
  # we use this here because that should be enough, and also
  # so that -g1 will be tested.
! LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) # -g1
  
  # Additional options to use when compiling libgcc2.a.
***************
*** 735,738 ****
--- 735,739 ----
  	echo "__foo () {}" > dummy.c
  	$(GCC_FOR_TARGET) $(GCC_CFLAGS) -c dummy.c
+ 	ld -r -x dummy$(objext); mv a.out dummy$(objext)
  	$(OLDAR) $(OLDAR_FLAGS) libgcc1.null dummy$(objext)
  	rm -f dummy$(objext) dummy.c
***************
*** 766,769 ****
--- 767,771 ----
  	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  	  mv libgcc1$(objext) $${name}$(objext); \
+ 	  ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
  	  $(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}$(objext); \
  	  rm -f $${name}$(objext); \
***************
*** 785,788 ****
--- 787,791 ----
  	    $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c $${file}; \
  	    if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ 	    ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
  	    $(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}$(objext); \
  	    if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
***************
*** 814,817 ****
--- 817,821 ----
  	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  	  mv libgcc1$(objext) $${name}$(objext); \
+ 	  ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
  	  $(AR) $(AR_FLAGS) tmplibgcc1.a $${name}$(objext); \
  	  rm -f $${name}$(objext); \
***************
*** 864,867 ****
--- 868,872 ----
  	      $(srcdir)/libgcc2.c -o $${name}$(objext); \
  	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ 	  ld -r -x $${name}$(objext); mv a.out $${name}$(objext); \
  	  $(AR) $(AR_FLAGS) tmplibgcc2.a $${name}$(objext); \
  	  rm -f $${name}$(objext); \
***************
*** 884,887 ****
--- 889,893 ----
  	    $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
  	    if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ 	    ld -r -x $${oname}$(objext); mv a.out $${oname}$(objext); \
  	    $(AR) $(AR_FLAGS) tmplibgcc2.a $${oname}$(objext); \
  	    rm -f $${name}.s $${oname}$(objext); \
diff -c2 gcc-2.7.0/cccp.1~ gcc-2.7.0/cccp.1
*** gcc-2.7.0/cccp.1~	Fri Jun 23 00:05:50 1995
--- gcc-2.7.0/cccp.1	Fri Jun 23 00:42:10 1995
***************
*** 1,12 ****
  .\" 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
--- 1,12 ----
  .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation       \-*-Text-*-
  .\" See section COPYING for conditions for redistribution
! .TH cpp 1 "April 30, 1993" "GNU Tools" "GNU Tools"
  .SH NAME
! cpp \- The GNU C-Compatible Compiler Preprocessor.
  .SH SYNOPSIS
  .hy 0
  .na
  .TP
! .B cpp
  .RB "[\|" \-$ "\|]"
  .RB "[\|" \-A \c
***************
*** 143,153 ****
  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
--- 143,146 ----
diff -c2 gcc-2.7.0/final.c~ gcc-2.7.0/final.c
*** gcc-2.7.0/final.c~	Thu Jun 15 21:32:51 1995
--- gcc-2.7.0/final.c	Fri Jun 23 00:38:21 1995
***************
*** 342,345 ****
--- 342,347 ----
        ASM_OUTPUT_ALIGN (asm_out_file, align);
  
+       fprintf(asm_out_file,".stabs \"bbset\", 25, 0, 0, LPBX0\n");
+ 
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LPBX", 0);
        /* zero word */
***************
*** 912,915 ****
--- 914,920 ----
  #endif
  
+   if (profile_block_flag)
+     add_bb (file);
+ 
    /* The Sun386i and perhaps other machines don't work right
       if the profiling code comes after the prologue.  */
***************
*** 969,980 ****
--- 974,989 ----
       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 ();
***************
*** 1063,1066 ****
--- 1072,1078 ----
    FUNCTION_EPILOGUE (file, get_frame_size ());
  #endif
+ 
+   if (profile_block_flag)
+     add_bb (file);
  
  #ifdef SDB_DEBUGGING_INFO
diff -c2 gcc-2.7.0/cccp.c~ gcc-2.7.0/cccp.c
*** gcc-2.7.0/cccp.c~	Thu Jun 15 21:16:31 1995
--- gcc-2.7.0/cccp.c	Fri Jun 23 00:13:12 1995
***************
*** 4910,4913 ****
--- 4910,4914 ----
    char *p, *dir;
  
+ #if 0
    if (searchptr && ! searchptr->got_name_map)
      {
***************
*** 4932,4935 ****
--- 4933,4937 ----
  	}
      }
+ #endif
  
    /* Try to find a mapping file for the particular directory we are
***************
*** 4968,4974 ****
--- 4970,4978 ----
        from = p + 1;
      }
+ #if 0
    for (map = read_name_map (dir); map; map = map->map_next)
      if (! strcmp (map->map_from, from))
        return open (map->map_to, O_RDONLY, 0666);
+ #endif
  
    return open (filename, O_RDONLY, 0666);
diff -c2 gcc-2.7.0/gcc.c~ gcc-2.7.0/gcc.c
*** gcc-2.7.0/gcc.c~	Thu Jun 15 21:38:02 1995
--- gcc-2.7.0/gcc.c	Fri Jun 23 01:30:30 1995
***************
*** 33,36 ****
--- 33,37 ----
  
  #include <sys/types.h>
+ #include <sys/wait.h>
  #include <ctype.h>
  #include <signal.h>
***************
*** 52,55 ****
--- 53,59 ----
  #endif
  #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
  
  /* Include multi-lib information.  */
***************
*** 1618,1622 ****
    int num_envs = 0;
    int name_len = 1;
-   int str_len = strlen (str);
    char *p = str;
    int ch;
--- 1622,1625 ----
***************
*** 2735,2738 ****
--- 2738,2745 ----
    /* Use 2 as fourth arg meaning try just the machine as a suffix,
       as well as trying the machine and the version.  */
+ #ifdef FREEBSD_NATIVE
+   add_prefix (&exec_prefixes, "/usr/libexec/", 0, 0, NULL_PTR);
+   add_prefix (&exec_prefixes, "/usr/bin/", 0, 0, NULL_PTR);
+ #else /* not FREEBSD_NATIVE */
  #ifndef OS2
    add_prefix (&exec_prefixes, standard_exec_prefix, 0, 2, NULL_PTR);
***************
*** 2742,2745 ****
--- 2749,2753 ----
    add_prefix (&startfile_prefixes, standard_exec_prefix, 0, 1, NULL_PTR);
    add_prefix (&startfile_prefixes, standard_exec_prefix_1, 0, 1, NULL_PTR);
+ #endif /* FREEBSD_NATIVE */
  
    tooldir_prefix = concat3 (tooldir_base_prefix, spec_machine, 
***************
*** 2776,2779 ****
--- 2784,2788 ----
      }
  
+ #ifndef FREEBSD_NATIVE
    add_prefix (&exec_prefixes, 
                concat3 (tooldir_prefix, "bin", dir_separator_str),
***************
*** 2782,2785 ****
--- 2791,2795 ----
  	      concat3 (tooldir_prefix, "lib", dir_separator_str),
  	      0, 0, NULL_PTR);
+ #endif /* FREEBSD_NATIVE */
  
    /* More prefixes are enabled in main, after we read the specs file
***************
*** 3802,3806 ****
  	      int c1 = *p++;  /* Select first or second version number.  */
  	      char *v = compiler_version;
! 	      char *q, *copy;
  	      /* If desired, advance to second version number.  */
  	      if (c1 == '2')
--- 3812,3816 ----
  	      int c1 = *p++;  /* Select first or second version number.  */
  	      char *v = compiler_version;
! 	      char *q;
  	      /* If desired, advance to second version number.  */
  	      if (c1 == '2')
***************
*** 4298,4304 ****
--- 4308,4316 ----
    /* Read specs from a file if there is one.  */
  
+ #ifndef FREEBSD_NATIVE
    machine_suffix = concat4 (spec_machine, dir_separator_str,
                              spec_version, dir_separator_str);
    just_machine_suffix = concat (spec_machine, dir_separator_str);
+ #endif
  
    specs_file = find_a_file (&startfile_prefixes, "specs", R_OK);
***************
*** 4347,4350 ****
--- 4359,4363 ----
  	}		       
  
+ #ifndef FREEBSD_NATIVE
        add_prefix (&startfile_prefixes, standard_startfile_prefix_1, 0, 0,
  		  NULL_PTR);
***************
*** 4354,4357 ****
--- 4367,4372 ----
        add_prefix (&startfile_prefixes, "./", 0, 1, NULL_PTR);
  #endif
+ #endif /* FREEBSD_NATIVE */
+ 
      }
    else
***************
*** 4443,4447 ****
  
    if (n_infiles == 0)
!     fatal ("No input files");
  
    /* Make a place to record the compiler output file names
--- 4458,4462 ----
  
    if (n_infiles == 0)
!     fatal ("No input files specified");
  
    /* Make a place to record the compiler output file names



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199506242008.GAA00060>