From owner-FreeBSD-tech-jp@jp.freebsd.org  Tue Jan 13 07:55:46 1998
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) id HAA18888
	Tue, 13 Jan 1998 07:55:46 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) with ESMTP id HAA18883
	for <freebsd-tech-jp@jp.freebsd.org>; Tue, 13 Jan 1998 07:55:44 +0900 (JST)
Received: from mxs.meshnet.or.jp (tksm2DS19.tks.mesh.ad.jp [133.205.221.169]) by meshsv88.tk.mesh.ad.jp (8.8.4+2.7Wbeta4/3.5Wpl1-97120411) with ESMTP id HAA26468 for <freebsd-tech-jp@jp.freebsd.org>; Tue, 13 Jan 1998 07:55:29 +0900 (JST)
Received: foo.bar.org; Tue, 13 Jan 1998 07:55:14 +0900 (JST)
Message-Id: <Lucky.199801122255.HAA23868.Lucky>
To: freebsd-tech-jp@jp.freebsd.org
From: Shiba <shiba@mxs.meshnet.or.jp>
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Date: Tue, 13 Jan 1998 07:55:14 +0900
X-Dispatcher: imput version 971225
Lines: 1063
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24]
X-Sequence: FreeBSD-tech-jp 1094
Subject: [FreeBSD-tech-jp 1094] egs-1.0.1=?iso-2022-jp?B?GyRCJHIbKEI=?=system compiler=?iso-2022-jp?B?GyRCJEsbKEI=?=(on 3.0-current)
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org

$B:rF|$N:#F|$G$9$,!"(B

