On Sat, May 11, 2002 at 01:00:27AM -0700, David O'Brien wrote:
> On Sat, May 11, 2002 at 10:44:11AM +0300, Ruslan Ermilov wrote:
> > On Fri, May 10, 2002 at 04:41:53PM -0700, David O'Brien wrote:
> > > On Fri, May 10, 2002 at 06:04:27PM +0300, Ruslan Ermilov wrote:
> > > > >   Bmake bits for Gcc 3.1.
> > > >   
> > > > This also vanished my YACC building fixes and broke world while
> > > > attempting to build `cc1plus' in a cross-tools stage.  The changes
> > > > below fix this and CLEANFILES.
> > > 
> > > These changes are wrong.
> > >  
> > These changes have been verified to produce the same binaries
> > (except for cc1plus which is just broken without them), and
> > they are equivalent to what was already in -CURRENT before
> > your WIP_GCC31 merge commit.
> 
> There is NO way you've bootstrapped GCC 3.1 using these patches.
> Remember a full bootstrap is a `make world ; make buildworld'.
> 
> # cc -v
> Using built-in specs.
> Configured with: FreeBSD/i386 system compiler
> Thread model: posix
> gcc version 3.1 20020509 (prerelease)
> # cd /usr/src/gnu/usr.bin/cc
> # make
> ===> cc_fbsd
> ...
> ===> cc_tools
> ...
> ===> cc_int
> ...
> cc -O -pipe -march=k6 -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\"
> -I/usr/obj/usr/src/gnu/usr.bin/for_ru/cc1/../cc_tools
> -I/usr/src/gnu/usr.bin/for_ru/cc1/../cc_tools
> -I/usr/src/gnu/usr.bin/for_ru/cc1/../../../../contrib/gcc
> -I/usr/src/gnu/usr.bin/for_ru/cc1/../../../../contrib/gcc/config -I.
> -c c-parse.c
> c-parse.c:3047:29: attempt to use poisoned "realloc"
> c-parse.c:3048:16: attempt to use poisoned "malloc"
> c-parse.c:3053:31: attempt to use poisoned "realloc"
> c-parse.c:3054:18: attempt to use poisoned "malloc"
> *** Error code 1
> 
> 
> I say again, the malloc usage is not in c-parse.in, it is in the parser
> driver produced by Byacc.
> 
OK, now that you've explained it:

%%%
Index: cc1/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc1/Makefile,v
retrieving revision 1.26
diff -u -r1.26 Makefile
--- cc1/Makefile        10 May 2002 08:54:45 -0000      1.26
+++ cc1/Makefile        11 May 2002 09:33:44 -0000
@@ -2,7 +2,7 @@
 
 .include "../Makefile.inc"
 
-.PATH: ../cc_tools ${GCCDIR}
+.PATH: ${GCCDIR}
  
 PROG=  cc1
 SRCS=  main.c c-parse.c c-lang.c c-decl.c
@@ -17,17 +17,20 @@
 
 #-----------------------------------------------------------------------
 # C parser
-.ORDER: c-parse.c
-c-parse.c: c-parse.in
+
+YFLAGS=                                        # don't need y.tab.h
+
+c-parse-in.y: c-parse.in
        sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
            -e "/^ifc$$/d" \
            -e "/^end ifc$$/d" \
-           ${GCCDIR}/c-parse.in > c-parse.y
-       ${YACC} -o c-parse.c.in c-parse.y
+           ${.ALLSRC} > ${.TARGET}
+
+c-parse.c: c-parse-in.c
        sed -e "s/malloc/xmalloc/g" \
            -e "s/realloc/xrealloc/g" \
-           c-parse.c.in >c-parse.c
+           ${.ALLSRC} > ${.TARGET}
 
-CLEANFILES+=   c-parse.c           c-parse.y           # insurance
+CLEANFILES= c-parse-in.y c-parse-in.c c-parse.c
 
 .include <bsd.prog.mk>
Index: cc1obj/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc1obj/Makefile,v
retrieving revision 1.20
diff -u -r1.20 Makefile
--- cc1obj/Makefile     10 May 2002 08:54:46 -0000      1.20
+++ cc1obj/Makefile     11 May 2002 09:33:44 -0000
@@ -2,7 +2,7 @@
 
 .include "../Makefile.inc"
 
-.PATH: ../cc_tools ${GCCDIR}/objc ${GCCDIR}
+.PATH: ${GCCDIR}/objc ${GCCDIR}
 
 PROG=  cc1obj
 SRCS=  objc-parse.c objc-act.c objc-lang.c main.c c-decl.c
@@ -17,18 +17,21 @@
 
 #-----------------------------------------------------------------------
 # objc parser
-.ORDER: objc-parse.c
-objc-parse.c: c-parse.in
+
+YFLAGS=                                        # don't need y.tab.h
+
+objc-parse-in.y: c-parse.in
        sed -e "/^ifc$$/,/^end ifc$$/d" \
            -e "/^ifobjc$$/d" \
            -e "/^end ifobjc$$/d" \
-           ${GCCDIR}/c-parse.in > objc-parse.y
-       ${YACC} -o objc-parse.c.in objc-parse.y
+           ${.ALLSRC} > ${.TARGET}
+
+objc-parse.c: objc-parse-in.c
        sed -e "s/malloc/xmalloc/g" \
            -e "s/realloc/xrealloc/g" \