$BLdBjE@(B
 1. constructor,destructor$B$N(Bstab$B2s$j$,;]$/$J$$!#(B(shared library)
 2. libm(msun)$B$G(Berror
 3. libgcc$B$r:n$k;~$3$1$k!#(B
	$B$3$l$?$i!"(Bmake install$B$=$7$F(Bmake $B$5$i$K(Bmake install
	$B$=$7$F!"(B/etc/make.conf$B$NJT=8!"(Bmake clean$B!"$=$7$F!"(B
	make$B!":G8e$K(Bmake install
 4. $B$"$^$j(Bcheck$B$7$F$$$J$$(B


diff -crN3 egcs-1.0.1/FreeBSD/cc/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/Makefile
*** egcs-1.0.1/FreeBSD/cc/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/Makefile	Mon Jan 12 09:39:11 1998
***************
*** 0 ****
--- 1,3 ----
+ SUBDIR= cc_tools cc_int cpp cc1 cc cc1obj cc1plus c++ libgcc c++filt 
+ 
+ .include <bsd.subdir.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/Makefile.inc egcs-1.0.1-fbsd3/FreeBSD/cc/Makefile.inc
*** egcs-1.0.1/FreeBSD/cc/Makefile.inc	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/Makefile.inc	Mon Jan 12 11:28:34 1998
***************
*** 0 ****
--- 1,44 ----
+ GCCDIR=		${.CURDIR}/../../../gcc
+ .PATH:		../cc_tools ${GCCDIR} ${GCCDIR}/cp ${GCCDIR}/objc ${GCCDIR}/config/i386
+ 
+ BISON?=		bison
+ 
+ # Machine description.
+ MD_FILE=	${GCCDIR}/config/i386/i386.md
+ OUT_FILE=	i386.c
+ OUT_OBJ=	i386
+ # Pick aout for now. the elf config is not binary compatable.
+ BINFORMAT?=	aout
+ #BINFORMAT?=	elf
+ 
+ .if ${BINFORMAT} == aout
+ CFLAGS+=	-DFREEBSD_AOUT
+ target=		i686-unknown-freebsd
+ .endif
+ .if ${BINFORMAT} == elf
+ CFLAGS+=	-DFREEBSD_ELF
+ target=		i686-unknown-freebsdelf
+ .endif
+ 
+ version!=	sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${GCCDIR}/version.c
+ 
+ CFLAGS+=	-I${GCCDIR} -I${GCCDIR}/config
+ CFLAGS+=	-DFREEBSD_NATIVE
+ CFLAGS+=	-DDEFAULT_TARGET_VERSION=\"$(version)\"
+ CFLAGS+=	-DDEFAULT_TARGET_MACHINE=\"$(target)\"
+ CFLAGS+=	-DTARGET_NAME=\"$(target)\"
+ CFLAGS+=	-DPREFIX=\"/usr\"
+ 
+ .if exists(${.OBJDIR}/../cc_tools)
+ CFLAGS+=	-I${.OBJDIR}/../cc_tools
+ .else
+ CFLAGS+=	-I${.CURDIR}/../cc_tools
+ .endif
+ 
+ .if exists(${.OBJDIR}/../cc_int)
+ LIBDESTDIR=	${.OBJDIR}/../cc_int
+ .else
+ LIBDESTDIR=	${.CURDIR}/../cc_int
+ .endif
+ 
+ LIBCC_INT=	${LIBDESTDIR}/libcc_int.a
diff -crN3 egcs-1.0.1/FreeBSD/cc/c++/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/c++/Makefile
*** egcs-1.0.1/FreeBSD/cc/c++/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/c++/Makefile	Mon Jan 12 11:33:06 1998
***************
*** 0 ****
--- 1,9 ----
+ PATH:../../../gcc
+ CFLAGS+=-I../cc -DIN_GCC
+ PROG =	c++
+ SRCS =	gcc.c obstack.c version.c choose-temp.c pexecute.c
+ BINDIR=	/usr/bin
+ LINKS=	${BINDIR}/c++ ${BINDIR}/g++
+ NOMAN=	1
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/c++filt/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/c++filt/Makefile
*** egcs-1.0.1/FreeBSD/cc/c++filt/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/c++filt/Makefile	Mon Jan 12 09:40:15 1998
***************
*** 0 ****
--- 1,41 ----
+ PROG =	c++filt
+ SRCS =	cplus-dem.c getopt.c getopt1.c
+ OBJS+=  underscore.o		# defeat 'make depend'
+ BINDIR=	/usr/bin
+ NOMAN=	1
+ CFLAGS+= -DMAIN -DIN_GCC -DVERSION=\"$(version)\"
+ 
+ .if exists(${.OBJDIR}/../cc)
+ XCC=	${.OBJDIR}/../cc/cc
+ .else
+ XCC=	${.CURDIR}/../cc/cc
+ .endif
+ 
+ .if exists(${.OBJDIR}/../cc1)
+ XCC+=	-B${.OBJDIR}/../cc1/
+ .else
+ XCC+=	-B${.CURDIR}/../cc1/
+ .endif
+ 
+ .if exists(${.OBJDIR}/../cpp)
+ XCC+=	-B${.OBJDIR}/../cpp/
+ .else
+ XCC+=	-B${.CURDIR}/../cpp/
+ .endif
+ 
+ CLEANFILES+= underscore.c
+ underscore.o: underscore.c
+ 
+ underscore.c:
+ 	echo "int xxy_us_dummy;" >tmp-dum.c
+ 	${XCC} -S tmp-dum.c
+ 	echo '/*WARNING: This file is automatically generated!*/' >underscore.c
+ 	if grep _xxy_us_dummy tmp-dum.s > /dev/null ; then \
+ 	  echo "int prepends_underscore = 1;" >>underscore.c; \
+ 	else \
+ 	  echo "int prepends_underscore = 0;" >>underscore.c; \
+ 	fi
+ 	rm -f tmp-dum.c tmp-dum.s
+ 
+ .include <bsd.prog.mk>
+ 
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cc/Makefile
*** egcs-1.0.1/FreeBSD/cc/cc/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc/Makefile	Mon Jan 12 11:28:08 1998
***************
*** 0 ****
--- 1,16 ----
+ PROG =	cc
+ MAN1 =  gcc.1
+ SRCS =	gcc.c
+ BINDIR=	/usr/bin
+ SRCS+=	multilib.h obstack.c version.c choose-temp.c pexecute.c
+ LINKS=	${BINDIR}/cc ${BINDIR}/gcc
+ MLINKS= gcc.1 cc.1 gcc.1 c++.1 gcc.1 g++.1
+ CFLAGS+= -I.	# I mean it!
+ CFLAGS+= -I${.CURDIR} -DIN_GCC
+ CLEANFILES+=  multilib.h
+ 
+ multilib.h: genmultilib
+ 	sh ${GCCDIR}/genmultilib "$(MULTILIB_OPTIONS)" \
+ 		"$(MULTILIB_DIRNAMES)" "$(MULTILIB_MATCHES)" > multilib.h
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc/f2c-specs.h egcs-1.0.1-fbsd3/FreeBSD/cc/cc/f2c-specs.h
*** egcs-1.0.1/FreeBSD/cc/cc/f2c-specs.h	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc/f2c-specs.h	Mon Jan 12 09:33:50 1998
***************
*** 0 ****
--- 1,29 ----
+ /***** 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} %{krd}\
+         %{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 *****/
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc1/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cc1/Makefile
*** egcs-1.0.1/FreeBSD/cc/cc1/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc1/Makefile	Mon Jan 12 11:03:28 1998
***************
*** 0 ****
--- 1,14 ----
+ PATH:	../cc_tools
+ PROG =	cc1
+ SRCS =	c-parse.c \
+ 	c-aux-info.c c-convert.c c-decl.c c-iterate.c c-lang.c c-lex.c \
+ 	c-typeck.c
+ BINDIR=	/usr/libexec
+ NOMAN=	1
+ NOSHARED=yes
+ DPADD+=	${LIBCC_INT} 
+ LDADD+=	${LIBCC_INT}
+ CLEANFILES +=c-parse.c c-parse.h
+ CFLAGS += -I.
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc1obj/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cc1obj/Makefile
*** egcs-1.0.1/FreeBSD/cc/cc1obj/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc1obj/Makefile	Mon Jan 12 11:02:36 1998
***************
*** 0 ****
--- 1,14 ----
+ PATH:../cc_tools
+ CFLAGS+=-I../../../gcc/objc
+ PROG =	cc1obj
+ SRCS =	objc-parse.c objc-act.c
+ # Ugh, compiled twice...
+ SRCS +=	c-aux-info.c c-convert.c c-decl.c c-iterate.c c-lex.c c-typeck.c
+ BINDIR=	/usr/libexec
+ NOMAN=	1
+ NOSHARED=yes
+ CLEANFILES+= objc-parse.c objc-parse.h
+ DPADD+=	${LIBCC_INT} 
+ LDADD+=	${LIBCC_INT}
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc1plus/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cc1plus/Makefile
*** egcs-1.0.1/FreeBSD/cc/cc1plus/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc1plus/Makefile	Mon Jan 12 09:33:50 1998
***************
*** 0 ****
--- 1,25 ----
+ .PATH:	${.CURDIR}/../../../gcc/cp
+ 
+ PROG =	cc1plus
+ SRCS =	parse.c parse.h \
+ 	call.c class.c cvt.c decl.c decl2.c \
+ 	errfn.c error.c except.c expr.c \
+ 	friend.c init.c lex.c method.c \
+ 	pt.c ptree.c \
+ 	repo.c rtti.c search.c sig.c spew.c \
+ 	tree.c typeck.c typeck2.c xref.c
+ BINDIR=	/usr/libexec
+ NOMAN=	1
+ NOSHARED=yes
+ DPADD+=	${LIBCC_INT} 
+ LDADD+=	${LIBCC_INT}
+ CFLAGS+= -I../../../gcc/cp -I.	# I mean it.
+ 
+ .ORDER: parse.c parse.h
+ parse.c parse.h: parse.y
+ 	${BISON} -d ${GCCDIR}/cp/parse.y -o parse.c 
+ 	grep '^#define[   ]*YYEMPTY' parse.c >>parse.h
+ 
+ CLEANFILES+=	parse.c parse.h
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc_int/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cc_int/Makefile
*** egcs-1.0.1/FreeBSD/cc/cc_int/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc_int/Makefile	Mon Jan 12 09:40:55 1998
***************
*** 0 ****
--- 1,29 ----
+ .include "../Makefile.inc"
+ 
+ SRCS=	alias.c \
+ 	bc-emit.c bc-optab.c bitmap.c \
+ 	c-common.c c-pragma.c \
+ 	caller-save.c calls.c combine.c convert.c cse.c \
+ 	dbxout.c dwarfout.c dwarf2out.c emit-rtl.c \
+ 	except.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  profile.c \
+ 	real.c recog.c reg-stack.c regclass.c \
+ 	regmove.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 \
+ 	${OUT_FILE}
+ 
+ LIB=		cc_int
+ NOPROFILE=	YES
+ NOPIC=		YES
+ 
+ install:
+ 	@true
+ 
+ ${OUT_OBJ}.o ${OUT_OBJ}.so:	${OUT_FILE}
+ 
+ .include <bsd.lib.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/cc_tools/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cc_tools/Makefile
*** egcs-1.0.1/FreeBSD/cc/cc_tools/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cc_tools/Makefile	Mon Jan 12 16:12:38 1998
***************
*** 0 ****
--- 1,174 ----
+ 
+ .for i in arity opcode opname
+ bc-$i.h:	bi-$i bytecode.def
+ 	./bi-$i < ${GCCDIR}/bytecode.def > bc-$i.h
+ 
+ bi-$i:	bi-$i.o bi-parser.o bi-lexer.o bi-reverse.o
+ 	${CC} ${.ALLSRC} -o ${.TARGET}
+ 
+ CLEANFILES+= bi-$i bi-$i.o
+ SRCS+= bc-$i.h
+ 
+ .endfor
+ 
+ .ORDER: bi-parser.c bi-parser.h
+ bi-parser.c bi-parser.h:	bi-parser.y
+ 	${BISON} ${BISONFLAGS} -d ${.ALLSRC} -o bi-parser.c
+ 
+ SRCS+= bi-parser.c bi-parser.h
+ 
+ CLEANFILES+= bi-lexer.o bi-parser.o bi-reverse.o
+ 
+ 
+ .for i in config flags codes attr
+ insn-$i.h:	gen$i ${MD_FILE}
+ 	./gen$i ${MD_FILE} > insn-$i.h
+ SRCS+= insn-$i.h
+ .endfor
+ 
+ .for i in emit recog opinit extract peep attrtab output
+ insn-$i.c:	gen$i ${MD_FILE}
+ 	./gen$i ${MD_FILE} > insn-$i.c
+ SRCS+= insn-$i.c
+ .endfor
+ 
+ .for i in config flags codes emit opinit recog extract peep attr output
+ gen$i:	gen$i.o rtl.o obstack.o
+ 	${CC} ${.ALLSRC} -o ${.TARGET}
+ 
+ gen$i.o:	gen$i.c ${RTL_H}
+ CLEANFILES+= gen$i gen$i.o
+ .endfor
+ 
+ .for i in attrtab
+ gen$i:	gen$i.o rtl.o rtlanal.o print-rtl.o obstack.o
+ 	${CC} ${.ALLSRC} -o ${.TARGET}
+ 
+ gen$i.o:	gen$i.c ${RTL_H}
+ CLEANFILES+= gen$i gen$i.o
+ .endfor
+ 
+ CLEANFILES+= print-rtl.o rtl.o rtlanal.o obstack.o
+ 
+ #-----------------------------------------------------------------------
+ # C hash codes
+ c-gperf.h: c-parse.gperf
+ 	gperf -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$$ \
+ 		${GCCDIR}/c-parse.gperf > ${.TARGET}
+ SRCS+=	c-gperf.h
+ 
+ #-----------------------------------------------------------------------
+ # C++ hash codes
+ hash.h: gxx.gperf
+ 	gperf -p -j1 -g -o -t -N is_reserved_word '-k1,4,7,$$' \
+ 		${GCCDIR}/cp/gxx.gperf >hash.h
+ SRCS+=	hash.h
+ 
+ #-----------------------------------------------------------------------
+ # C parser
+ .ORDER: c-parse.c c-parse.h
+ c-parse.c c-parse.h: c-parse.in
+ 	sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
+ 	    -e "/^ifc$$/d" -e "/^end ifc$$/d" \
+ 	    ${GCCDIR}/c-parse.in > c-parse.y
+ 	${BISON} -d c-parse.y -o c-parse.c 
+ 	rm -f c-parse.y
+ 	ln -s ../cc_tools/c-parse.c ../cc1/c-parse.c
+ 	ln -s ../cc_tools/c-parse.h ../cc1/c-parse.h
+ 
+ SRCS+=	c-parse.c c-parse.h
+ CLEANFILES+= c-parse.y		# insurance
+ 
+ #-----------------------------------------------------------------------
+ # objc parser
+ .ORDER: objc-parse.c objc-parse.h
+ objc-parse.c objc-parse.h: c-parse.in
+ 	sed -e "/^ifc$$/,/^end ifc$$/d" \
+ 	    -e "/^ifobjc$$/d" -e "/^end ifobjc$$/d" \
+ 	    ${GCCDIR}/c-parse.in > objc-parse.y
+ 	${BISON} -d objc-parse.y -o objc-parse.c 
+ 	rm -f objc-parse.y
+ 	ln -s ../cc_tools/objc-parse.c ../cc1obj/objc-parse.c
+ 	ln -s ../cc_tools/objc-parse.h ../cc1obj/objc-parse.h
+ 
+ SRCS+=	objc-parse.c objc-parse.h
+ CLEANFILES+= objc-parse.y		# insurance
+ 
+ #-----------------------------------------------------------------------
+ # C++ parser done in it's own makefile
+ #-----------------------------------------------------------------------
+ # CPP parser done in it's own makefile
+ #-----------------------------------------------------------------------
+ # All generates sources are cleaned
+ CLEANFILES+=	${SRCS}
+ 
+ #-----------------------------------------------------------------------
+ all:		${BINFORMAT} ${SRCS}
+ 
+ #-----------------------------------------------------------------------
+ # Make 'depend' in compat mode
+ .if make(depend)
+ .SINGLESHELL:
+ .endif
+ 
+ beforedepend:	${BINFORMAT}
+ 
+ #-----------------------------------------------------------------------
+ # the host/target compiler config.
+ 
+ aout:
+ 	@rm -f elf
+ 	echo '#include "i386/freebsd.h"'     > tm.h
+ 	echo '#define STDC_HEADERS 1'	> config.h
+ 	echo '#define SYS_SIGLIST_DECLARED 1'	> config.h
+ 	echo '#define TIME_WITH_SYS_TIME 1'	>> config.h
+ 	echo '#define HAVE_BCMP 1'	>> config.h
+ 	echo '#define HAVE_BCOPY 1'	>> config.h
+ 	echo '#define HAVE_BSEARCH 1'	>> config.h
+ 	echo '#define HAVE_BZERO 1'	>> config.h
+ 	echo '#define HAVE_GETRLIMIT 1'	>> config.h
+ 	echo '#define HAVE_INDEX 1'	>> config.h
+ 	echo '#define HAVE_KILL 1'	>> config.h
+ 	echo '#define HAVE_POPEN 1'	>> config.h
+ 	echo '#define HAVE_PUTENV 1'	>> config.h
+ 	echo '#define HAVE_RINDEX 1'	>> config.h
+ 	echo '#define HAVE_SETRLIMIT 1'	>> config.h
+ 	echo '#define HAVE_STRERROR 1'	>> config.h
+ 	echo '#define HAVE_STRTOUL 1'	>> config.h
+ 	echo '#define HAVE_VPRINTF 1'	>> config.h
+ 	echo '#define HAVE_FCNTL_H 1'	>> config.h
+ 	echo '#define HAVE_LIMITS_H 1'	>> config.h
+ 	echo '#define HAVE_STDDEF_H 1'	>> config.h
+ 	echo '#define HAVE_STDLIB_H 1'	>> config.h
+ 	echo '#define HAVE_STRING_H 1'	>> config.h
+ 	echo '#define HAVE_STRINGS_H 1'	>> config.h
+ 	echo '#define HAVE_SYS_FILE_H 1'	>> config.h
+ 	echo '#define HAVE_SYS_PARAM_H 1'	>> config.h
+ 	echo '#define HAVE_SYS_RESOURCE_H 1'	>> config.h
+ 	echo '#define HAVE_SYS_TIME_H 1'	>> config.h
+ 	echo '#define HAVE_SYS_TIMES_H 1'	>> config.h
+ 	echo '#define HAVE_TIME_H 1'	>> config.h
+ 	echo '#define HAVE_UNISTD_H 1'	>> config.h
+ 	echo '#define HAVE_VARARGS_H 1'	>> config.h
+ 	echo '#include "i386/xm-freebsd.h"'  >> config.h
+ 	echo '#include "i386/xm-freebsd.h"'  > hconfig.h
+ 	echo '#include "i386/xm-freebsd.h"'  > tconfig.h
+ 	echo '#include "cp/lang-options.h"'  > options.h
+ 	echo '#include "cp/lang-specs.h"'    > specs.h
+ 	echo '#include "f2c-specs.h"'        >> specs.h
+ 	@touch aout
+ 
+ elf:
+ 	@rm -f aout
+ 	echo '#include "i386/freebsd-elf.h"' > tm.h
+ 	echo '#include "i386/xm-freebsd.h"'  > config.h
+ 	echo '#include "i386/xm-freebsd.h"'  > hconfig.h
+ 	echo '#include "i386/xm-freebsd.h"'  > tconfig.h
+ 	echo '#include "cp/lang-options.h"'  > options.h
+ 	echo '#include "cp/lang-specs.h"'    > specs.h
+ 	echo '#include "f2c-specs.h"'        >> specs.h
+ 	@touch elf
+ 
+ CLEANFILES+=	config.h hconfig.h tconfig.h tm.h options.h specs.h elf aout
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/cpp/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/cpp/Makefile
*** egcs-1.0.1/FreeBSD/cc/cpp/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/cpp/Makefile	Mon Jan 12 10:55:29 1998
***************
*** 0 ****
--- 1,16 ----
+ 
+ PROG =	cpp
+ SRCS =	cccp.c cexp.c
+ BINDIR=	/usr/libexec
+ SRCS+=	obstack.c version.c
+ MAN1=	cccp.1
+ MLINKS=	cccp.1 cpp.1
+ CFLAGS+= -DGCC_INCLUDE_DIR=\"/usr/include\"
+ 
+ .ORDER: cexp.c cexp.h
+ cexp.c cexp.h: cexp.y
+ 	${BISON} -d ${GCCDIR}/cexp.y -o cexp.c
+ 
+ CLEANFILES+= cexp.c cexp.h
+ 
+ .include <bsd.prog.mk>
diff -crN3 egcs-1.0.1/FreeBSD/cc/libgcc/Makefile egcs-1.0.1-fbsd3/FreeBSD/cc/libgcc/Makefile
*** egcs-1.0.1/FreeBSD/cc/libgcc/Makefile	Thu Jan  1 09:00:00 1970
--- egcs-1.0.1-fbsd3/FreeBSD/cc/libgcc/Makefile	Mon Jan 12 11:46:37 1998
***************
*** 0 ****
--- 1,124 ----
+ 
+ LIB=	gcc
+ 
+ # Install libgcc_pic.a, since ld.so uses it.
+ INSTALL_PIC_ARCHIVE=  yes
+ 
+ .if exists(${.OBJDIR}/../cc)
+ XCC=	${.OBJDIR}/../cc/cc
+ .else
+ XCC=	${.CURDIR}/../cc/cc
+ .endif
+ 
+ .if exists(${.OBJDIR}/../cc1)
+ XCC+=	-B${.OBJDIR}/../cc1/
+ .else
+ XCC+=	-B${.CURDIR}/../cc1/
+ .endif
+ 
+ .if exists(${.OBJDIR}/../cpp)
+ XCC+=	-B${.OBJDIR}/../cpp/
+ .else
+ XCC+=	-B${.CURDIR}/../cpp/
+ .endif
+ 
+ # Members of libgcc1.a.
+ LIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \
+ 	   _lshrsi3 _ashrsi3 _ashlsi3 \
+ 	   _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \
+ 	   _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \
+ 	   _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \
+ 	   _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \
+ 	   _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2
+ 
+ # Library members defined in libgcc2.c.
+ LIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \
+ 	   _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \
+ 	   _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \
+ 	   _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \
+ 	   _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \
+ 	   _fixtfdi _fixunstfdi _floatditf \
+ 	   __gcc_bcmp _varargs _eprintf _op_new _op_vnew _new_handler \
+ 	   _op_delete \
+ 	   _op_vdel _bb _shtab _clear_cache _trampoline __main _exit _ctors \
+ 	   _eh _pure
+ 
+ .PATH: ../../../gcc/cp
+ #CXX_OBJ= tinfo.o tinfo2.o exception.o new.o
+ #CXX_LIB2FUNCS1= op_new op_newnt
+ #CXX_LIB2FUNCS2= op_vnew op_vnewnt op_delete op_delnt op_vdel op_vdelnt 
+ CXX_OBJ= tinfo.o tinfo2.o exception.o new.o new1.o new2.o
+ CXX_LIB2FUNCS1=
+ CXX_LIB2FUNCS2=
+ CXX= ${XCC}
+ 
+ LIB1OBJS=${LIB1FUNCS:T:S@$@.o@}
+ LIB2OBJS=${LIB2FUNCS:T:S@$@.o@}
+ LIB1SOBJS=${LIB1FUNCS:T:S@$@.so@}
+ LIB2SOBJS=${LIB2FUNCS:T:S@$@.so@}
+ P1OBJS=${LIB1FUNCS:T:S@$@.po@}
+ P2OBJS=${LIB2FUNCS:T:S@$@.po@}
+ #CXX_LIB1OBJS=${CXX_LIB2FUNCS1:T:S@$@.o@}
+ #CXX_LIB2OBJS=${CXX_LIB2FUNCS2:T:S@$@.o@}
+ #CXX_SOLIB1OBJS=${CXX_LIB2FUNCS1:T:S@$@.so@}
+ #CXX_SOLIB2OBJS=${CXX_LIB2FUNCS2:T:S@$@.so@}
+ #CXX_POLIB1OBJS=${CXX_LIB2FUNCS1:T:S@$@.po@}
+ #CXX_POLIB2OBJS=${CXX_LIB2FUNCS2:T:S@$@.po@}
+ 
+ CXX_OBJS= ${CXX_OBJ} ${CXX_LIB1OBJS} ${CXX_LIB2OBJS}
+ CXXFLAGS += -I${GCCDIR}/cp -I${GCCDIR}/cp/inc -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions -DIN_GCC
+ OBJS= ${LIB1OBJS} ${LIB2OBJS} ${CXX_OBJS}
+ 
+ ${LIB1OBJS}: libgcc1.c
+ 	${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
+ 	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ 
+ ${LIB2OBJS}: libgcc2.c
+ 	${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
+ 	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ 
+ #${CXX_LIB1OBJS}: new1.cc
+ #	${XCC} -c ${CFLAGS} ${CXX_COMPILE_FLAG} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/cp/new1.cc
+ #	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ #
+ #${CXX_LIB2OBJS}: new2.cc
+ #	${XCC} -c ${CFLAGS} ${CXX_COMPILE_FLAG} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/cp/new2.cc
+ #	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ 
+ .if !defined(NOPIC)
+ ${LIB1SOBJS}: libgcc1.c
+ 	${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
+ 	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ 
+ ${LIB2SOBJS}: libgcc2.c
+ 	${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
+ 	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ 
+ #${CXX_SOLIB1OBJS}: new1.cc
+ #	${XCC} -c -fpic ${CFLAGS} ${CXX_COMPILE_FLAG} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/cp/new1.cc
+ #	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ 
+ #${CXX_SOLIB2OBJS}: new2.cc
+ #	${XCC} -c -fpic ${CFLAGS} ${CXX_COMPILE_FLAG} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/cp/new2.cc
+ #	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ .endif
+ 
+ .if !defined(NOPROFILE)
+ ${P1OBJS}: libgcc1.c
+ 	${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
+ 	@${LD} -O ${.TARGET} -X -r ${.TARGET}
+ 
+ ${P2OBJS}: libgcc2.c
+ 	${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
+ 	@${LD} -O ${.TARGET} -X -r ${.TARGET}
+ 
+ #${CXX_POLIB1OBJS}: new1.cc
+ #	${XCC} -c -p ${CFLAGS} ${CXX_COMPILE_FLAG} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/cp/new1.cc
+ #	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ #
+ #${CXX_POLIB2OBJS}: new2.c
+ #	${XCC} -c -p ${CFLAGS} ${CXX_COMPILE_FLAG} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/cp/new2.cc
+ #	@${LD} -O ${.TARGET} -x -r ${.TARGET}
+ .endif
+ 
+ .include <bsd.lib.mk>
diff -crN3 egcs-1.0.1/gcc/config/i386/freebsd.h egcs-1.0.1-fbsd3/gcc/config/i386/freebsd.h
*** egcs-1.0.1/gcc/config/i386/freebsd.h	Sat Oct 18 15:52:58 1997
--- egcs-1.0.1-fbsd3/gcc/config/i386/freebsd.h	Mon Jan 12 09:33:50 1998
***************
*** 35,44 ****
  #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"
--- 35,54 ----
  #include "i386/perform.h"
  
  #undef CPP_PREDEFINES
! #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__=3 -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
! #define ASM_SPEC   " %| %{fpic:-k} %{fPIC:-k}"
  /* Like the default, except no -lg.  */
! #define LIB_SPEC "%{!shared:%{!pg:%{!pthread:-lc}%{pthread:-lc_r}}%{pg:%{!pthre
! ad:-lc_p}%{pthread:-lc_r_p}}}"
! #define LINK_LIBGCC_SPECIAL_1  1
! 
! #define STARTFILE_SPEC  \
!   "%{shared:c++rt0.o%s} \
!    %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
! 
! /* 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,58 ****
  #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
  
--- 57,68 ----
  #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
  
***************
*** 119,125 ****
  
  #define TYPE_ASM_OP	".type"
  #define SIZE_ASM_OP	".size"
! 
  /* The following macro defines the format used to output the second
     operand of the .type assembler directive.  Different svr4 assemblers
     expect various different forms for this operand.  The one given here
--- 129,135 ----
  
  #define TYPE_ASM_OP	".type"
  #define SIZE_ASM_OP	".size"
! /*#define SET_ASM_OP     ".set"
  /* The following macro defines the format used to output the second
     operand of the .type assembler directive.  Different svr4 assemblers
     expect various different forms for this operand.  The one given here
***************
*** 220,232 ****
  
  #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 }, \
--- 230,251 ----
  
  #define ASM_SPEC   " %| %{fpic:-k} %{fPIC:-k}"
  #define LINK_SPEC \
!   "%{p:%e`-p' not supported; use `-pg' and gprof(1)} \
!    %{shared:-Bshareable} \
!    %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
!    %{pg:-Bstatic} %{Z}} \
!    %{assert*} %{R*}"
! 
  
  /* 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 GPLUSPLUS_INCLUDE_DIR          "/usr/include/g++"
+ #define GCC_INCLUDE_DIR                        "/usr/include"
+ #define STANDARD_EXEC_PREFIX           "/usr/libexec/"
  
  #define INCLUDE_DEFAULTS { \
  	{ "/usr/include", 0 }, \
diff -crN3 egcs-1.0.1/gcc/config/i386/i386.c egcs-1.0.1-fbsd3/gcc/config/i386/i386.c
*** egcs-1.0.1/gcc/config/i386/i386.c	Fri Dec 19 17:47:13 1997
--- egcs-1.0.1-fbsd3/gcc/config/i386/i386.c	Mon Jan 12 10:14:03 1998
***************
*** 97,102 ****
--- 97,132 ----
    17					/* cost of a divide/mod */
  };
  
+ struct processor_costs amdk5_cost = {
+   1,					/* cost of an add instruction */
+   1,					/* cost of a lea instruction */
+   1,					/* variable shift costs */
+   1,					/* constant shift costs */
+   3,					/* cost of starting a multiply */
+   0,					/* cost of multiply per each bit set */
+   25,					/* cost of a divide/mod */
+ };
+ 
+ struct processor_costs amdk6_cost = {
+   1,					/* cost of an add instruction */
+   1,					/* cost of a lea instruction */
+   1,					/* variable shift costs */
+   1,					/* constant shift costs */
+   3,					/* cost of starting a multiply */
+   0,					/* cost of multiply per each bit set */
+   18,					/* cost of a divide/mod */
+ };
+ 
+ struct processor_costs cyrix_cost = {
+   1,					/* cost of an add instruction */
+   1,					/* cost of a lea instruction */
+   1,					/* variable shift costs */
+   1,					/* constant shift costs */
+   1,					/* cost of starting a multiply */
+   0,					/* cost of multiply per each bit set */
+   25,					/* cost of a divide/mod */
+ };
+  
  struct processor_costs *ix86_cost = &pentium_cost;
  
  #define AT_BP(mode) (gen_rtx (MEM, (mode), frame_pointer_rtx))
***************
*** 193,199 ****
  	   {PROCESSOR_I586_STRING, PROCESSOR_PENTIUM, &pentium_cost, 0, 0},
  	   {PROCESSOR_PENTIUM_STRING, PROCESSOR_PENTIUM, &pentium_cost, 0, 0},
  	   {PROCESSOR_I686_STRING, PROCESSOR_PENTIUMPRO, &pentiumpro_cost, 0, 0},
! 	   {PROCESSOR_PENTIUMPRO_STRING, PROCESSOR_PENTIUMPRO, &pentiumpro_cost, 0, 0}};
  
    int ptt_size = sizeof (processor_target_table) / sizeof (struct ptt);
  
--- 223,233 ----
  	   {PROCESSOR_I586_STRING, PROCESSOR_PENTIUM, &pentium_cost, 0, 0},
  	   {PROCESSOR_PENTIUM_STRING, PROCESSOR_PENTIUM, &pentium_cost, 0, 0},
  	   {PROCESSOR_I686_STRING, PROCESSOR_PENTIUMPRO, &pentiumpro_cost, 0, 0},
! 	   {PROCESSOR_PENTIUMPRO_STRING, PROCESSOR_PENTIUMPRO, &pentiumpro_cost, 0, 0},
! 	   {PROCESSOR_AMDK5_STRING, PROCESSOR_AMDK5, &amdk5_cost, 0, 0},
! 	   {PROCESSOR_AMDK6_STRING, PROCESSOR_AMDK6, &amdk6_cost, 0, 0},
! 	   {PROCESSOR_CYRIX_STRING, PROCESSOR_CYRIX, &cyrix_cost, 0, 0}
!       };
  
    int ptt_size = sizeof (processor_target_table) / sizeof (struct ptt);
  
***************
*** 282,288 ****
    /* The 486 suffers more from non-aligned cache line fills, and the larger code
       size results in a larger cache foot-print and more misses.  The 486 has a
       16 byte cache line, pentium and pentiumpro have a 32 byte cache line */
!   def_align = (TARGET_486) ? 4 : 2;
  
    /* Validate -malign-loops= value, or provide default */
    if (i386_align_loops_string)
--- 316,329 ----
    /* The 486 suffers more from non-aligned cache line fills, and the larger code
       size results in a larger cache foot-print and more misses.  The 486 has a
       16 byte cache line, pentium and pentiumpro have a 32 byte cache line */
!   def_align = TARGET_386	? 2 : 
!               TARGET_486	? 4 :
!               TARGET_PENTIUM	? 0 :
!               TARGET_AMDK5	? 4 :
!               TARGET_AMDK6	? 0 :
!               TARGET_CYRIX	? 4 :
!               TARGET_PENTIUMPRO	? 4 :
!               			  4;
  
    /* Validate -malign-loops= value, or provide default */
    if (i386_align_loops_string)
***************
*** 293,299 ****
  	       i386_align_loops, MAX_CODE_ALIGN);
      }
    else
!     i386_align_loops = 2;
  
    /* Validate -malign-jumps= value, or provide default */
    if (i386_align_jumps_string)
--- 334,340 ----
  	       i386_align_loops, MAX_CODE_ALIGN);
      }
    else
!     i386_align_loops = def_align;
  
    /* Validate -malign-jumps= value, or provide default */
    if (i386_align_jumps_string)
***************
*** 326,332 ****
  	       i386_branch_cost);
      }
    else
!     i386_branch_cost = 1;
  
    if (TARGET_OMIT_LEAF_FRAME_POINTER)	/* keep nonleaf frame pointers */
      flag_omit_frame_pointer = 1;
--- 367,377 ----
  	       i386_branch_cost);
      }
    else
!     i386_branch_cost = TARGET_386		? 1 : 
!                        TARGET_486		? 1 :
!                        TARGET_PENTIUM		? 2 :
!                        TARGET_PENTIUMPRO	? 3 :
!                         			  1 ;
  
    if (TARGET_OMIT_LEAF_FRAME_POINTER)	/* keep nonleaf frame pointers */
      flag_omit_frame_pointer = 1;
***************
*** 1828,1834 ****
  {
    rtx xops[2];
    int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
! 				  || current_function_uses_const_pool);
    xops[0] = pic_offset_table_rtx;
    xops[1] = stack_pointer_rtx;
  
--- 1873,1880 ----
  {
    rtx xops[2];
    int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
!                                  || current_function_uses_const_pool
!                                  );
    xops[0] = pic_offset_table_rtx;
    xops[1] = stack_pointer_rtx;
  