-           objc-parse.c.in >objc-parse.c
+           ${.ALLSRC} > ${.TARGET}
 
-CLEANFILES+=   objc-parse.c           objc-parse.y             # insurance
+CLEANFILES= objc-parse-in.y objc-parse-in.c objc-parse.c
 
 #-----------------------------------------------------------------------
 
Index: cc1plus/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc1plus/Makefile,v
retrieving revision 1.27
diff -u -r1.27 Makefile
--- cc1plus/Makefile    10 May 2002 08:54:46 -0000      1.27
+++ cc1plus/Makefile    11 May 2002 09:33:44 -0000
@@ -5,7 +5,7 @@
 .PATH: ${GCCDIR}/cp ${GCCDIR}
 
 PROG=  cc1plus
-SRCS=  parse.y cfns.h
+SRCS=  parse.c parse.h cfns.h
 SRCS+= main.c cp-lang.c
 SRCS+= call.c class.c cvt.c decl.c decl2.c         error.c except.c expr.c \
        friend.c init.c lex.c mangle.c method.c pt.c ptree.c repo.c rtti.c \
@@ -20,21 +20,24 @@
 DPADD+=        ${LIBCC_INT} 
 LDADD+=        ${LIBCC_INT}
 
-CLEANFILES+=   parse.c parse.h y.tab.c y.tab.h cfns.h
+parse-in.y: parse.y
+       cp -p ${.ALLSRC} ${.TARGET}
 
-.ORDER: parse.c parse.h
-parse.c: parse.y
-       ${YACC} ${YFLAGS} ${GCCDIR}/cp/${.TARGET:S/c$/y/}
+parse.c: parse-in.c
        sed -e "s/malloc/xmalloc/g" \
            -e "s/realloc/xrealloc/g" \
-           y.tab.c >${.TARGET}
+           parse-in.c > ${.TARGET}
+
+y.tab.h: parse-in.c
 
 parse.h: parse.c y.tab.h
-       cp -pf y.tab.h ${.TARGET}
-       grep '^#define[   ]*YYEMPTY' ${.TARGET:S/h$/c/} >>${.TARGET}
+       cp -p y.tab.h ${.TARGET}
+       grep '^#define[   ]*YYEMPTY' parse.c >>${.TARGET}
 
-cfns.h:
+cfns.h: cfns.gperf
        gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \
-           ${GCCDIR}/cp/cfns.gperf > ${.TARGET}
+           ${.ALLSRC} > ${.TARGET}
+
+CLEANFILES= parse-in.y parse-in.c parse.c y.tab.h parse.h cfns.h
 
 .include <bsd.prog.mk>
Index: cpp0/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cpp0/Makefile,v
retrieving revision 1.3
diff -u -r1.3 Makefile
--- cpp0/Makefile       10 May 2002 08:54:47 -0000      1.3
+++ cpp0/Makefile       11 May 2002 09:33:44 -0000
@@ -16,18 +16,21 @@
 
 #-----------------------------------------------------------------------
 # C parser
-.ORDER: c-parse.c
-c-parse.c: c-parse.in
+
+YFLAGS=                                        # don't need y.tab.h
+
+c-parse-in.y: c-parse.in
        sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
            -e "/^ifc$$/d" \
            -e "/^end ifc$$/d" \
-           ${GCCDIR}/c-parse.in > c-parse.y
-       ${YACC} -o c-parse.c.in c-parse.y
+           ${.ALLSRC} > ${.TARGET}
+
+c-parse.c: c-parse-in.c
        sed -e "s/malloc/xmalloc/g" \
            -e "s/realloc/xrealloc/g" \
-           c-parse.c.in >c-parse.c
+           ${.ALLSRC} > ${.TARGET}
 
-CLEANFILES+=   c-parse.c c-parse.y             # insurance
+CLEANFILES= c-parse-in.y c-parse-in.c c-parse.c
 
 #-----------------------------------------------------------------------
 
Index: tradcpp0/Makefile
===================================================================
RCS file: /home/ncvs/src/gnu/usr.bin/cc/tradcpp0/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- tradcpp0/Makefile   11 May 2002 00:15:45 -0000      1.4
+++ tradcpp0/Makefile   11 May 2002 09:33:44 -0000
@@ -12,11 +12,16 @@
 DPADD+=        ${LIBCC_INT}
 LDADD+=        ${LIBCC_INT}
 
-#      ${YACC} ${GCCDIR}/tradcif.y
-tradcif.c: tradcif.y
-       ${YACC} ${.ALLSRC}
+YFLAGS=                                        # don't need y.tab.h
+
+tradcif-in.y: tradcif.y
+       cp -p ${.ALLSRC} ${.TARGET}
+
+tradcif.c: tradcif-in.c
        sed -e "s/malloc/xmalloc/g" \
            -e "s/realloc/xrealloc/g" \
-           y.tab.c >${.TARGET}
+           tradcif-in.c > ${.TARGET}
+
+CLEANFILES= tradcif-in.y tradcif-in.c tradcif.c
 
 .include <bsd.prog.mk>
%%%

-- 
Ruslan Ermilov          Sysadmin and DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

Attachment: msg38175/pgp00000.pgp
Description: PGP signature

Reply via email to