***************
*** 3225,3230 ****
--- 3271,3279 ----
    switch (GET_CODE (addr))
      {
      case REG:
+       /* K6-Opt.: use 0(%esi) instead of (%esi) ! */
+       if (TARGET_AMDK6 && REGNO (addr) == 4)
+         fputs ("0", file);
        ADDR_BEG (file);
        fprintf (file, "%se", RP);
        fputs (hi_reg_name[REGNO (addr)], file);
diff -crN3 egcs-1.0.1/gcc/config/i386/i386.h egcs-1.0.1-fbsd3/gcc/config/i386/i386.h
*** egcs-1.0.1/gcc/config/i386/i386.h	Fri Dec 19 17:59:33 1997
--- egcs-1.0.1-fbsd3/gcc/config/i386/i386.h	Mon Jan 12 09:55:27 1998
***************
*** 155,160 ****
--- 155,163 ----
  #define TARGET_486 (ix86_cpu == PROCESSOR_I486)
  #define TARGET_PENTIUM (ix86_cpu == PROCESSOR_PENTIUM)
  #define TARGET_PENTIUMPRO (ix86_cpu == PROCESSOR_PENTIUMPRO)
+ #define TARGET_AMDK5 (ix86_cpu == PROCESSOR_AMDK5)
+ #define TARGET_AMDK6 (ix86_cpu == PROCESSOR_AMDK6)
+ #define TARGET_CYRIX (ix86_cpu == PROCESSOR_CYRIX)
  #define TARGET_USE_LEAVE (ix86_cpu == PROCESSOR_I386)
  #define TARGET_PUSH_MEMORY (ix86_cpu == PROCESSOR_I386)
  #define TARGET_ZERO_EXTEND_WITH_AND (ix86_cpu != PROCESSOR_I386 \
***************
*** 164,174 ****
  #define TARGET_UNROLL_STRLEN (ix86_cpu != PROCESSOR_I386)
  #define TARGET_USE_Q_REG (ix86_cpu == PROCESSOR_PENTIUM \
  			  || ix86_cpu == PROCESSOR_PENTIUMPRO)
! #define TARGET_USE_ANY_REG (ix86_cpu == PROCESSOR_I486)
  /* This is temporary for the release only.  Folks are working on a fix,
     but the fix will likely not be suitable for the first egcs release.  */
  #define TARGET_CMOVE (0)                                         
! #define TARGET_DEEP_BRANCH_PREDICTION (ix86_cpu == PROCESSOR_PENTIUMPRO)
  #define TARGET_STACK_PROBE (target_flags & MASK_STACK_PROBE)
  
  #define TARGET_SWITCHES							\
--- 167,177 ----
  #define TARGET_UNROLL_STRLEN (ix86_cpu != PROCESSOR_I386)
  #define TARGET_USE_Q_REG (ix86_cpu == PROCESSOR_PENTIUM \
  			  || ix86_cpu == PROCESSOR_PENTIUMPRO)
! #define TARGET_USE_ANY_REG (TARGET_486 || TARGET_AMDK5 || TARGET_AMDK6 || TARGET_CYRIX)
  /* This is temporary for the release only.  Folks are working on a fix,
     but the fix will likely not be suitable for the first egcs release.  */
  #define TARGET_CMOVE (0)                                         
! #define TARGET_DEEP_BRANCH_PREDICTION (TARGET_PENTIUMPRO || TARGET_AMDK5 || TARGET_AMDK6)
  #define TARGET_STACK_PROBE (target_flags & MASK_STACK_PROBE)
  
  #define TARGET_SWITCHES							\
***************
*** 183,188 ****
--- 186,194 ----
    { "no-486",			 0 },					\
    { "pentium",			 0 },					\
    { "pentiumpro",		 0 },					\
+   { "amdk5",			 0 },					\
+   { "amdk6",			 0 },					\
+   { "cyrix",			 0 },					\
    { "rtd",			 MASK_RTD },				\
    { "no-rtd",			-MASK_RTD },				\
    { "align-double",		 MASK_ALIGN_DOUBLE },			\
***************
*** 219,225 ****
   {PROCESSOR_I386,			/* 80386 */
    PROCESSOR_I486,			/* 80486DX, 80486SX, 80486DX[24] */
    PROCESSOR_PENTIUM,
!   PROCESSOR_PENTIUMPRO};
  
  #define PROCESSOR_I386_STRING "i386"
  #define PROCESSOR_I486_STRING "i486"
--- 225,234 ----
   {PROCESSOR_I386,			/* 80386 */
    PROCESSOR_I486,			/* 80486DX, 80486SX, 80486DX[24] */
    PROCESSOR_PENTIUM,
!   PROCESSOR_PENTIUMPRO,
!   PROCESSOR_AMDK5,
!   PROCESSOR_AMDK6,
!   PROCESSOR_CYRIX};
  
  #define PROCESSOR_I386_STRING "i386"
  #define PROCESSOR_I486_STRING "i486"
***************
*** 227,232 ****
--- 236,244 ----
  #define PROCESSOR_PENTIUM_STRING "pentium"
  #define PROCESSOR_I686_STRING "i686"
  #define PROCESSOR_PENTIUMPRO_STRING "pentiumpro"
+ #define PROCESSOR_AMDK5_STRING "amdk5"
+ #define PROCESSOR_AMDK6_STRING "amdk6"
+ #define PROCESSOR_CYRIX_STRING "cyrix"
  
  extern enum processor_type ix86_cpu;
  
***************
*** 301,307 ****
  %{mno-pentium:-mcpu=i486 -march=i486} \
  %{mpentium:-mcpu=pentium} \
  %{mno-pentiumpro:-mcpu=pentium} \
! %{mpentiumpro:-mcpu=pentiumpro}}"
  #endif
  
  #ifndef CPP_CPU_SPEC
--- 313,322 ----
  %{mno-pentium:-mcpu=i486 -march=i486} \
  %{mpentium:-mcpu=pentium} \
  %{mno-pentiumpro:-mcpu=pentium} \
! %{mamdk5:-mcpu=amdk5 -march=i486} \
! %{mamdk6:-mcpu=amdk6 -march=i486} \
! %{mcyrix:-mcpu=cyrix -march=i486} \
! %{mpentiumpro:-mcpu=pentiumpro}} %{ffast-math:%{!mieee-fp:-mno-ieee-fp}}"
  #endif
  
  #ifndef CPP_CPU_SPEC
***************
*** 324,329 ****
--- 339,347 ----
  -Di386 " CPP_CPU_DEFAULT " -Asystem(unix) -Acpu(i386) -Amachine(i386) \
  %{mcpu=i486:-Di486} %{m486:-Di486} \
  %{mpentium:-Dpentium -Di586} %{mcpu=pentium:-Dpentium -Di586} \
+ %{mamdk5:-DAMDK5 -Dpentium -Di586} %{mcpu=amdk5:-DAMDK5 -Dpentium -Di586} \
+ %{mamdk6:-DAMDK6 -Dpentium -Di586} %{mcpu=amdk6:-DAMDK6 -Dpentium -Di586} \
+ %{mcyrix:-DCYRIX -Dpentium -Di586} %{mcpu=cyrix:-DCYRIX -Dpentium -Di586} \
  %{mpentiumpro:-Dpentiumpro -Di686} %{mcpu=pentiumpro:-Dpentiumpro -Di686}"
  
  #else
***************
*** 331,336 ****
--- 349,357 ----
  -Di386 -Asystem(unix) -Acpu(i386) -Amachine(i386) \
  %{mcpu=i486:-Di486} %{m486:-Di486} \
  %{mpentium:-Dpentium -Di586} %{mcpu=pentium:-Dpentium -Di586} \
+ %{mamdk5:-DAMDK5 -Dpentium -Di586} %{mcpu=amdk5:-DAMDK5 -Dpentium -Di586} \
+ %{mamdk6:-DAMDK6 -Dpentium -Di586} %{mcpu=amdk6:-DAMDK6 -Dpentium -Di586} \
+ %{mcyrix:-DCYRIX -Dpentium -Di586} %{mcpu=cyrix:-DCYRIX -Dpentium -Di586} \
  %{mpentiumpro:-Dpentiumpro -Di686} %{mcpu=pentiumpro:-Dpentiumpro -Di686}"
  #endif /* __STDC__ */
  #endif /* CPP_CPU_SPEC */
***************
*** 403,409 ****
  #define PARM_BOUNDARY 32
  
  /* Boundary (in *bits*) on which stack pointer should be aligned.  */
! #define STACK_BOUNDARY 32
  
  /* Allocation boundary (in *bits*) for the code of a function.
     For i486, we get better performance by aligning to a cache
--- 424,430 ----
  #define PARM_BOUNDARY 32
  
  /* Boundary (in *bits*) on which stack pointer should be aligned.  */
! #define STACK_BOUNDARY 64
  
  /* Allocation boundary (in *bits*) for the code of a function.
     For i486, we get better performance by aligning to a cache
***************
*** 2102,2108 ****
  #define SLOW_BYTE_ACCESS 0
  
  /* Nonzero if access to memory by shorts is slow and undesirable.  */
! #define SLOW_SHORT_ACCESS 0
  
  /* Define this macro if zero-extension (of a `char' or `short' to an
     `int') can be done faster if the destination is a register that is
--- 2123,2129 ----
  #define SLOW_BYTE_ACCESS 0
  
  /* Nonzero if access to memory by shorts is slow and undesirable.  */
! #define SLOW_SHORT_ACCESS (TARGET_PENTIUM || TARGET_PENTIUMPRO || TARGET_AMDK6)
  
  /* Define this macro if zero-extension (of a `char' or `short' to an
     `int') can be done faster if the destination is a register that is
